Nouveautés de 4D v18 R5

Classes du modèle de données ORDA

Portée et contexte d’exécution des fonctions

Par défaut en mode client/serveur, les fonctions sont exécutées sur le serveur. Vous pouvez désormais choisir d’exécuter certaines fonctions sur le client grâce à un nouveau mot-clé : local. De plus, vous avez le pouvoir de choisir quelles fonctions publier (ou non) en tant qu’API pour les clients REST avec le nouveau mot-clé : exposed.

Sélections d’entités partageables

Il peut arriver que vous souhaitiez partager une sélection d’entités avec un autre processus ou la rendre accessible à tous les processus. Par exemple, imaginez que vous effectuez une requête complexe pour trouver toutes les factures en retard, permettre aux utilisateurs finaux d’en sélectionner certaines (ou toutes) et envoyer un rappel de paiement par e-mail. Il est préférable d’envoyer des e-mails dans un autre processus pour éviter de bloquer l’utilisateur. Au lieu de construire une liste de clés primaires à transmettre à l’autre processus, une sélection d’entités partagées peut être directement transmise à un autre processus. Les sélections d’entités partagées peuvent même être attachées à l’objet Storage pour être partagées avec tous les processus.

En bref, une sélection d’entités peut être partageable ou non partageable :

  • Une sélection d’entités partageable peut être stockée dans un objet partagé ou une collection partagée et peut être partagée entre plusieurs processus ou travailleurs. Elle ne permet pas l’ajout de nouvelles entités. Essayer d’ajouter une entité à une sélection d’entités partageables déclenchera une erreur.
  • Une sélection d’entités non partageables ne peut pas être partagée entre des processus, ni être stockée dans un objet ou une collection partagée. Si vous essayez de stocker une sélection d’entités non partageables dans un objet ou une collection partagé(e), une erreur se produira. Toutefois, une sélection d’entités non partageables accepte l’ajout de nouvelles entités.

Éditeur de formulaires

Aperçu du CSS dans l’éditeur de formulaire

Vous pouvez désormais prévisualiser le rendu CSS final dans l’éditeur de formulaire. Une nouvelle icône est disponible dans la barre d’outils et vous permet de visualiser votre formulaire avec ou sans le rendu CSS, et même de montrer à quoi il ressemblerait avec un rendu CSS spécifique sur Mac ou Windows. En ce qui concerne le remplacement des propriétés en mode CSS, un nouveau type de bouclier (similaire aux boucliers pour la méthode d’objet ou l’ordre d’entrée) est affiché dans l’éditeur de formulaire. Il est désormais facile de voir quels objets sont affectés par un CSS.

Macros

Les macros sont désormais disponibles dans l’éditeur de formulaire. Avec une macro de formulaire, vous pouvez :

  • Modifier, supprimer ou ajouter une propriété à un ou plusieurs objets.
  • ajouter ou supprimer un ou plusieurs objets de formulaire avec sa méthode associée
  • sélectionner ou désélectionner des objets de formulaire dans l’éditeur
  • afficher une boîte de dialogue modale pour saisir un paramètre à la volée
  • Calculer la position idéale des objets du formulaire et les déplacer
  • Créer une classe CSS à partir d’un objet du formulaire pour l’utiliser comme modèle.
  • Vérifier que les chemins des images dans le formulaire sont valides
  • Ouvrir les fichiers CSS dans votre éditeur CSS au lieu de chercher les fichiers sur le disque
  • Vérifiez que les références XLIFF ont leur correspondance dans les fichiers XLIFF.
  • et bien d’autres choses encore !

Les macros de formulaire sont disponibles à partir du menu contextuel. Les macros de la base de données hôte sont affichées en premier, suivies des macros des composants. Pour exécuter une macro, il suffit de cliquer sur l’élément de menu. Pour créer des macros de formulaire, il suffit de les déclarer dans un fichier formMacros.json au premier niveau du dossier Sources de votre projet.

Nouvelle commande pour ouvrir l’éditeur de formulaire

