ORM_UserIdentification
Initialise ou consulte l'identification de l'utilisateur courant dans la session ORM_CSHX2 — identifiant utilisateur, nom, identifiant du poste de travail. Procédure surchargée : variante écriture (3 paramètres, sans retour) et variante lecture (sans paramètre, retour triplet).
📋 Description
ORM_UserIdentification gère les trois informations d'identification de l'utilisateur courant pour la session ORM_CSHX2 : son identifiant numérique, son nom, et l'identifiant du poste de travail depuis lequel il opère. Ces informations sont stockées dans la session ORM et sont utilisées par le framework lors des opérations de persistance pour renseigner automatiquement les colonnes de traçabilité.
La procédure existe en deux variantes : une variante d'écriture (3 paramètres, sans retour) qui initialise les valeurs, et une variante de lecture (sans paramètre) qui retourne les valeurs courantes sous forme de triplet.
1. Au démarrage de l'application, juste après l'authentification de l'utilisateur. Appeler la variante d'écriture une seule fois pour positionner les 3 informations qui resteront valides toute la durée de la session ORM.
2. Lors d'un changement d'identité utilisateur en cours de session (cas rare mais possible : impersonation, déconnexion / reconnexion sans relancer l'application). Réinvoquer la variante d'écriture met à jour les valeurs.
3. Pour afficher l'utilisateur courant en IHM (libellé de barre de statut, en-tête de fenêtre, audit) — la variante de lecture restitue les 3 valeurs telles que positionnées par le dernier appel d'écriture.
Une fois positionnées, ces 3 valeurs sont utilisées automatiquement par les méthodes de persistance (mth_Enregistrer, mth_EnregistrerTableau) lors des INSERT pour alimenter les colonnes framework :
• SQL_ID_USER_INSERT ← nUserID
• SQL_IP_USER ← sComputerID
Le code applicatif n'a donc rien à faire au moment de l'enregistrement — la traçabilité est transparente.
🔑 Signatures
La procédure existe en deux variantes que le compilateur résout automatiquement selon les paramètres passés à l'appel.
Variante 1 — Écriture (initialisation / mise à jour)
LOCAL nUserID est un entier,
LOCAL sUserName est une chaîne,
LOCAL sComputerID est une chaîne
)
| Paramètre | Type | Rôle |
|---|---|---|
nUserID | entier | Identifiant unique de l'utilisateur dans le système. |
sUserName | chaîne | Nom de l'utilisateur connecté (libellé d'affichage). |
sComputerID | chaîne | Identifiant du poste de travail courant (typiquement nom machine, IP, ou identifiant métier du poste). |
Cette variante ne retourne rien (procédure void). Elle écrase systématiquement les valeurs précédentes dans la session.
Variante 2 — Lecture
Aucun paramètre. Retourne un triplet contenant les 3 informations courantes dans la session.
| Élément retourné | Type | Description |
|---|---|---|
nUserID | entier | Identifiant unique de l'utilisateur courant. 0 si jamais initialisé. |
sUserName | chaîne | Nom de l'utilisateur courant. "" si jamais initialisé. |
sComputerID | chaîne | Identifiant du poste de travail courant. "" si jamais initialisé. |
🧭 Rôle des trois informations
Les trois valeurs gérées par ORM_UserIdentification ne sont pas seulement informatives : elles alimentent automatiquement plusieurs mécanismes du framework. Connaître leur rôle exact permet de bien dimensionner ce qu'on y met au moment de l'authentification.
| Information | Rôle dans le framework |
|---|---|
nUserID | Écrit dans la colonne SQL_ID_USER_INSERT de chaque enregistrement créé via les méthodes de persistance (si la valeur de cette colonne n'est pas déjà renseignée par l'appelant). Permet de tracer l'auteur de chaque INSERT en base. Typiquement la clé primaire de l'utilisateur dans la table des utilisateurs métier. |
sUserName | Conservé dans la session ORM pour usage applicatif (affichage IHM, logs métier, audit). N'est pas écrit en base par le framework — la traçabilité en base passe par nUserID (relation à la table des utilisateurs). |
sComputerID | Écrit dans la colonne SQL_IP_USER de chaque enregistrement créé via les méthodes de persistance (si non déjà renseignée par l'appelant). Permet de tracer le poste depuis lequel un INSERT a été fait. Format libre : nom NetBIOS, IP, identifiant métier de poste, etc. |
Si l'application enregistre des données avant tout appel à la variante d'écriture, les colonnes SQL_ID_USER_INSERT et SQL_IP_USER seront alimentées avec les valeurs par défaut de la session (0 et "" respectivement). Ce n'est généralement pas le comportement souhaité — appeler ORM_UserIdentification en écriture au plus tôt dans l'initialisation de l'application est une bonne pratique systématique.
📤 Valeur de retour
| Variante | Retour |
|---|---|
| Écriture (3 paramètres) | Aucun (procédure void) |
| Lecture (sans paramètre) | Triplet (nUserID, sUserName, sComputerID) contenant les valeurs courantes de la session |
La variante de lecture retourne toujours un triplet valide — jamais d'erreur ou d'état d'absence. Si la variante d'écriture n'a jamais été appelée depuis le démarrage de l'application, le triplet retourné contient les valeurs par défaut (0, "", "").
💡 Exemples
Mode 1 — initialisation au démarrage après authentification
Cas d'usage typique : juste après l'écran de connexion, on positionne les 3 valeurs qui serviront toute la session.
Mode 2 — lecture pour affichage IHM
Cas d'usage : afficher l'utilisateur courant dans une barre de statut.
Mode 3 — vérification d'initialisation
Cas d'usage : avant d'enregistrer des données critiques, vérifier que la session est bien initialisée.
Mode 4 — changement d'utilisateur en cours de session
Cas d'usage : déconnexion / reconnexion sans relancer l'application.