Nouveautés de 4D 21 R4

RÉSEAU

Vous en avez assez des erreurs réseau qui perturbent vos utilisateurs ?

Les perturbations réseau font partie intégrante des déploiements en environnement réel. Entre un poste de travail 4D Client et 4D Server, il peut y avoir des commutateurs, des routeurs, des pare-feu, des passerelles VPN et d’autres périphériques réseau. Le redémarrage d’un commutateur, la reconnexion d’un câble, un changement de réseau mobile ou un problème de routage passager peuvent rendre les deux nœuds temporairement inaccessibles, même si la perturbation ne dure que quelques minutes.

Cette fonctionnalité s’appuie sur la couche de transport QUIC qui assure la communication client/serveur 4D. Comme QUIC fonctionne sur le protocole UDP, il peut tolérer des périodes de silence entre les pairs. Lorsque 4D Server détecte qu’un 4D Client distant est devenu inaccessible, il maintient la session active pendant la durée configurée (QUIC session timeout) au lieu de la fermer immédiatement.

Pendant cette interruption, la fenêtre d’administration affiche le client comme Inaccessible, tandis que Session.info.unreachableSince indique depuis combien de temps le pair est inaccessible. Côté client, seules les fenêtres qui dépendent de la communication avec le serveur passent en mode inaccessible, tandis que les fenêtres locales restent utilisables.

Lorsque la communication reprend à temps, la session redevient active et les fenêtres concernées reviennent à leur état précédent. Si le délai d’expiration est dépassé, la session se ferme proprement, avec un avertissement dans le journal de diagnostic et une notification claire de redémarrage ou de fermeture pour l’utilisateur.

Les déploiements client/serveur gagnent en fluidité et en fiabilité dans des conditions réseau réelles, sans nécessiter de code d’application supplémentaire.

Intégration de l’IA

Intégration de l’IA locale dans 4D Forms

L’intégration d’Apple Writing Tools apporte une assistance IA locale directement dans les zones de texte des formulaires 4D, y compris les champs de saisie multilignes et les zones 4D Write Pro. Il n’y a aucun contrat IA ni paiement à gérer, aucune installation supplémentaire à fournir, et aucun service IA externe à configurer. Tant que l’environnement de l’utilisateur prend en charge les outils d’écriture Apple, l’application bénéficie de l’assistance à la rédaction gérée par le système d’exploitation sans configuration supplémentaire. Les utilisateurs finaux peuvent relire, réécrire, résumer, ajuster le ton ou extraire les points clés d’un texte sans quitter l’application 4D ni copier le contenu dans un autre outil.

La fonctionnalité est activée à l’aide de la propriété Writing Tools dans la liste des propriétés. Lorsqu’elle est disponible, les utilisateurs peuvent accéder aux outils depuis le menu contextuel via Afficher les outils d’écriture, ou les développeurs peuvent également les rendre disponibles via l’action standard WritingTools à partir d’un bouton ou d’un élément de menu. Le texte sélectionné est remplacé par le résultat renvoyé, tandis qu’en l’absence de sélection, l’action s’applique à l’intégralité du contenu de la zone.

Comme cette fonctionnalité repose sur Apple Intelligence, elle s’exécute localement dans les environnements macOS compatibles où Apple Intelligence est activé. Dans les environnements non pris en charge, notamment Windows, la propriété reste visible le cas échéant, mais la fonctionnalité est inactive lors de l’exécution.

La rédaction assistée par IA s’intègre à l’expérience utilisateur de l’application elle-même, aidant les utilisateurs à améliorer leurs textes professionnels, notes, rapports et documents directement dans leur environnement de travail habituel.

Langage 4D

Code de nettoyage fiable à la sortie des méthodes et des fonctions

La nouvelle commande defer offre un moyen plus élégant d’exécuter automatiquement du code de nettoyage à la sortie d’une méthode ou d’une fonction. Les développeurs peuvent désormais déclarer une expression n’importe où dans le code et compter sur 4D pour l’exécuter à la sortie, que l’exécution se termine normalement, atteigne un retour ou s’arrête suite à une erreur. La logique de nettoyage n’a plus besoin d’être répétée avant chaque retour ou à l’intérieur de chaque bloc catch.

Les expressions différées sont stockées dans une pile d’expressions différées et exécutées selon l’ordre LIFO (dernier entré, premier sorti) à la fin de la méthode ou de la fonction. Si une expression différée génère une erreur, 4D la gère automatiquement et poursuit l’exécution des expressions différées restantes, ce qui contribue à garantir la sécurité et la prévisibilité du flux de sortie.

