Release Notes
4D 20 R5
Read What’s new in 4D 20 R5, the blog post that lists all new features and enhancements in 4D 20 R5.
Points forts
- New Package manager to handle components through a
dependencies.json
file. - Support of
Try...Catch...End try
error handling structures. - QUIC network layer now supports broadcasting, SSO, and IPv6.
- Support of restricted entity selections.
- Support of shared classes and singleton classes. New Class properties:
isShared
,isSingleton
,me
. - Support for initializing a class property in its declaration line.
- New force login mode for REST requests with a specific support in Qodly Studio for 4D.
- New $format REST parameter.
Session
object is now available in remote user sessions and stored procedures session.
Changements de comportement
- The plug-ins 4D Internet Commands and 4D for OCI are no longer included in 4D installers. To get these plug-ins, you need to connect to the 4D Product Download portal.
- Changes made in the Structure editor regarding graphical appearance of tables and fields (color, position, order...) are now saved in a separate file named
catalog_editor.json
stored in the project'sSources
folder.
4D 20 R4
Read What’s new in 4D 20 R4, the blog post that lists all new features and enhancements in 4D 20 R4.
Points forts
- Prise en charge du format de cryptage
ECDSA
pour les certificats TLS. - Les connexions TLS client/serveur et serveur SQL sont désormais configurées dynamiquement (aucun fichier de certificat n'est requis).
- Format HTML direct pour les exports de définition de structure.
- Nouveau Code Live Checker qui améliore le contrôle du code pendant le typage, la vérification de la syntaxe et les étapes de compilation afin d'éviter les erreurs d'exécution.
- Les paramètres de méthode déclarés dans les prototypes
#DECLARE
ne sont [plus nécessaires dans les méthodes "Compiler_"(../Concepts/parameters.md#compilation). - Prise en charge des formats de date et d'heure personnalisés
- Nouveau mot-clé
Try(expression)
pour gérer les cas d'erreur simples. - Nouvelle commande
HTTP Parse message
. - Nouvelle option de compatibilité Impression non bloquante.
- New editing mode in the Data Explorer.
- Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Fixed bug list: list of all bugs that have been fixed in 4D 20 R4.
Changements de comportement
- L'utilisation d'une ancienne syntaxe pour la déclaration des paramètres (par exemple
C_TEXT($1)
ouvar $1 : Text
) est maintenant dépréciée et génère des warnings lors du typage du code, de la vérification syntaxique et de la compilation. - Selections are now kept consistent after some records have been deleted and others records created (see this blog post.
- Dans la mise à jour de la bibliothèque OpenSSL, le niveau de sécurité SSL/TLS par défaut a été modifié de 1 à 2. Les clés RSA, DSA et DH de 1024 bits et plus et de moins de 2048 bits ainsi que les clés ECC de 160 bits et plus et de moins de 224 bits ne sont plus autorisées. Par défaut, la compression TLS était déjà désactivée dans les versions précédentes d'OpenSSL. Au niveau de sécurité 2, il ne peut pas être activé.
4D 20 R3
Read What’s new in 4D 20 R3, the blog post that lists all new features and enhancements in 4D 20 R3.
Points forts
- Nouvelle fonction
collection.multiSort
. - Prise en charge du paramètre context dans
Formula from string
. - Prise en charge de la propriété
headers
dans le paramètre connectionHandler de 4D.WebSocket.new. - Marqueur de modification global pour faciliter la mise en œuvre de modules de synchronisation des données. Nouvelles fonctions :
ds.getGlobalStamp
etds.setGlobalStamp
. - L'assignation de références de fichiers à des attributs picture/blob est prise en charge dans ORDA.
- Prise en charge de [l'initialisation de la valeur et du type de données de la variable dans la ligne de déclaration](../Concepts/variables/#initialisation des variables dans la ligne de déclaration).
- Les paramètres du fichier journal sont désormais sauvegardés avec le fichier de données courant
- Nouvelle syntaxe pour déclarer des paramètres variadiques
- 4D View Pro: Support for the import and export of 4D View Pro documents in Blob format.
- Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Fixed bug list: list of all bugs that have been fixed in 4D 20 R3.
Changements de comportement
- Certaines erreurs ne pouvaient être interceptées par votre méthode de gestion des erreurs qu'en mode interprété. Une correction a été apportée, de sorte que les erreurs suivantes seront désormais également détectées en mode compilé : Indice hors de l'intervalle, Type incompatible, et Déréférencement d'un pointeur Null. Cependant, pour de telles erreurs sur les processeurs Intel, la procédure est toujours interrompue comme auparavant, alors que sur les processeurs Apple Silicon, la procédure n'est interrompue que si vous appelez la commande
ABORT
. - 4D n'inclut plus d'interpréteur PHP interne. Vous devez configurer et exécuter votre propre interpréteur PHP pour utiliser les commandes PHP.
4D 20 R2
Read What’s new in 4D 20 R2, the blog post that lists all new features and enhancements in 4D 20 R2.
Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettre à jour 4D en release 20 R2 HF1 build 100440 ou plus. Pour plus d'informations, consultez ce Bulletin de sécurité.
Points forts
- Nouvelle classe WebSocket pour créer et gérer les connexions WebSocket clientes depuis 4D.
- Nouvelle option d'interface pour la couche réseau QUIC.
- 4D View Pro: Support of the .sjs file format for the import and export of documents.
- Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- 4D Write Pro Interface : Nouveau Table Wizard.
- Fixed bug list: list of all bugs that have been fixed in 4D 20 R2.
Changements de comportement
- Attention : La valeur de départ
offset
des objets 4D.FileHandle était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions 20.1 HF1 et 20 R2 et la valeur est maintenant 0.
4D 20.x
Read What’s new in 4D 20, the blog post that lists all new features and enhancements in 4D 20.
For internal reasons, the version of remote clients connecting to 4D Server 20.2 and later must be at least 4D 20.2.
Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettre à jour 4D en release 20.2 LTS build 100956 ou plus. Pour plus d'informations, consultez ce Bulletin de sécurité.
Avertissement concernant la reconstruction de l'index
4D 20 inclut une mise à jour de la bibliothèque ICU (voir ci-dessous) qui forcera une reconstruction automatique des index de type alpha, texte et objet. En fonction de la taille du fichier de données, cette opération peut prendre un certain temps et nécessiter une planification.
4D 20.1 comprend également une mise à jour de la bibliothèque ICU, ce qui a les conséquences suivantes :
- Elle forcera une reconstruction automatique des index de type alpha, texte et objet.
- Pour des raisons de cohérence des tris, il est nécessaire que les clients distants 4D et le serveur 4D utilisent la même version : seuls les clients distants 4D 20.1 peuvent se connecter au serveur 4D 20.1 et vice versa.
Points forts
- 4D 20.2 est certifié sur macOS Sonoma (macOS 14).
- (4D 20.1) New
plugins
property in the options parameter for theCompile project
command. - 4D Server intègre automatiquement plusieurs journaux : Restauration automatique.
- IMAP Transporter Class :
.getBoxInfo()
renvoie id,.selectBox()
renvoie id, flags et permanentFlags,.addFlags()
et.removeFlags()
prennent en charge les mots-clés personnalisés. - Nouvelles classes WebSocketServer et WebSocketConnection pour créer et gérer des connexions WebSocket depuis 4D.
- Support du mot-clé
property
dans les définitions de classes utilisateur. - Nouvelles fonctions pour verrouiller/déverrouiller le datastore :
.flushAndLock()
,.locked()
,.unlock()
. - Nouvelle fonction
.at()
dans la classe Entity selection. - Nouvelles fonctions dans la classe Collection :
.at()
,.first()
,.flat()
,.flatMap()
,.includes()
,.last()
,.reduceRight()
. - Editeur de code : amélioration des fonctionnalités de recherche et de remplacement.
- Nouvel élément de langage "propriété" cherchable dans la boîte de dialogue Chercher dans le développement....
- Pour simplifier le code, certains opérateurs de comparaison peuvent désormais être utilisés avec des valeurs Undefined sans générer d'erreurs.
- Prise en charge du paramètre headerOnly dans
POP3Transporter.getMail()
. - Prise en charge de l'option
count values
dans les fonctionsentitySelection.distinct()
etcollection.distinct()
. - Nouvelle fonction
entitySelection.distinctPaths()
. - Les logs des requêtes ORDA sont maintenant disponibles sur le serveur, nouveau paramètre pour la fonction
.startRequestLog()
. - Nouveaux outils pour l'exécution de code dans le CLI : tool4d et 4D Server en mode utility.
- Explorateur de données : nouveau bouton et affichage dans une fenêtre 4D.
- Nouvelles propriétés pour les boutons, les cases à cocher et les boutons radio : Image hugs title et Horizontal Alignment.
- Prise en charge de
WinIcon
dans la fonctionfile.setAppInfo()
. - Nouvelle option
validateTLSCertificate
pour4D.HTTPRequest.new()
permettant de contrôler la validation automatique des certificats. - Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Fixed bug lists: 4D 20 - 4D 20.1.
Changements de comportement
- À partir de la version 20.2, 4D 20 LTS n'est plus compatible avec Windows Server 2012 R2.
- Attention : La valeur de départ
offset
des objets 4D.FileHandle était incorrectement fixée à 1 au lieu de 0. Une correction a été apportée dans 4D à partir des versions 20.1 HF1 et 20 R2 et la valeur est maintenant 0. - Pour la conformité RFC de HTTP, la propriété
HTTPRequestClass.response.headers
retourne maintenant tous les noms d'en-têtes en minuscules. Si vous voulez que votre code continue à fonctionner comme avant, utilisez la nouvelle propriétéHTTPRequestClass.response.rawHeaders
. - Les certificats TLS sont désormais automatiquement validés par 4D lors de l'envoi de requêtes HTTP avec
4D.HTTPRequest.new()
, et rejetés avec une erreur s'ils sont invalides. Une nouvelle propriété option vous permet de contrôler cette validation. - TLS v1.0 et TLS v1.1 sont obsolètes, ils ne sont plus supportés comme
Min TLS version
sur 4D Server. La version 1.3 est maintenant sélectionnée par défaut et est automatiquement utilisée si les constantes_o_TLSv1_0
ou_o_TLSv1_1
sont définies avecSET DATABASE PARAMETER
. - Par souci de cohérence, tous les boutons, cases à cocher et boutons radio sont désormais rendus avec un type "3D" à l'exécution : respectivement
Object type 3D button
,Object type 3D checkbox
, etObject type 3D radio button
sont retournés parOBJECT Get type
pour ces objets. - As of 4D 20, 4D for Mobile is no longer installed by default in the 4D environment. Pour bénéficier des fonctionnalités de développement de 4D for Mobile dans 4D, vous devez installer le composant 4D Mobile App dans le dossier "Components" de vos projets. Si un projet converti utilise des fonctionnalités du composant 4D Mobile App Server, veillez à l'installer également dans le dossier "Components" du projet.
4D 19 R8
Read What’s new in 4D 19 R8, the blog post that lists all new features and enhancements in 4D 19 R8.
Points forts
- Des méthodes de gestion des erreurs peuvent être installées pour les contextes d'exécution globaux et les composants.
- Les listboxes avec des sources de données entity selection ou collections prennent désormais en charge la propriété de colonne Automatic Row Height.
- ORDA : Support du fichier roles.json pour définir les privilèges assignés à la session avec
setPrivileges()
. - Prise en charge du mode SDI en mode application test sous Windows.
- 4D View Pro :
- support of themes in tables: new VP SET TABLE THEME and VP Get table theme commands, support of theme options in VP CREATE TABLE
- new VP Get table dirty rows command
- Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Fixed bug list: list of all bugs that have been fixed in 4D 19 R8.
Changements de comportement
- Pour la conformité RFC de HTTP, la propriété
HTTPRequestClass.response.headers
retourne maintenant tous les noms d'en-têtes en minuscules. Si vous voulez que votre code continue à fonctionner comme avant, utilisez la nouvelle propriétéHTTPRequestClass.response.rawHeaders
. - Lorsqu'une action standard est assignée à un bouton bevel avec menu contextuel lié, l'action standard n'est plus générée si une option de menu contextuel est sélectionnée.
- Dans les zones Web utilisant blink (CEF), les dialogues affichés à partir de scripts externes sont désormais bloquants s'ils ne sont pas appelés à partir d'une fonction JS
setTimeout()
. Cela est dû aux mises à jour actuelles de CEF, dans lesquelles les dialogues affichés par des fonctions telles quealert()
ouprint()
ne sont plus gérés par le système d'exploitation mais par la zone Web. VoirWA Evaluate JavaScript
et [WA EXECUTE JAVASCRIPT
] (https://doc.4d.com/4dv19/help/command/en/page1043.html).
4D 19 R7
Read What’s new in 4D 19 R7, the blog post that lists all new features and enhancements in 4D 19 R7.
Points forts
- Les données liées et les attributs calculés/alias peuvent être affichés dans l'Explorateur de données.
- Nouvelle classe FileHandle et nouvelle fonction
.open()
dans la classeFile
. - Classe Entity selection :
.add()
prend en charge un paramètre entitySelection,.minus()
prend en charge un paramètre keepOrder. - Prise en charge des options automaticRedirections et decodeData dans
4D.HTTPRequest.new()
. - Nouveau fichier journal 4DHTTPClientLog.txt.
- 4D View Pro: new table commands VP Find table, VP Get table column attributes, VP Get table column index, VP Get tables, VP INSERT TABLE COLUMNS, VP INSERT TABLE ROWS, VP REMOVE TABLE COLUMNS, VP REMOVE TABLE ROWS, VP RESIZE TABLE, VP SET TABLE COLUMN ATTRIBUTES.
- Les espaces de noms des composants sont maintenant affichés dans l'explorateur.
- Les objets de formulaire zone de texte et de saisie prennent désormais en charge la propriété de rayon d'angle.
- Commandes du langage 4D : page What's new sur doc.4d.com.
- 4D Write Pro : Liste des nouveautés sur doc.4d.com.
- Fixed bug list: list of all bugs that have been fixed in 4D 19 R7.
Changements de comportement
- Pour des raisons de cohérence avec les interfaces standard (par exemple, les explorateurs de fichiers des OS), les règles des list box pour la sélection des lignes/le glisser-déposer ont été modifiées. Une sélection continue ou discontinue de lignes peut être glissée en cliquant simplement sur une ligne sélectionnée et en la déplaçant ; la touche Alt n'est plus nécessaire (mais peut toujours être utilisée comme dans les versions précédentes). Lorsque la touche Maj ou Ctrl/Commande est enfoncée, un clic de souris est pris en compte lorsque le clic est en bas. Pour plus d'informations sur le glisser-déposer dans les list box, vous pouvez consulter cet article de blog et télécharger ce projet HDI 4D.
- La numérotation interne de 4D a été modifiée à partir de 4D 19 R7 :
- les releases jusqu'à 4D 19 R6 (incluses) sont numérotées 282xxx,
- releases from 4D 19 R7 will be numbered 100xxx.\ Notez qu'une version spécifique de 4D est toujours identifiée de manière unique par un nom de branche et un numéro de build. Le numéro de build augmente par ordre chronologique.
- La possibilité d'utiliser le protocole REST de Wakanda/4D Mobile pour appeler une méthode de projet a été supprimée. Vous pouvez utiliser les fonctions de classe de data model ORDA ou les urls /4DACTION à la place.
4D 19 R6
- Nouvelle classe HTTPRequest.
- Les fonctions de collection qui peuvent appeler du code supportent maintenant les objets function comme paramètre formule :
.every()
,.filter()
,.find()
,.findIndex()
,.map()
,.orderByMethod()
,.reduce()
,.some()
,.sort()
- Les cellules de listbox prennent en charge le padding horizontal et vertical.
- 4D View Pro: new VP CREATE TABLE and VP REMOVE TABLE commands to handle tables in sheets.
- Possibilité de voir les attributs liés, calculés et alias dans le Web Data Explorer.
- Pour nous aider à améliorer nos produits, nous collectons désormais automatiquement des données concernant les statistiques d'utilisation des applications 4D Server en cours d'exécution. Cela n'aura aucun impact sur les performances. Voir la nouvelle page expliquant pourquoi et comment 4D collecte des données.
- Composants compilés pour Silicon : Sur les plateformes macOS Silicon (Apple ARM CPUs), les composants doivent être recompilés avec 4D 19 R6 ou plus pour être utilisés avec cette version.
4D 19 R5
- Le fichier directory.json du projet peut désormais être intégré dans le serveur au moment du build, ce qui vous permet de déployer une application client/serveur avec une configuration de sécurité d'utilisateurs et groupes de base.
- Vous pouvez maintenant désélectionner les modules inutiles dans vos applications construites.
- La bibliothèque MeCab est incluse par défaut dans toutes les applications 4D sur macOS. Dans les versions précédentes, cette bibliothèque, spécialement conçue pour gérer le texte japonais, n'était disponible que dans la version japonaise de 4D sur macOS. Si vous n'avez pas besoin de cette bibliothèque dans vos applications finales, vous pouvez maintenant la désélectionner.
- Client/Server optimization: New class functions allow you to handle the ORDA cache and the contents of an optimization context. Voir Preconfiguring contexts et ORDA Cache pour plus d'informations.
Ces fonctions sont destinées aux développeurs qui ont besoin de personnaliser les fonctions par défaut d'ORDA pour des configurations spécifiques. Dans la plupart des cas, vous n'aurez pas besoin de les utiliser.
- Classe DataClass : La nouvelle fonction .getCount() retourne le nombre d'entités dans une dataclass.
- Le fichier 4DDiagnosticLog.txt n'enregistre par défaut que des informations de haut niveau (niveau INFO). Vous pouvez maintenant sélectionner le niveau d'information à enregistrer (par exemple les informations de niveau DEBUG) en utilisant le sélecteur
Diagnostic log level
de la commandeSET DATABASE PARAMETER
ou le fichier de configuration du journal. - L'appel à
Use()
sur un objet non partagé ou une collection non partagée ne fait rien (il ne génère plus d'erreur). Ainsi, il est désormais inutile de tester si l'objet ou la collection passé(e) à Use() est effectivement partagé(e). - Pour plus de clarté, deux commandes SQL ont été préfixées :
GET DATA SOURCE LIST
a été renommée enSQL GET DATA SOURCE LIST
,Get current data source
a été renommée enSQL Get current data source
. - 4D View Pro:
- The new VP SET DATA CONTEXT, VP Get data context, VP SET BINDING PATH, VP Get binding path commands allow you to create data contexts and bind their contents to sheet cells.
- VP EXPORT DOCUMENT and VP Export to object now accept the new
includeBindingSource
option that exports the contents of a data context as cell values. - (Windows uniquement) Les zones de 4D View Pro utilisent désormais une nouvelle fenêtre de paramètres d'impression.
- Web areas:
- Nouveau moteur de rendu système Windows : Les zones Web utilisant le moteur de rendu du système Windows sont désormais basées sur Microsoft Edge WebView2. Cela a un impact sur les caractéristiques suivantes :
- Les commandes
WA Create URL history menu
etWA GET URL HISTORY
ne renvoient que l'URL en cours.
- La variable Progression n'est plus mise à jour.
- Les fonctions de glisser-déposer sont gérées par une API Windows qualifiée d'"expérimentale" par Microsoft. Par conséquent, les zones web peuvent ne pas fonctionner comme prévu lorsque cette API n'est pas installée : le glisser-déposer peut sembler autorisé même si la préférence
WA enable URL drop
a été réglée sur False. Cependant, l'action de dépôt est bloquée par défaut, et vous pouvez contrôler les URLs autorisées en utilisant l'événementOn Window Opening Denied
(voir ci-dessous).
- Les commandes
- (Windows uniquement) Lorsque l'utilisateur sélectionne Imprimer... à partir d'une zone Web utilisant le moteur de rendu Web intégré, une nouvelle fenêtre de paramètres d'impression s'affiche.
- Pour refléter leur effet réel dans les zones web (augmentation ou diminution du niveau de zoom de la page), deux commandes ont été renommées :
WA SET PAGE TEXT LARGER
a été renomméeWA ZOOM IN
,WA SET PAGE TEXT SMALLER
a été renomméeWA ZOOM OUT
. - Sécurité renforcée dans les zones web qui utilisent le moteur de rendu web intégré ou le moteur de rendu du système Windows (basé sur Microsoft Edge WebView2) :
- Les règles CORS s'appliquent désormais à l'accès aux fichiers sur disque dans les espaces web. Par exemple, lors de l'ouverture d'un fichier .html avec
WA OPEN URL
, ce fichier .html ne peut pas contenir de liens pointant vers des fichiers situés en dehors de son dossier - Le dépôt de contenus externes dans les zones web est désormais toujours bloqué et déclenche l'événement
On Window Opening Denied
lorsque la préférenceWA enable URL drop
est définie sur True (lorsqu'elle est définie sur False, la préférenceWA enable URL drop
ne modifie que l'icône du curseur de dépôt et filtre l'événementOn Window Opening Denied
). Pour permettre une action de dépôt, vous devez exécuter un code supplémentaire dans la méthode objet de la zone web :
- Les règles CORS s'appliquent désormais à l'accès aux fichiers sur disque dans les espaces web. Par exemple, lors de l'ouverture d'un fichier .html avec
- Nouveau moteur de rendu système Windows : Les zones Web utilisant le moteur de rendu du système Windows sont désormais basées sur Microsoft Edge WebView2. Cela a un impact sur les caractéristiques suivantes :
WA OPEN URL(* ; "WebArea";WA Get last filtered URL(* ; "WebArea"))
4D 19 R4
- Les attributs alias sont disponibles dans les classes ORDA.
- Prise en charge des instructions break and continue dans les boucles.
- Prise en charge de l'instruction return et de l'expression return expression pour renvoyer des valeurs.
- Support des opérateurs d'assignation composés, opérateurs de court-circuits, et opérateur ternaire
- L'Éditeur de code comprend désormais un outil de liste déroulante et supporte les marqueurs pour une meilleure navigation dans le code.
- Nouvelles préférences : Option Inclure les jetons dans les fichiers source du projet et Afficher les presse-papiers sur la page Méthodes.
- Nouvelle requête REST pour verrouiller/déverrouiller les entités.
- 4D View Pro chapter added with new commands: VP Copy to object, VP MOVE CELLS, VP PASTE FROM OBJECT.
- Nouvelle classe SystemWorker.
- La constante
Alias selection
a été renomméeAllow alias files
pour résoudre un conflit résultant de la prise en charge des attributs d'alias dans ORDA. - For better compliance with ORDA specifications, the Map NULL values to blank values field property is now unchecked by default in databases created with 4D 19 R4 and higher. Vous pouvez également activer ce comportement par défaut dans vos bases de données converties à partir de versions antérieures en sélectionnant le paramètre de compatibilité Mapper les valeurs NULL en valeurs vides non coché par défaut lors de la création des champs. Il est désormais recommandé de travailler avec des valeurs nulles, car elles sont entièrement prises en charge par ORDA.
- En raison de la prise en charge de l'opérateur ternaire, les deux points ":" ne sont plus autorisés dans les noms de variables, de champs, de constantes, de fonctions, de plugins et de méthodes de projet. If your database/project contains identifiers with colons, you must replace them before converting it to 4D 19 R4 or higher, otherwise errors may occur in your code. Par exemple, si vous avez une variable nommée a:b, elle peut être interprétée comme une syntaxe d'opérateur ternaire :
$value:=($size>1000) ? a:b // Ici, 'a:b' est considéré comme un opérateur ternaire.
4D 19 R3
- Les propriétés calculées sont disponibles dans les classes.
- Les attributs calculés sont disponibles dans les classes ORDA. Ils sont similaires aux propriétés calculées, mais supportent aussi les fonctions query et orderBy.
- Nouveaux attributs de dataclass ORDA :
exposed
etreadOnly
. - Les archives ZIP prennent désormais en charge les algorithmes de compression LZMA et xz.
- Une nouvelle option de compilation facilite l'inclusion des clients Silicon Mac dans les applications Serveur sous Windows.
- Extension de la prise en charge du mode sombre sur macOS.
- Support de OAuth2 token object dans
IMAP New transporter
,POP3 New transporter
, etSMTP New transporter
. - Les utilisateurs peuvent maintenant charger un fichier de configuration des journaux en utilisant un bouton dans la fenêtre d'administration du serveur.
- La gestion des paramètres optionnels est plus souple dans le langage 4D lorsqu'il s'agit d'accéder à des paramètres déclarés mais non transmis. Par exemple, le code suivant ne provoque plus d'erreur :
// Fonction "concate" de myClass
Function concate ($param1 : Text ; $param2 : Text)
ALERT($param1+""+$param2)
// Appel de la méthode
$class:=cs.myClass.new()
$class.concate("Hello" ;" world") // Affiche "Hello world"
$class.concate("Hello") // Affiche "Hello "
$class.concate() // Affiche " "
Pour plus d'informations, veuillez consulter cet article de blog. Pour bénéficier de cette simplification globale, vous devez recompiler à la fois les méthodes appelantes et les méthodes appelées ; les composants doivent donc être recompilés.
Le débogage des sessions du serveur web est plus facile sur 4D Server.
Le nouveau composant 4D NetKit vous permet de vous connecter à des API tierces telles que Microsoft Graph.
4D 19 R3 utilise un algorithme de hachage plus puissant pour les mots de passe des utilisateurs 4D : Bcrypt. Ce nouvel algorithme est automatiquement utilisé lorsqu'un mot de passe est modifié à l'aide de la boîte à outils, de la commande
CHANGE PASSWORD
ou de la commandeSet user properties
. Une fois le mot de passe modifié, l'ouverture de la base de données avec une version antérieure à 4D 19 R3 entraînera un refus d'authentification pour ce compte. Si vous utilisez les mots de passe 4D, il est fortement recommandé de sauvegarder le fichier .4db (bases de données binaires) ou le fichier directory.json (projets) avant d'effectuer la mise à jour vers 4D 19 R3 ou une version ultérieure.Par souci d'exactitude, la constante
4D digest
a été renommée4D REST digest
.Gestion des fins de ligne et des nomenclatures pour les commandes XML : Lorsqu'ils sont ouverts dans 4D 19 R3, les projets ou bases de données créé(e)s avec les versions précédentes se comportent différemment en ce qui concerne les caractères de fin de ligne par défaut et la gestion des BOM dans les documents XML : les caractères de saut de ligne (LF) sont utilisés à la place de CR (sur macOS), et les marques d'ordre d'octet (BOM) ne sont pas incluses. Cela permet une meilleure compatibilité avec les outils VCS. If necessary, you can restore the 4D 19 R2 behavior using the
XML SET OPTIONS
command. In projects or databases converted from releases prior to 19 R2, these options are managed by two compatibility settings.Suppression du raccourci "Runtime Explorer" dans les projets construits : le raccourci Cmd/Ctrl+Shift+F9 n'affiche plus la fenêtre du Runtime Explorer dans les applications de projets fusionnés à mono-utilisateurs. Ce raccourci peut désormais être un raccourci d'application utilisateur. Vous pouvez appeler la fenêtre Runtime Explorer en utilisant la nouvelle commande
OPEN RUNTIME EXPLORER
.Capacités de débogage étendues avec 4D Server : En mode interprété, 4D Server peut désormais déboguer tous les types de process, y compris les sessions web évolutives. Cette fonction est disponible lorsque le débogueur est connecté au serveur ou à un client distant.\ Attention : En mode interprété, afin de rendre le débogage étendu disponible sur la machine serveur, tous les process du serveur sont désormais automatiquement exécutés en mode coopératif lorsque le débogueur est attaché au serveur (paramètre par défaut). This can have a significant impact on the performance of your converted applications when they run with 4D Server 19 R3 and higher. Pour rétablir l'exécution préemptive sur le serveur dans ce cas, il suffit de détacher le débogueur du serveur (et de l'attacher à un client distant si nécessaire).
On Windows, 4D projects and databases created with 4D 19 R3 and higher use the DirectWrite API in forms. Cette API améliore le rendu du texte, en particulier dans les configurations à DPI élevé. DirectWrite est utilisé pour le rendu de textes statiques et de textes saisis, de cases à cocher, de boutons et de boutons radio. Notez que les listbox utilisent déjà DirectWrite. Une option de compatibilité vous permet d'activer DirectWrite dans les projets et les bases de données créés avec des versions antérieures de 4D.
If you use components compiled with 4D 19.0 for Silicon (Apple ARM CPUs) which call the
Count parameters
command, we recommend to recompile them with 4D 19 R3 to provide compatibility with 4D 19 R3 and future releases. Si un composant n'est pas compilé pour Silicon, il n'est pas nécessaire de le recompiler.
4D 19 R2
- Un fichier .gitignore par défaut peut être créé avec les nouveaux projets
- Nouvelle API de classe Blob pour gérer les nouveaux objets
4D.Blob
- Support de
no-bom
et nouveaux caractères de fin de ligne par défaut dans.setText()
Versions précédentes
Cliquez pour voir les notes de mise à jour des versions précédentes
4D 19
Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettre à jour 4D en release 19.7 LTS build 288986 ou plus. Pour plus d'informations, consultez ce Bulletin de sécurité.
- IMAPTransporter Class : nouvelles fonctions
.createBox()
,.deleteBox()
,.renameBox()
,.subscribe()
, et.unsubscribe()
. - Classe File : nouvelles fonctions
setAppInfo()
etgetAppInfo()
. - Nouvelle balise de transformation 4DEACH.
- Serveur Web : nouveau paramètre SameSite session cookie.
- Prise en charge des couleurs foncées et claires pour les formulaires et les feuilles de style
- Nouveaux thèmes sombres et clairs par défaut dans les préférences de l'éditeur de code.
- Compilation native pour les processeurs Silicon.
- La propriété Variable calculation est désormais prise en charge par les colonnes de listbox entity selection.
- Nouvelle page complète CLI.
4D 18 R6
- Classe Entity selection : Les fonctions
.average()
,.max()
et.min()
retournent maintenant undefined si l'entity selection est vide. - IMAP Mail, POP3 Mail et SMTP Mail : La propriété
authenticationMode
active OAuth 2.0 - IMAP Mail : nouvelles fonctions
.expunge()
et.append()
- Nouveau composant de serveur web WebAdmin
- Nouvelle interface DataExplorer
- Nouvelles sessions utilisateur et leur API web.
Tableau des bibliothèques
Bibliothèque | Version courante | Mise à jour dans 4D | Commentaire |
---|---|---|---|
ICU | 73.2 | 20.1 | Cette mise à jour majeure entraîne une reconstruction automatique des index alphanumériques, texte et objets. |
CEF | 121 | 20 R5 | Chromium 6167 |
Hunspell | 1.7.2 | 20 | Utilisé pour la vérification orthographique dans les formulaires 4D et 4D Write Pro |
PDFWriter | 4.3 | 20 | FreeType dependency dans 12.2.1 |
SpreadJS | 16.2.6 | 20 R4 | Moteur 4D View Pro |
OpenSSL | 3.2.0 | 20 R4 | Le niveau de sécurité TLS/SSL par défaut a été relevé. Voir Changements de comportement pour la version 20 R4 |
libZip | 1.9.2 | 20 | Utilisé par les classes zip, 4D Write Pro, les composants svg et serverNet |
LZMA | 5.4.1 | 20 | |
Zlib | 1.2.13 | 20 | |
webKit | WKWebView | 19 | |
PHP | 8.2.4 | 20 | |
libldap | 2.6.4 | 20 R3 | |
libsasl | 2.1.28 | 20 |