Coordonner les mises à jour de données coordinating-data-updates
Ce cas pratique présente la création d’un workflow permettant de gérer des mises à jour concomitantes lors de l’utilisation de plusieurs exécutions d’un workflow.
Le but est de vérifier que la procédure de mise à jour est terminée avant d'exécuter une autre opération de mise à jour. Pour cela, nous allons configurer une variable d'instance et laisser le workflow tester si l'instance est en cours d'exécution afin de décider de poursuivre ou non l'exécution du workflow et d'effectuer la mise à jour.
Ce workflow se compose de :
- une activité Planificateur exécutant le workflow à une fréquence spécifique,
- une activité Test vérifiant si le workflow est déjà en cours d'exécution,
- des activités Requête et Mise à jour de données si le workflow n'est pas déjà en cours d'exécution, suivies d'une activité Fin réinitialisant la variable d'instance du workflow à la valeur false.
- une activité Fin si le workflow est déjà en cours d'exécution.
Pour créer le workflow, procédez comme suit :
-
Ajoutez une activité Planificateur, puis configurez sa fréquence selon vos besoins.
-
Ajoutez une activité Test pour vérifier si le workflow est déjà en cours d'exécution, puis configurez-la comme indiqué ci-dessous.
note note NOTE "isRunning" est le nom de la variable d'instance choisi pour cet exemple. Il ne s'agit pas d'une variable intégrée. -
Ajoutez une activité Fin au branchement Non. Ainsi, rien ne sera exécuté si le workflow est déjà en cours d'exécution.
-
Ajoutez les activités souhaitées au branchement Oui. Dans le cas présent, il s'agit des activités Requête et Mise à jour des données.
-
Ouvrez la première activité, puis ajoutez la commande instance.vars.isRunning = true dans l'onglet Avancé. Ainsi, la variable d'instance est définie comme étant en cours d'exécution.
-
Ajoutez une activité Fin à l'extrémité du branchement Oui, puis la commande instance.vars.isRunning = false dans l'onglet Avancé.
De cette manière, aucune action ne sera exécutée tant que le workflow sera en cours d'exécution.
Rubriques connexes :