Aller au contenu principal
Version: v20 R4 BETA

Release Notes

4D v20 R4

Read What’s new in 4D v20 R4, the blog post that lists all new features and enhancements in 4D v20 R4.

Points forts

Changements de comportement

  • Using a legacy syntax for declaring parameters (e.g. C_TEXT($1) or var $1 : Text) is now deprecated and generates warnings at code typing, syntax checking, and compilation steps.
  • In the updated OpenSSL library, the default SSL/TLS security level has been changed from 1 to 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 v20 R3

Read What’s new in 4D v20 R3, the blog post that lists all new features and enhancements in 4D v20 R3.

Points forts

Changements de comportement

  • Some errors were catchable by your error handling method in interpreted mode only. A fix has been done, so that the following errors will now be caught also in compiled mode: Indice out of range, Type incompatible, and Dereferencing a Null pointer. However, for such errors on Intel processors, the procedure is still interrupted as before, whereas on Apple Silicon processors the procedure is only interrupted if you call the ABORT command.
  • 4D n'inclut plus d'interpréteur PHP interne. You need to set up and run your own PHP interpreter to use PHP commands.

4D v20 R2

Read What’s new in 4D v20 R2, the blog post that lists all new features and enhancements in 4D v20 R2.

Security Note

Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettre à jour 4D en release 20 R2 HF1 build 100440 ou plus. For more information, refer to this Security bulletin.

Points forts

Changements de comportement

  • Warning: The starting offset value of 4D.FileHandle objects was incorrectly set to 1 instead of 0. A fix has been made in 4D as of versions 20.1 HF1 and 20 R2 and the value is now 0.

4D v20.x

Read What’s new in 4D v20, the blog post that lists all new features and enhancements in 4D v20.

Minimal client version for 4D Server v20.2 and later

Pour des raisons internes, la version des clients distants se connectant à 4D Server v20.2 et plus doit être au moins 4D v20.2.

Security Note

Si vos applications 4D utilisent des connexions TLS, il est recommandé de mettre à jour 4D en release 20.2 LTS build 100956 ou plus. For more information, refer to this Security bulletin.

Avertissement concernant la reconstruction de l'index

4D v20 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 v20.1 index rebuild and client/server versions

4D v20.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 v20.1 peuvent se connecter au serveur 4D v20.1 et vice versa.

Points forts

Changements de comportement

  • À partir de la version 20.2, 4D v20 LTS n'est plus compatible avec Windows Server 2012 R2.
  • Warning: The starting offset value of 4D.FileHandle objects was incorrectly set to 1 instead of 0. A fix has been made in 4D as of versions 20.1 HF1 and 20 R2 and the value is now 0.
  • For HTTP RFC compliance, HTTPRequestClass.response.headers property now returns all header names in lowercase. If you want your code to continue working as before, use the new HTTPRequestClass.response.rawHeaders property.
  • TLS certificates are now automatically validated by 4D when sending HTTP requests with 4D.HTTPRequest.new(), and rejected with an error if they are invalid. A new option property allows you to control this validation.
  • TLS v1.0 and TLS v1.1 are deprecated, they are no longer supported as Min TLS version on 4D Server. Version 1.3 is now selected by default and is automatically used if _o_TLSv1_0 or _o_TLSv1_1 constants are set with SET DATABASE PARAMETER.
  • For consistency, all buttons, checkboxes, and radio buttons are now rendered with a "3D" type at runtime: respectively Object type 3D button, Object type 3D checkbox, and Object type 3D radio button are returned by OBJECT Get type for these objects.
  • As of 4D v20, 4D for Mobile is no longer installed by default in the 4D environment. To benefit from the 4D for Mobile development features in 4D, you need to install the 4D Mobile App component in the "Components" folder of your projects. If a converted project uses features from the 4D Mobile App Server component, make sure you also install it in the "Components" folder of the project.

4D v19 R8

Read What’s new in 4D v19 R8, the blog post that lists all new features and enhancements in 4D v19 R8.

Points forts

Changements de comportement

4D v19 R7

Read What’s new in 4D v19 R7, the blog post that lists all new features and enhancements in 4D v19 R7.

