Verrouiller l’activité workflow

  • Rversion finale: Australia
  • Mis à jour 12 mars 2026
  • 3 minutes de lecture
  • L’activité Verrouillage empêche d’autres instances de ce workflow de poursuivre au-delà de cette activité jusqu’à ce que le verrou soit libéré.

    Plusieurs instances du même workflow peuvent s’exécuter simultanément. Par exemple, si un workflow se déclenche lorsqu’un enregistrement est ajouté à une table particulière. Ce workflow se déclenche plusieurs fois si plusieurs enregistrements sont ajoutés l’un après l’autre, une fois pour chaque insertion d’enregistrement. Vous pouvez utiliser l’activité de verrouillage pour vous assurer que cette instance du workflow a terminé une ou plusieurs activités avant que toute autre instance du workflow puisse continuer.

    Un workflow peut explicitement libérer un verrou avec l’activité Déverrouiller . Le verrou peut également être libéré lorsque la durée maximale est atteinte.

    Lorsqu’une instance du workflow atteint l’activité Verrouiller , elle tente d’obtenir une serrure à l’aide de la clé spécifiée dans l’activité de verrouillage. Si une autre instance a déjà obtenu le verrou et ne l’a pas encore libéré, cette tentative de verrouillage échoue. L’instance continue d’essayer d’obtenir le verrou jusqu’à ce que le nombre maximal de tentatives ait été atteint.

    Remarque :

    Nous vous recommandons de placer une activité de minuterie d’une seconde avant l’activité de verrouillage. Cela permet d’éviter une condition rare dans laquelle l’activité de verrouillage peut ne pas être en mesure de distinguer une instance de workflow d’une autre. Cette condition peut se produire car l’entité propriétaire du verrou n’est pas l’instance de workflow spécifique, mais plutôt le thread d’exécution de code dans lequel cette instance est en cours d’exécution. Dans la plupart des cas, chaque instance de workflow s’exécute sur un thread différent. L’ajout d’une activité de minuteur garantit que c’est le cas.

    Figure 1. Exemple d’activité de verrouillage précédée d’une activité de minuteur
    Workflow avec activité du minuteur avant l’activité de verrouillage
    Étant donné qu’une activité de verrouillage ne peut empêcher que temporairement le traitement d’autres instances de workflow, n’ajoutez pas d’activités qui provoquent l’attente du workflow entre un bloc d’activité Verrouiller et Déverrouiller . Il se peut donc que l’activité de déverrouillage ne puisse pas acquérir le verrou pour le libérer et qu’elle prenne 60 secondes. Les activités d’attente restreintes comprennent :
    • Activités d’approbation
    • Activités de tâche
    • Activités du minuteur
    • Attendre l’activité de condition
    • Attendre l’activité de l’événement WF
    • Activités du serveur MID telles qu’un script PowerShell

    Résultats

    Tableau 1. Verrouiller les résultats d’activité
    Résultat Description
    Succès L’activité a obtenu un verrou. Cette instance du workflow peut poursuivre au-delà de ce point, mais les autres instances ne peuvent pas se poursuivre tant que le verrou n’est pas libéré.
    Échec Après avoir tenté d’obtenir le verrou Nombre maximal de tentatives , l’activité n’a pas pu obtenir le verrou.

    Variables d'entrée

    Les variables d'entrée déterminent le comportement initial de l'activité.

    Tableau 2. Verrouiller les variables d’entrée d’activité
    Champ Description
    Clé Une clé mutex unique. L’activité de déverrouillage utilise cette clé pour libérer le verrou.
    Durée
    Durée max. Durée maximale de persistance du verrou. Le verrou est libéré une fois cette durée atteinte. Libérer un verrou de cette façon équivaut à exécuter l’activité Déverrouiller .
    Verrouiller les tentatives

    Spécifiez le comportement de l’activité si la tentative de verrouillage est refusée. Si la dernière tentative de verrouillage échoue, l’état de l’activité est défini sur « délai d’expiration » et le résultat de l’activité est défini sur « échec ».

    Nbre max. de tentatives Spécifiez le nombre maximal de tentatives d’obtention du verrou par l’activité.
    Délai entre tentatives Durée requise après l’échec d’une tentative de verrouillage avant qu’une autre tentative de verrouillage ne soit autorisée.

    États

    L’état de l’activité indique au moteur de workflow ce qu’il doit faire de l’activité.

    Tableau 3. Verrouiller les états d’activité
    État Description
    En attente Le moteur de workflow attend d’obtenir un verrou.
    Fermer L’activité a obtenu le verrou.
    Délai L’activité n’a pas pu obtenir de verrou dans le nombre de tentatives spécifié par la variable d’entrée Nombre maximal de tentatives .