Durant le cycle R-release, plusieurs bibliothèques et composants utilisés par 4D sont mis à jour, des comportements existants sont modifiés, des problèmes connus sont enregistrés. Ces informations, publiées initialement dans les "Release Notes" de chaque version, sont résumées dans cette page.
Attention : 4D v18 R6 inclut une mise à jour de la bibliothèque ICU (voir ci-dessous) qui forcera une génération automatique des index de type alpha, texte et objet. Selon la taille du fichier de données, cette opération peut prendre un certain temps et nécessiter une planification.
Si vous utilisez des composants compilés avec 4D v19.0 pour Silicon (CPUs Apple ARM) qui font appel à la commande Nombre de paramètres, nous vous recommandons de les recompiler avec 4D v19.1 (ou v19 R3) afin de garantir la compatibilité avec 4D v19 R3 et les versions suivantes. Si un composant n'est pas compilé pour Silicon, il n'est pas nécessaire de le recompiler.
Le compilateur 4D a été mis à jour dans 4D v19, avec les conséquences suivantes :
Si vous souhaitez utiliser une version compilée d'un projet v18 Rx avec 4D v19 ou une version plus récente, vous devez au préalable recompiler le projet avec 4D v19.
La notation en points et les méthodes de sauvegarde en Unicode sont désormais obligatoires pour compiler une base de données. Lorsque vous tenterez de compiler la base de données avec l'un de ces paramètres désactivé, une erreur de compilation sera générée. Les options correspondantes doivent être activées dans la Page Compatibilité des Propriétés.
Sous Windows, la création d'une application client/serveur qui déclenche des mises à jour automatiques pour les clients macOS nécessite désormais de sélectionner un fichier .4darchive généré préalablement côté macOS.
4D v19 est la première version binaire universelle de 4D sur macOS. Un binaire universel ne sera pas différent d'une application standard, mais son fichier exécutable contient deux versions : une version fonctionne en mode natif sur Apple silicon et une version en mode natif sur les ordinateurs Mac Intel.
L'attribut SameSite des cookies de session Web scalaires est défini par défaut sur "Strict" à partir de 4D v19 (paramètre le plus sécurisé). Dans les versions précédentes, cet attribut n'était pas défini par le serveur Web. Ainsi, les navigateurs utilisaient une configuration "Lax" par défaut. Pour plus d'informations, consultez developer.4d.com
La version 4D v19 et les versions plus récentes incluent les modifications internes apportées aux fonctionnalités de chiffrement. Par conséquent, un fichier de données chiffré avec 4D v19 ou avec une version plus récente à l'aide d'une commande telle que Chiffrer fichier donnees ou le MSC ne peut pas être rouvert avec une version précédente (sauf 4D v18.5 qui inclut les modifications).
Note : Le chiffrement est également déclenché par les opérations de compactage ou de réparation.
Cependant, il sera toujours possible de rouvrir le fichier de données à l'aide d'une version antérieure de 4D en supprimant au préalable le chiffrement dans 4D v19.x.
Seuls les fichiers de données chiffrés sont concernés. Si vous n'utilisez pas le chiffrement, le fichier de données peut être rouvert comme d'habitude.
Par souci de cohérence, la propriété MailAttachment.path retourne désormais le chemin du fichier de pièce jointe avec une syntaxe POSIX. Utilisez la nouvelle propriété MailAttachment.platformPath pour obtenir le chemin du fichier de pièce jointe avec une syntaxe de plate-forme.
A des fins de clarté et de promotion de l'architecture projet des nouveaux développements, la terminologie globale a été mise à jour dans 4D et l'interface a été simplifiée :
Le terme générique "base de données" a été remplacé par "projet" dans toutes les applications 4D.
Par défaut, seule l'option Nouveau > Projet... est proposée dans le menu Fichier/bouton de barre d'outils Nouveau.
La création de bases binaires via le menu Fichier ou le bouton de barre d'outils Nouveau est toujours prise en charge, mais elle doit être explicitement activée dans les Préférences, à l'aide de l'option Activer la création de bases de données en binaire...
A des fins de cohérence avec les fonctions de collection, les fonctions entitySelection.min( ), entitySelection.max( ) et entitySelection.average( ) retournent désormais Indéfini lorsqu'elles s'appliquent à une sélection d'entités. Dans les versions antérieures à18 R6, elles retournaient Null dans ce cas.
A partir de 4D v18 R5, les fonctions de classe ORDA existantes du modèle de données (introduites en 4D v18 R4) sont par défaut automatiquement non exposées aux requêtes REST. Vous devez explicitement déclarer comme exposée chaque fonction que vous souhaitez rendre disponible à partir des requêtes REST. Reportez-vous à la documentation des classes du modèle de données sur developer.4d.com
A partir de 4D v18 R5, les objets sélections d'entités peuvent être partagés entre les process pour plus de flexibilité et d'adaptabilité. Selon la façon dont elles sont créées, certaines sélections d'entités peuvent devenir partageables dans votre application, voir Sélections d'entité partageables et non partageables).
Une sélection d'entités partageable n'accepte pas l'ajout de nouvelles entités. Par conséquent, les appels à entitySelection.add( ) peuvent générer des erreurs dans votre code existant. Dans ce cas, pour restaurer une exécution sans erreur, vous pouvez :
"forcer" toutes les nouvelles sélections d'entités à être modifiables par défaut dans votre projet à l'aide de la fonction dataStore.makeSelectionsAlterable( ).
La commande FICHIER HISTORIQUE VERS JSON exporte désormais des détails des opérations effectuées sur les champs de type objet. Ils étaient auparavant traités comme des champs Blob.
Lorsque vous exécutez une restauration manuelle d'un fichier de sauvegarde, tout contenu relatif au fichier de données (les fichiers et le dossier Settings) est désormais automatiquement restauré dans le sous-dossier Data, créé dans le dossier de destination.
Les clés XML Backup / DataBase ne sont plus disponibles dans le fichier "backup.4DSettings" (DatabaseName, LastBackupPath, LastBackupLogPath, CurrentBackupSet, LastBackupDate, LastBackupTime). Les informations et les rapports liés la dernière opération de sauvegarde se trouvent désormais dans le fichier « backupHistory.json ».
Le port serveur 19815 est désormais utilisé automatiquement par 4D Server lorsque le débogueur distant est activé (numéro de port par défaut). Pour plus d'informations, veuillez vous reporter à la section 4D Server et les numéros de port.
A partir de 4D v18 R6, les événements Sur clic et Sur double clic sont générés lorsqu'un clic est effectué sur une cellule de saisie de texte durant la modification de la cellule. Cette fonctionnalité permet d'afficher des menu pop-ups après Clic contextuel par exemple. L'événement est généré dans la colonne et dans l'objet list box (dans cet ordre).
Dans les versions précédentes, ces événements pouvaient être générés uniquement pour des cellules de saisie de texte lorsqu'elles n'étaient pas en édition. Pour éviter tout effet inattendu dans les interfaces existantes, vous pouvez ajouter le test suivant dans votre code :
//Objet list box ou méthode de colonne de list box Si(FORM Evenement.code=Sur clic) //ou Sur double-clic Si(Non(Texte en edition)) //test supplémentaire //code précédent Fin de si Fin de si
A partir de 4D v18 R4, les fonctionnalités avancées de la list box sont accessibles gratuitement à tous les utilisateurs 4D (une licence 4D View Pro était nécessaire auparavant). Ces fonctionnalités incluent :
Ces commandes ont été mises à jour dans 4D v18 R4. Certains comportements non documentés ont été modifiés, ce qui pourrait entraîner des problèmes de compatibilité dans les applications existantes.
Les deux commandes permettaient de modifier la variable système OK; elles ne définissent plus cette variable.
Dans le cas d'un format Base64 non valide, la commande DECODER BASE64 appelée sur un seul paramètre blob laissait le blob inchangé. Elle retourne maintenant un blob vide.
Conformément aux recommandations d'Apple, 4D fournit désormais un 4D Volume Desktop signé et notarisé avec des plug-ins. Par conséquent, la signature de votre application sur macOS devient obligatoire, sinon le process de génération produit des packages avec des signatures invalides. L'option Signer l'application est cochée par défaut dans la boite de dialogue de génération de l'application. Les développeurs ne disposant pas d'un certificat de distribution doivent utiliser un certificat d'auto-signature (pour plus de facilité, un bouton Générer certificat auto-signé a été ajouté dans la boite de dialogue de génération de l'application).
De plus, il n'est plus possible de générer une application cliente macOS directement sur la plateforme Windows. Vous devez générer l'archive macOS sur un Mac et le copier dans le package final.
Note : 4D s'assure désormais que la structure des plug-ins et applications tiers est conforme aux derniers pré-requis Apple (mis à jour en février 2020) lors de l'étape de signature. Par conséquent, même un ancien élément notarisé pourrait être rejeté par 4D. Cela permettra de gagner du temps puisque toute la notarisation échouerait éventuellement. Dans ce cas, vous devrez peut-être contacter le fournisseur de l'application ou du plug-in pour obtenir une version mise à jour.
Dans les applications projets, lorsque 4D se connecte à un 4D Server sur la même machine, 4D utilise désormais ses propres composants internes et plug-ins au lieu de ceux de 4D Server (les plug-ins du serveur ne sont pas "téléchargés" dans l'application 4D dans ce contexte). A noter qu'il n'est plus recommandé d'installer des plug-ins ou des composants au niveau de l'application 4D ou 4D Server. Pour plus d'informations, reportez-vous à cette section.
Le plug-in Commandes Internet de 4D n'est plus installé par défaut dans 4D depuis 4D v19. Il doit être explicitement sélectionné/téléchargé et installé dans le dossier Plugins de votre base de données si celle-ci l'utilise encore. Pour plus d'informations, voir Installation et logiciels requis.
Comme indiqué dans la page *** Nouveau site de documentation ***, la documentation 4D est en cours de migration vers la plateforme developer.4d.com/docs. Outre le nouveau contenu, le nouveau site est également enrichi progressivement par des informations provenant de doc.4d.com et mises à jour.
Afin d'éviter toute confusion, nous avons commencé à supprimer des sections de doc.4d.com qui ont déjà été mises à jour et qui ont migré vers developer.4d.com. Ces sections supprimées vous redirigent désormais vers le nouveau site, par exemple :
Lors de l'importation d'anciens documents du plug-in 4D Write, 4D Write Pro utilise désormais par défaut le séparateur du système (retourné par LIRE FORMATAGE SYSTEME) comme séparateur décimal pour les tabulations décimales. Vous pouvez modifier ce paramètre à l'aide de la commande WP FIXER ATTRIBUTS.
A partir de 4D Write Pro v18 R2, les méthodes et commandes ne sont plus filtrées dans les formules -- 4D Write Pro prend en charge les formules comme des objets et non plus comme des chaînes. Les formules créées peuvent être insérées et calculées même si elles appellent des méthodes non "autorisées". Les fonctionnalités de filtrage 4D suivantes sont désormais ignorées dans l'évaluation des formules 4D Write Pro :
L'option Filtrage des commandes et méthodes projet ... de la page "Securité" de la boîte de dialogue des Propriétés de la base
Dans les versions précédentes, la commande ST FIGER EXPRESSIONS calculait toujours les expressions avant de s'exécuter dans les documents 4D Write Pro. A partir de 4D v18 R2, les expressions sont calculées uniquement si cela n'a pas déjà été fait (excepté lorsque le paramètre * a été utilisé).
A partir de 4D v18 R2, les fichiers de la librairie Oracle doivent être installés dans /usr/local/lib (aucun autre emplacement n'est pris en charge). Voir également la page 4D for OCI Installation (Windows).
macOS Mojave (macOS 10.14) est la version macOS minimale requise pour 4D v18 R4 et les versions plus récentes. Les versions macOS antérieures ne sont plus prises en charge.