5. Gestion des verrous
Le verrou permet de s’assurer qu’une seule personne accède à une ressource, un écran, une fiche à un instant donné.
5.1. Créer un verrou par l’exemple
Cette section sera décrite à travers un exemple : créer un verrou pour éviter que deux utilisateurs n’éditent en même temps la fiche d’une personne. C’est-à-dire qu’un seul utilisateur doit pouvoir accéder à la fiche suivante :
Création automatique du verrou
Le verrou à l’édition d’un formulaire peut être généré automatiquement par l’assistant de création de formulaire, si la case Verrouiller les entrées lors de la modification et la suppression est cochée dans l’assistant.
Les étapes à réaliser sont les suivantes :
-
Créer le verrou : dans l’onglet Projets, sélectionner l’application, puis cliquer sur Conception. Cliquer ensuite sur l’icône (Gérer les verrous). Cliquer ensuite sur le bouton pour créer un verrou.
-
Renseigner les champs demandés.
-
Créer un comportement Prendre le verrou rattaché à l’écran d’édition d’une personne. Ce comportement sera rattaché sur le déclencheur
À l'initialisation
.
Utiliser dans le comportement la condition Si prendre le verrou :
-
La condition prend en paramètre la valeur du verrou (ici l’Id de la personne). Si :
-
la valeur a déjà été affectée au verrou, alors le si renvoie Faux : le verrou a déjà été pris pour cette valeur.
-
la valeur n’a pas été affectée au verrou, alors le Si renvoie Vrai et la valeur est affectée au verrou : le verrou est pris pour cette valeur.
La plateforme garde ainsi en mémoire pour un verrou donné toutes les valeurs affectées sans tenir compte des différentes sessions.
-
-
Dans la partie Conditions non vérifiées, il faut paramétrer les actions à réaliser si le verrou est pris. En général, une boîte de message décrivant la prise du verrou est affichée, et une redirection vers l’écran précédent est effectuée.
Si le verrou a été pris, il est possible de fournir plus de renseignement à l’utilisateur, comme :
-
le nom de la personne qui a pris le verrou
-
la date et heure du verrouillage
-
l’identifiant de la personne qui a pris le verrou
-
l’adresse mail de la personne qui a pris le verrou
-
la valeur verrouillée (ici l’Id de la personne).
Ces informations sont disponibles grâce à l’opérande Paramètre utilisateur d’un verrou déjà pris :
-
Pour tester le verrou, il faut se rendre sur la même fiche d’un agent avec 2 navigateurs différents :
-
A l’aide du premier, l’accès à la fiche s’effectue correctement :
- À l’aide du deuxième, l’accès à la fiche est impossible car le premier navigateur l’a verrouillée :
-
Les informations sur le verrou sont affichées dans la boite de message. Il est cependant possible d’éditer la fiche d’une autre personne (Id différent).
-
Une fois le verrou établi, il faut déverrouiller la fiche. Pour cela, créer un comportement de déverrouillage à la fermeture de l’écran :
Pour déverrouiller, utiliser l’action Libérer le verrou et lui passer la valeur du verrou à libérer.
-
Ainsi, dès que l’utilisateur sort de l’écran d’édition, le verrou est libéré et la fiche peut à nouveau être éditée.
5.2 Gérer les verrous
La plateforme permet la gestion des verrous affectés par application. Dans l’onglet Projets, cliquer sur l’application souhaitée dans la liste des projets, puis cliquer sur l’onglet Gérer les verrous.
La liste des verrous actuellement pris est affichée, avec le nom des utilisateurs ayant pris le verrou, la date et heure de prise du verrou et la valeur verrouillée.
Il est possible de libérer les verrous « bloqués » en cliquant sur l’icône Déverrouiller. Une boîte de confirmation apparaît :
Le déverrouillage entraîne la déconnexion de l’utilisateur après l’affichage du message sur son écran.
Quelques rappels sur les verrous :
-
L’expiration de la session libère les verrous associés à cette session.
-
Libérer manuellement un verrou entraîne la déconnexion de l’utilisateur ayant posé le verrou
-
La fermeture du navigateur sans quitter l’application ne rend pas le verrou, il sera libéré à l’expiration de session ou manuellement
-
Il existe une action Prendre le verrou qui a pour effet d’essayer de prendre le verrou ; s’il est déjà pris, elle génère une exception.