Points forts

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. A continuous or discontinuous selection of rows can be dragged by simply clicking on and moving a selected row; the Alt key is not longer necessary (but can still be used like in previous previous). When the Shift or Ctrl/Command key is pressed, a mouse click is taken into account when the click is down. For more information on drag and drop in list boxes, you can refer to this blog post and download this HDI 4D project.
  • La numérotation interne de 4D a été modifiée à partir de 4D v19 R7 :
    • Les versions jusqu'à 4D v19 R6 (incluses) sont numérotées 282xxx,
    • releases from 4D v19 R7 will be numbered 100xxx.\ Note that a specific 4D version is still uniquely identified by a branch name and a build number. 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. You can use ORDA data model class functions or /4DACTION urls instead.

4D v19 R6

4D v19 R5

  • The project directory.json file can now be embedded in the server at build time, allowing you to deploy a client/server application with a basic security user and group configuration.
  • You can now deselect useless modules in your built applications.
  • The MeCab library is included by default in all 4D applications on 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. If you do not need this library in your final applications, you can now deselect it.
  • Client/Server optimization: New class functions allow you to handle the ORDA cache and the contents of an optimization context. See Preconfiguring contexts and ORDA Cache for more information.

    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.

  • DataClass class: The new .getCount() function returns the number of entities in a dataclass.
  • The 4DDiagnosticLog.txt file only records high-level information by default (INFO level. You can now select the information level to record (for example DEBUG level information) using the Diagnostic log level selector of the SET DATABASE PARAMETER command or the log configuration file.
  • Calling Use() on a non-shared object or a non-shared collection does nothing (it no longer generates an error). Ainsi, il est désormais inutile de tester si l'objet ou la collection passé(e) à Use() est effectivement partagé(e).
  • For clarification purposes, two SQL commands have been prefixed: GET DATA SOURCE LIST has been renamed to SQL GET DATA SOURCE LIST, Get current data source has been renamed to SQL Get current data source.
  • 4D View Pro:
  • Web areas:
    • New Windows system rendering engine: Web Areas using the Windows system rendering engine are now based upon Microsoft Edge WebView2. Cela a un impact sur les caractéristiques suivantes :
      • The WA Create URL history menu and WA GET URL HISTORY commands only return the current URL.
      • The Progression variable is no longer updated.
      • Les fonctions de glisser-déposer sont gérées par une API Windows qualifiée d'"expérimentale" par Microsoft. Consequently, web areas may not work as expected when this API is not installed: Drag and drop may seem allowed even when the WA enable URL drop preference has been set to False. However, the drop action is blocked by default, and you can control the allowed URLs using the On Window Opening Denied event (see below).
    • (Windows only) When the user selects Print... from a web area using the embedded web rendering engine, a new print settings window is now displayed.
    • To reflect their actual effect in web areas (increase or decrease page zoom level), two commands have been renamed: WA SET PAGE TEXT LARGER has been renamed WA ZOOM IN, WA SET PAGE TEXT SMALLER has been renamed WA ZOOM OUT.
    • Enhanced security in web areas that use the embedded web rendering engine or the Windows system rendering engine (based on Microsoft Edge WebView2):
      • Les règles CORS s'appliquent désormais à l'accès aux fichiers sur disque dans les espaces web. For example, when opening a .html file with WA OPEN URL, that .html file cannot contain links that point to files outside its folder
      • Dropping external contents in web areas is now always blocked and triggers the On Window Opening Denied event when the WA enable URL drop preference is set to True (when set to False, the WA enable URL drop preference only modifies the drop cursor icon and filters the On Window Opening Denied event). 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 :
WA OPEN URL(*;"WebArea";WA Get last filtered URL(*;"WebArea"))

4D v19 R4

  • Alias attributes are available in ORDA classes.
  • Support for break and continue statements in loops.
  • Support for return statement and return expression to return values.
  • Support for compound assignment operators, short-circuit operators, and ternary operator
  • The Code Editor now includes an dropdown tool and supports markers for better code navigation.
  • New Preferences: Include tokens in project source files and Show clipboards option on the Methods page.
  • New REST request to lock/unlock entities.
  • 4D View Pro chapter added with new commands: VP Copy to object, VP MOVE CELLS, VP PASTE FROM OBJECT.
  • New SystemWorker class.
  • The Alias selection constant has been renamed Allow alias files to resolve a conflict resulting from the support of alias attributes in 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 v19 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.
  • Because of the support of the ternary operator, the colon ":" is no longer allowed in variable, field, constant, function, plugin and project method names. Si votre base de données/projet contient des identifiants avec des deux-points, vous devez les remplacer avant de la convertir à la v19 R4 ou à une version plus récente, sinon des erreurs peuvent se produire dans votre code. For example, if you have a variable named a:b, it could be interpreted as ternary operator syntax:
$value:=($size>1000)? a:b // Here 'a:b' is viewed as a ternary operator.

4D v19 R3

// 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 " "

For detailed information, please refer to this blog post. 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.

  • Debugging web server sessions is easier on 4D Server.

  • The new 4D NetKit component allows you to connect to third-party APIs such as Microsoft Graph.

  • 4D v19 R3 utilise un algorithme de hachage plus puissant pour les mots de passe des utilisateurs de 4D : Bcrypt. This new algorithm is automatically used when a password is changed using the Tool Box, the CHANGE PASSWORD command, or the Set user properties command. Une fois le mot de passe modifié, l'ouverture de la base de données avec une version antérieure à 4D v19 R3 entraînera un refus d'authentification pour ce compte. Si vous utilisez des 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 v19 R3 ou une version ultérieure.

  • For accuracy, the 4D digest constant has been renamed 4D REST digest.

  • Gestion des fins de ligne et des nomenclatures pour les commandes XML : Lorsqu'ils sont ouverts dans 4D v19 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 v19 R2 behavior using the XML SET OPTIONS command. Dans les projets ou les bases de données converti(e)s à partir de versions antérieures à 19 R2, ces options sont gérées par deux paramètres de compatibilité.

  • Runtime Explorer shortcut removed in built projects: The Cmd/Ctrl+Shift+F9 shortcut does no longer display the Runtime Explorer window in single-user merged project applications. Ce raccourci peut désormais être un raccourci d'application utilisateur. You can call the Runtime Explorer window using the new OPEN RUNTIME EXPLORER command.

  • 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. This is available when the debugger is attached to the server or to a remote client.\ Warning: In interpreted mode, in order to make extented debugging available on the server machine, all server processes are now automatically executed in cooperative mode when the debugger is attached to the server (default setting). Cela peut avoir un impact significatif sur les performances de vos applications converties lorsqu'elles fonctionnent avec 4D Server v19 R3 et plus. To restore preemptive execution on the server in this case, all you need to do is detach the debugger from the server (and attach it to a remote client if necessary).

  • On Windows, 4D projects and databases created with 4D v19 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 v19.0 for Silicon (Apple ARM CPUs) which call the Count parameters command, we recommend to recompile them with 4D v19 R3 to provide compatibility with 4D v19 R3 and future releases. Si un composant n'est pas compilé pour Silicon, il n'est pas nécessaire de le recompiler.

4D v19 R2

Previous releases

Click to see the release notes for previous versions

4D v19

Security Note

If your 4D applications use TLS connections, it is recommended that you upgrade to 4D v19.7 LTS build 288986 or higher. For more information, refer to this Security bulletin.

4D v18 R6

Library table

BibliothèqueVersion couranteMise à jour dans 4DCommentaire
ICU73.220.1Cette mise à jour majeure entraîne une reconstruction automatique des index alphanumériques, texte et objets.
CEF11820 R3Chromium 5993
Hunspell1.7.220Utilisé pour la vérification orthographique dans les formulaires 4D et 4D Write Pro
PDFWriter4.320FreeType dependency dans 12.2.1
SpreadJS16.2.620 R4Moteur 4D View Pro
OpenSSL3.2.020 R4Le niveau de sécurité TLS/SSL par défaut a été relevé. See Behavior changes for release 20 R4
libZip1.9.220Utilisé par les classes zip, 4D Write Pro, les composants svg et serverNet
LZMA5.4.120
Zlib1.2.1320
webKitWKWebView19
PHP8.2.420
libldap2.6.420 R3
libsasl2.1.2820