Une nouvelle commande 4D pour ouvrir un formulaire dans l’éditeur de formulaire est disponible. Cela peut être particulièrement utile pour les outils d’analyse ou d’introspection. La nouvelle commande s’appelle : FORM EDIT.

4D pour iOS

Lien profond

Le lien profond vous permet de partager une URL. En cliquant sur l’URL, vous ouvrez directement un enregistrement spécifique dans une application 4D pour iOS. En combinaison avec les notifications push, vous pouvez informer les commerciaux d’un nouveau devis ou les agents d’assurance d’un nouveau cas. Un simple clic ouvre directement l’application et affiche l’enregistrement approprié.

Synchronisation des données optimisée

Le processus de synchronisation des données de 4D pour iOS a été optimisé, vous offrant une synchronisation des données jusqu’à 25 fois plus rapide.

Fonctions liées à la programmation

Nommer les paramètres des fonctions et des méthodes

Plus besoin de passer par une variable intermédiaire, vous pouvez désormais nommer vos paramètres et résultats lorsque vous déclarez une méthode :

  • méthode de projet,
  • un déclencheur,
  • méthode de base de données,
  • méthode de formulaire,
  • un constructeur de classe,
  • fonction de classe.

Débogueur à distance

Cette fonctionnalité vous permet de décider où vous voulez déboguer votre code serveur (côté client ou côté serveur).

Deux nouveaux éléments de menu ont été ajoutés (des deux côtés) pour gérer l’attachement du débogueur :

  • Attacher / Détacher le débogueur : Attachez ou détachez instantanément le débogueur à votre client ou serveur.
  • Attacher le débogueur au démarrage : Attachez le débogueur lorsque vous démarrez votre client ou votre serveur.

N’oubliez pas que le débogueur ne peut être attaché qu’à une seule instance de 4D à la fois. Par exemple, si vous essayez d’attacher le débogueur à votre serveur sans le détacher du client, un message d’erreur apparaît avec des informations sur le propriétaire du débogueur.

Et pour vous aider à différencier si le débogueur ou les fenêtres d’erreur proviennent du serveur ou du client, nous avons modifié l’apparence de ces fenêtres.

Fonctionnalités liées au déploiement

Personnalisation du dossier de cache 4D pour un serveur 4D fusionné

Si votre machine héberge une application serveur fusionnée construite avec différentes versions de 4D, vous pouvez rencontrer des problèmes dus au dossier de structure 4D partagé. Afin d’éviter le partage de ce dossier système entre les applications de serveur fusionné construites avec différentes versions de 4D, vous pouvez maintenant définir le nom du dossier pendant le processus de l’application de construction avec la nouvelle clé buildApp pour définir votre propre dossier de structure.

Personnalisation du dossier de cache 4D pour les clients 4D fusionnés

La connexion de votre application distante à plusieurs serveurs peut parfois entraîner l’obtention d’un grand dossier de ressources locales dans le système, ce qui peut être consommateur de temps, de volume et de réseau. Vous avez désormais la possibilité de partager le même dossier de ressources locales entre tous les serveurs identiques grâce à la nouvelle clé buildApp de partage du dossier de ressources locales.

Intégration du journal sans abandon à la première erreur

Lorsque vous exécutez 4D Server en production, tout doit être entièrement automatique sans nécessiter d’administrateur. Ceci est particulièrement important avec la mise à jour automatique et le fonctionnement en mode Headless. Après une coupure de courant ou un crash, des erreurs mineures dans le journal peuvent arrêter un serveur 4D redémarré automatiquement. Une nouvelle option permet désormais de supprimer les messages d’erreur non critiques (tout en les signalant dans un journal), ce qui réduit les temps d’arrêt du système.

Courriers électroniques (IMAP)

Recherche et téléchargement de messages électroniques

La recherche permet de récupérer une liste de messages basée sur des critères tels que tous les e-mails non lus ou tous les e-mails d’une personne spécifique au cours des 4 dernières semaines. La commande renvoie une collection d’identifiants de messages, qui peuvent être utilisés directement par la nouvelle méthode getMails pour les télécharger.

