Skip to main content

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 :

 

Form.png

 

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.

 

Assistant_formulaire_31.png

 

Les étapes à réaliser sont les suivantes :

  • Créer le verrou : dans l’onglet fa-solid-toolbox.png Projets, sélectionner l’application, puis cliquer sur fa-solid-pencil-ruler.png Conception. Cliquer ensuite sur l’icône fa-solid-unlock.png (Gérer les verrous). Cliquer ensuite sur le bouton fa-solid-plus.png pour créer un verrou.

 

Nouveau_verrou.png

 

  • 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.

 

Comportement_rattache.png

 

Utiliser dans le comportement la condition Si prendre le verrou :

 

Regle.png

 

  • 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 :

 

Operande.png

 

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 :

 

Form.png

 

  • À l’aide du deuxième, l’accès à la fiche est impossible car le premier navigateur l’a verrouillée :

 

Lock.png

 

  • 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 :

 

Unlock.png

 

Pour déverrouiller, utiliser l’action Libérer le verrou et lui passer la valeur du verrou à libérer.

 

Unlock_regle.png