defer Cette fonctionnalité est particulièrement utile pour la gestion des ressources, les diagnostics et la restauration d’état. Elle permet notamment de fermer les références XML, d’arrêter la surveillance des activités, de restaurer les paramètres de base de données, de réinitialiser la gestion des erreurs ou de se déconnecter des services externes. Le code devient ainsi plus lisible, plus sûr à maintenir et moins exposé aux étapes de nettoyage oubliées.

SERVEUR HTTP

Protection des ressources du serveur REST

La gestion des quotas du serveur REST ajoute un contrôle au niveau de la session sur les ensembles d’entités stockés en mémoire, contribuant ainsi à protéger les applications contre une consommation excessive de ressources due à une utilisation intensive, à des requêtes REST mal optimisées ou à des clients qui ne libèrent pas correctement les ressources. Cette fonctionnalité est particulièrement utile lorsque les API REST sont exposées à des applications web, des systèmes externes, 4D Qodly Pro, des clients mobiles ou des outils d’IA basés sur MCP.

Un nouvel objet 4D.QuotaManager est disponible via Session.quotas. Il permet aux développeurs de définir des limites pour la session REST en cours, notamment le nombre maximal d’ensembles d’entités autorisés en mémoire, le délai d’inactivité par défaut pour les ensembles d’entités et le délai maximal qu’un client peut demander. L’utilisation actuelle des quotas peut également être surveillée via currentValues.

Le contrôle des ressources serveur est simplifié, car les ensembles d’entités sont liés à la session REST et peuvent être libérés automatiquement à leur expiration ou à la fin de la session. Lorsqu’une limite définie est atteinte, les nouvelles requêtes REST nécessitant la création d’ensembles d’entités supplémentaires sont rejetées jusqu’à ce que des ressources soient libérées. Les applications REST bénéficient ainsi d’une protection renforcée contre les surcharges accidentelles, tandis que les administrateurs conservent un meilleur contrôle sur les performances et la disponibilité.

Gestion de 4D Server

Une visibilité accrue sur les sessions dans la fenêtre d’administration de 4D Server

La surveillance des sessions dans la fenêtre d’administration de 4D Server est désormais plus claire grâce à un onglet Sessions unifié qui regroupe les clients de bureau, les sessions Web, l’accès REST et les appels SOAP dans une seule vue. Au lieu de consulter des informations dispersées, les administrateurs peuvent comparer les connexions actives depuis un seul et même endroit et comprendre plus rapidement l’activité du serveur.

La liste des sessions met en avant les informations communes à tous les types de connexion, telles que le type de session, le nom d’utilisateur, la date de connexion, le temps CPU, l’activité et l’état. Des icônes visuelles facilitent l’identification de chaque type de session, tandis que le panneau de détails s’adapte à la session sélectionnée. Pour les sessions client, il peut afficher des informations contextuelles telles que le nom de session du système d’exploitation, l’adresse IP, le nom de la machine et les droits d’utilisation. Pour les sessions REST, Web ou SOAP, il peut afficher des détails tels que le statut Invité, les privilèges, l’adresse IP et l’agent utilisateur.

Une meilleure visibilité sur les sessions facilite le dépannage, en particulier lors de l’analyse d’activités inhabituelles, de l’utilisation de REST ou de la consommation de licences. Les administrateurs peuvent identifier qui est connecté, d’où provient une session, dans quel contexte elle s’exécute et si un modèle de connexion nécessite une attention particulière, sans quitter la fenêtre d’administration.

4D Write Pro

Feuilles de style hiérarchiques dans l’interface de 4D Write Pro

Des feuilles de style pour listes à plusieurs niveaux sont désormais disponibles directement dans l’interface 4D Write Pro, offrant aux utilisateurs un moyen visuel de créer, d’appliquer et de gérer des listes structurées à partir de la barre d’outils et de la barre latérale. Les documents tels que les manuels techniques, les contrats, les rapports, les supports de formation et les comptes-rendus de réunion peuvent ainsi conserver une numérotation et une hiérarchie cohérentes sans mise en forme manuelle.

Le panneau Feuilles de style affiche désormais à la fois les feuilles de style du document et les modèles de listes à plusieurs niveaux prédéfinis. Les utilisateurs peuvent appliquer des modèles prêts à l’emploi, modifier les niveaux de liste, ajouter des sous-niveaux, modifier les formats de numérotation et concaténer les marqueurs de numérotation entre les niveaux. La numérotation reste cohérente même lorsque du contenu est ajouté, supprimé ou réorganisé.

Les développeurs peuvent également personnaliser les modèles disponibles via le fichier multiLevelStyles.json, afin que les applications puissent proposer des structures de listes prédéfinies adaptées à leurs documents métier. Les documents 4D Write Pro deviennent plus faciles à structurer, plus simples à maintenir et plus fiables lorsqu’ils sont exportés ou échangés via des formats tels que PDF, HTML, SVG et DOCX.

4D NetKit & Mailing