Copier, déplacer et supprimer des e-mails

Trois nouvelles fonctions ont été ajoutées au transporteur IMAP : copy(), move(), et delete().

Boîte de liste

Amélioration de la détection des types

Normalement, une boîte de liste ne reçoit les événements de frappe qu’en mode édition. Cependant, cela l’empêche d’être utilisée pour filtrer automatiquement la liste ou sélectionner une entrée lorsqu’un utilisateur utilise le clavier et une zone de liste non saisissable.

Désormais, l’événement On before Keystroke est généré dès que la zone de liste a le focus et qu’une touche est tapée, même si aucune donnée n’est saisie dans une cellule. Cela permet à 4D de savoir quelles touches ont été pressées et rend possible (par programmation) la prise de décisions telles que le lancement d’une nouvelle recherche ou la modification de la sélection en cours.

La nouvelle commande Is editing text a été ajoutée pour aider à déterminer si une entrée est en cours lorsque l’événement On before keystroke est généré. Par exemple, elle permet à une zone de liste d’être éditable – tout en prenant en charge les fonctions de saisie anticipée. Les événements « On before keystroke » et « On after keystroke  » prennent désormais en charge les boîtes de dialogue d’aide système permettant de sélectionner des signes diacritiques tels que é, ä ou des caractères asiatiques. L’événement est retardé jusqu’à ce que l’utilisateur final sélectionne les derniers caractères. Il n’est pas nécessaire de gérer cela vous-même.

4D Write Pro

Sélection du caractère pour les tabulations décimales

Si vous avez des documents provenant de différentes sources, il se peut que les chiffres ne soient pas correctement formatés pour vos besoins. Désormais, 4D Write Pro vous permet de spécifier ce paramètre pour chaque document. Vous pouvez choisir d’aligner les chiffres soit sur :

  • le point,
  • la virgule,
  • le premier séparateur trouvé (point ou virgule),
  • ou le séparateur défini dans le système d’exploitation.

Afin de maximiser la compatibilité (avec MS Word en particulier) l’option #3 est utilisée par défaut lors de la création de nouveaux documents. Lors de la migration de documents 4D Write vers 4D Write Pro, le séparateur défini par le système est utilisé par défaut.

Gestion des traits d’union souples

L’insertion de traits d’union souples a été simplifiée en fournissant de nouvelles actions standard, ainsi que de nouveaux boutons dans les widgets de l’interface 4D Write Pro.

Deux nouvelles actions standard sont à votre disposition :

  • insertSoftHyphen
  • removeSoftHyphens

Cette fonctionnalité a également été ajoutée aux widgets de l’interface 4D Write Pro, à la fois dans le widget de la barre d’outils et dans celui de la barre latérale.

Sélectionner les pages à afficher

4D affiche uniquement les pages mentionnées dans la collection, dans l’ordre de la collection. Cela permet de réduire le jeu de fonctionnalités pour le rendre plus simple pour l’utilisateur final. Si seules les options de style sont nécessaires, il est préférable de ne pas afficher toutes les autres fonctionnalités. Désormais, le widget 4D Write Pro offre la possibilité de sélectionner les pages à afficher grâce à la nouvelle méthode du composant WP ShowTabPages. Il suffit de passer le nom du widget et une collection de pages à afficher lorsque vous appelez la méthode.

4D View Pro

Formules 4D dans les feuilles de calcul

La commande VP SET CUSTOM FUNCTIONS vous permet de créer des fonctions personnalisées dans 4D View Pro pour exécuter une formule 4D. Il n’est pas nécessaire de créer une méthode pour utiliser une simple variable dans 4D View Pro, il suffit de la passer comme paramètre à votre formule. De plus, cette commande simplifie la saisie pour l’utilisateur final en fournissant un texte d’aide et les noms des paramètres. Dans les grandes structures, cette commande est beaucoup plus rapide que l’utilisation de la commande générique SET FIELD TITLES.

Vous voulez en savoir plus ? Lire tous les articles de blog sur 4D v18 R5