Avec 4D 21, une nouvelle opportunité s’offre à vous : intégrer de manière transparente une page Qodly à l’intérieur d’une zone web d’un formulaire 4D , sans qu’aucune licence 4D Client supplémentaire ne soit nécessaire. Grâce à 4D Qodly Pro, vous avez désormais accès à une nouvelle génération d’interfaces utilisateur modernes et dynamiques. Plus besoin de choisir entre les formulaires desktop et web : combinez les deux et évoluez à votre rythme.
4D Qodly Pro est disponible dans 4D et fournit tous les outils dont vous avez besoin pour concevoir, construire et exécuter des formulaires web pour votre application 4D.
Lacréation de pages Qodly repose sur des sessions web évolutives, qui sont nécessaires pour utiliser la commande Session et récupérer l’objet session. Cet objet de session est la pierre angulaire de 4D Qodly Pro: il fournit un stockage de session pour les données spécifiques à l’utilisateur et joue un rôle essentiel dans la gestion des autorisations de l’utilisateur.
Dans une application 4D client-serveur, 4D Server gère également une session utilisateur à distance pour chaque utilisateur. C’est très pratique, car cette session fournit également le stockage de la session !
À partir de 4D 21, ces sessions d’utilisateurs distants peuvent désormais servir les pages Qodly. Pour les développeurs, l’avantage immédiat est la possibilité d’intégrer une page Qodly dans une zone web d’un formulaire 4D sans avoir besoin d’une licence 4D Client supplémentaire. La licence déjà utilisée par l’utilisateur pour afficher le formulaire 4D est réutilisée pour rendre la page Qodly intégrée, grâce à la session utilisateur à distance.
un exemple concret
Sur les formulaires 4D, les zones web peuvent rendre des pages Qodly, ce qui permet d’introduire facilement et à votre rythme du contenu web dans votre application 4D Server. Cela vous permet de tirer pleinement parti de 4D Qodly Pro, en particulier de sa conception moderne et orientée vers le web.
Pour accéder à un formulaire 4D ou à une page Qodly, une licence 4D Client est nécessaire, les mêmes règles de licence s’appliquant dans les deux environnements.
Cependant, grâce au mécanisme OTP, une seule licence peut être utilisée pour un formulaire 4D et une page Qodly intégrée dans une zone web interne.
Le résultat ? Un formulaire 4D qui combine de manière transparente des composants d’interface utilisateur 4D traditionnels et des widgets 4D Qodly Pro modernes.

Vous pouvez voir que l’identifiant de session est le même à la fois dans le formulaire 4D (utilisant la session de l’utilisateur distant) et dans la zone web affichant une page Qodly.
Comment procéder
Le mécanisme otp
OTP est l’abréviation de One-Time-Passcode. Jusqu’à présent, dans une application 4D Qodly Pro, l’utilisation de l’OTP vous permet de récupérer une session existante lorsque vous passez d’un appareil ou d’un navigateur à un autre, ou lorsque vous mettez en œuvre des flux de travail en va-et-vient avec des systèmes externes (tels que la création de comptes par courrier électronique, des API tierces, etc.)
En bref :
- Obtenir un OTP pour une session donnée en appelant la fonction Session.createOTP()
- Utilisez-la dans n’importe quel navigateur avec une URL telle que https://my4Dapp/$lib/renderer/?w=myQodlyPage&$4DSID= »+OTP
La session originale est récupérée à l’aide de l’OTP fourni.
Avec 4D 21, Session.createOTP() n’est plus limité aux sessions web, il fonctionne maintenant aussi avec lessessions d’utilisateurs distants!
Pour récupérer et utiliser une session d’utilisateur à distance existante, le mécanisme est le même : il suffit de fournir la valeur OTP dans le paramètre $4DSID de la requête web, et la session d’utilisateur à distance correspondante sera utilisée.
Mise en œuvre
Créez une méthode de projet getOTP, ou une fonction singleton, ou une fonction ORDA. Assurez-vous simplement que ce code est exécuté sur le serveur. L’exécution de la commande Session sur un client renvoie un résultat nul.
// In Client Server:
// ----------------
// This method is executed on the server because the session object is on the server
// The Session object is Null on the client
//
#DECLARE() : Text
return Session.createOTP()
Charger une page Qodly (ici ci-dessous ‘Produits’) dans une zone web.
Form.otp:=getOTP
Form.url:="http://localhost/$lib/renderer/?w=Products&$4DSID="+Form.otp
WA OPEN URL(*; "QodlyPage"; Form.url)
gestion des privilèges
Tous les privilèges requis pour votre page Qodly peuvent être définis au préalable dans la session, avant d’ouvrir l’URL dans la zone Web à l’aide de la fonction setPrivileges() à l’aide de la fonction
Lorsqu’elle est appelée sur une session d’utilisateur à distance, elle ajoute des privilèges à la session pour les accès Web ultérieurs.
Développez et testez votre application client-serveur dans un environnement de développement 4D.
Le mécanisme OTP étant également pris en charge dans un environnement de développement 4D, votre application client-serveur peut être facilement développée et testée dans un environnement de développement 4D.
Dans cet environnement de développement, il existe désormais une véritable session autonome capable de générer un OTP pour gérer l’accès au web, tout comme une session d’utilisateur à distance.
Jouez l’IDH ci-joint à la fois dans un environnement client-serveur et dans un environnement de développement 4D.Il n’y a aucune différence et le comportement est le même.
Comme démontré ci-dessus, la formule gagnante est la suivante : 4D Qodly Pro = 4D, ce qui facilite l’introduction d’interfaces modernes et dynamiques dans vos applications 4D Server.
La voie est ouverte, rien d’autre n’est nécessaire, et démarrer avec 4D Qodly Pro est plus facile que jamais.