NOTIFICATIONS DE MODIFICATION DES E-MAILS ET DU CALENDRIER

4D NetKit propose désormais un modèle de notification unifié pour Microsoft 365 et Google Workspace, permettant aux applications de réagir lorsque des e-mails ou des événements d’agenda sont créés, modifiés ou supprimés. Au lieu de recourir à des actualisations manuelles, les applications 4D peuvent synchroniser leurs interfaces avec les données des fournisseurs et déclencher la logique métier appropriée dès qu’un changement est détecté.

Le même modèle de programmation est disponible pour les deux fournisseurs via Office365.mail.notifier, Office365.calendar.notifier, Google.mail.notifier et Google.calendar.notifier. Chaque notificateur prend en charge les callbacks onCreate, onModify et onDelete, ce qui permet aux développeurs de mettre à jour l’interface utilisateur, d’afficher des alertes, d’actualiser les données locales ou d’exécuter des workflows personnalisés lorsque l’activité de messagerie ou de calendrier change.

Les notifications peuvent s’exécuter via des webhooks en temps réel lorsqu’un point de terminaison HTTPS public est disponible, ou via une surveillance basée sur une minuterie lorsqu’un modèle de déploiement plus simple est privilégié. Pour les notifications de messagerie Google, topicName peut être utilisé avec Google Cloud Pub/Sub lorsque le mode webhook est configuré.

Les applications connectées gagnent en réactivité et sont plus faciles à maintenir, grâce à une approche cohérente pour la création de workflows de messagerie et d’agenda dans les environnements Google et Microsoft.

4D Qodly Pro

Améliorations de l’éditeur de formulaires Web

Dans 4D Qodly Pro, les workflows de l’éditeur sont plus fluides grâce à des améliorations axées sur la navigation, les rapports d’événements, les boîtes de dialogue et l’interaction entre les composants. Les développeurs peuvent passer plus facilement du rapport d’événements à l’éditeur de page, sélectionner plus rapidement le bon composant et conserver les filtres lors du changement de vue, ce qui réduit les petites interruptions qui ralentissent l’édition des formulaires.

Le rapport d’événements est également plus exploitable. Les liens issus des contrôles de validité permettent désormais de sélectionner directement les composants dans les boîtes de dialogue, les fonctions supprimées sont mises en évidence par une info-bulle, et un clic sur Modifier permet de sélectionner le composant concerné dans le formulaire Web et d’y accéder automatiquement par défilement. Les boîtes de dialogue de renommage disposent également d’actions Confirmer et Annuler plus claires, pour une expérience d’édition plus prévisible.

La couverture des événements de composants est améliorée pour les boutons radio et les listes de sélection. Des événements tels que On Click, On Blur, On Focus, On MouseEnter, On MouseLeave, On KeyDown et On KeyUp sont désormais disponibles lorsque cela est pertinent, offrant ainsi aux développeurs un meilleur contrôle sur la validation, la gestion du focus, le comportement du clavier, les workflows d’accessibilité et les interactions avancées avec l’interface utilisateur.

Un paramètre configurable de rebond et de limitation pour les événements OnChange aide également les développeurs à contrôler la fréquence à laquelle les modifications sont traitées. Le développement de formulaires Web devient plus cohérent, plus précis et plus facile à gérer dans les interfaces complexes.

Mises à jour de la plateforme

Les bases de la plateforme sont renforcés grâce à des mises à jour qui améliorent la cohérence, la sécurité et la fiabilité à long terme de 4D Qodly Pro, des fonctionnalités réseau, du chiffrement et des fondements de l’interface Windows. 4D Qodly Pro bénéficie désormais d’une base de composants d’un système de conception plus standardisée , aidant les équipes à éviter la duplication des logiques de style et à créer des interfaces plus cohérentes à l’aide de modèles d’interface utilisateur réutilisables.

Les composants techniques de base ont également été mis à jour, notamment OpenSSL 4.0, BoringSSL, Ngtcp2 1.22.1 et Libuv 1.52.1. Ces mises à jour renforcent la fiabilité et la sécurité de domaines clés tels que QUIC, WebSocket, la diffusion, les connexions sécurisées, HTTPS et la communication client/serveur. La mise à jour vers OpenSSL 4.0 renforce également le comportement TLS moderne, les serveurs utilisant TLSv1_3 par défaut et les paramètres TLS minimaux étant axés sur TLSv1_2 et TLSv1_3.

Sous Windows, la mise à jour du Windows App SDK 2.0.1 prend en charge la base WinUI utilisée lors de la création d’applications avec ou sans WinUI intégré. Ensemble, ces mises à jour permettent à la plateforme de rester en phase avec les normes technologiques actuelles tout en réduisant les risques de maintenance cachés pour les applications d’entreprise déployées.