Dans les applications 4D, il existe quatre types de sessions : la session à distance 4D, la session de procédure stockée, la session mobile et la session Web.
La commande Session renvoie déjà des sessions Web ou mobiles. Elle vous permet d’accéder à une multitude d’informations sur la session et à un objet partagé par tous les processus de la session.
Dans 4D 20 R5, la commande Session a été étendue à la connexion Client/Serveur et à la procédure stockée.
Session 4D
Type différent
Les définitions d’une session de procédure stockée ou d’une session à distance sont les suivantes :
Session de procédure stockée
Lorsque vous appelez une méthode avec la commande Execute on server 4D crée un processus « Procédure stockée ». Tous les processus « procédures stockées » appartiennent à la même session, qui est dédiée aux procédures stockées.
Session à distance
Les méthodes ayant la propriété « Exécuter sur le serveur » sont exécutées dans le processus client jumeau sur le serveur. Tous les processus clients jumeaux sont exécutés dans la même session.
Classe de session
Pour une session à distance ou une session de procédure stockée, la commande Session renvoie un objet 4D.Session contenant les propriétés suivantes :
- id – Identifiant unique de la session
- info – Toutes les informations relatives à la session
- storage – Objet partagé qui peut être utilisé pour stocker des informations accessibles à tous les processus de la session distante.
- userName – Nom de l’utilisateur associé à la session
Les mêmes fonctions de la session Web sont disponibles pour écrire du code générique. Mais ne font rien et renvoient toujours la même valeur. Nous vous invitons à consulter la documentation de la classe Session.
Exemple :
{ "id" : "B022A91187EF46C6B4D58C2A9BDE3C91", "info":{ "type" : "remote", "userName" : "Designer", "machineName" : "John Computer", "systemUserName" : "John Doe", "IPAddress" : "localhost", "hostType" : "mac", "creationDateTime" : "2024-03-27T10:11:31Z", "state" : "active", "ID" : "B022A91187EF46C6B4D58C2A9BDE3C91", "persistentID" : "24336199BADF4BFE945B109E565D1189" }, "storage" : { "settings" : { "text" : "test" } }, "userName" : "Designer" }
Partager des données entre processus
Lorsqu’une nouvelle session est créée, la propriété « Session.storage » doit être instanciée avec un objet partagé vide. Vous pouvez ensuite stocker toutes les données que vous souhaitez partager entre les processus d’une même session.
Use (Session.storage)
Session.storage.settings:=New shared object("property" ; $value; "property2" ; $value2)
End use
Cas d’utilisation
Processus d’authentification et de vérification de l’utilisateur
Vous lancez une procédure d’authentification et de vérification de l’utilisateur lorsqu’un client se connecte au serveur. Il peut s’agir, par exemple, d’introduire dans l’application un code envoyé par e-mail ou par SMS. Vous ajoutez ensuite les informations relatives à l’utilisateur au stockage de la session, ce qui permet au serveur d’identifier l’utilisateur. De cette manière, le serveur 4D peut accéder aux informations de l’utilisateur pour tous les processus du client, ce qui permet d’écrire un code personnalisé en fonction du rôle de l’utilisateur (par exemple, gestionnaire, RH, etc.).
Restreindre les données
Ce nouveau type de session permet de restreindre les données affichées à l’utilisateur connecté. Par exemple, dans une application de gestion des clients, le représentant des ventes n’a accès qu’aux données de ses clients. Toutes les informations sur cette nouvelle fonctionnalité sont expliquées dans ce blog.
Suivant
N’hésitez pas à nous rejoindre sur le Forum 4D si vous avez des questions ou si vous souhaitez partager votre expérience ou vos cas d’utilisation.