Nouvel objet de session à distance 4D avec connexion Client/Serveur et procédure stockée

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.

HDI – Session à distance

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.

Vanessa Talbot
- Product Owner -Vanessa Talbot a rejoint l'équipe du programme 4D en juin 2014. En tant que Product Owner, elle est chargée de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation des fonctionnalités livrées répond aux besoins des clients.Depuis son arrivée, elle a travaillé à la définition des fonctionnalités clés de 4D. Elle a travaillé sur la plupart des nouvelles fonctionnalités de multithreading préemptif et aussi sur un sujet très complexe : la nouvelle architecture pour les applications enginées. Vanessa est diplômée de Telecom Saint-Etienne. Elle a commencé sa carrière à l'Institut de Recherche Criminelle en tant que développeur pour le département audiovisuel. Elle a également travaillé dans les domaines des médias et du médical en tant qu'experte en support technique, en production ainsi qu'en documentation de nouvelles fonctionnalités.