La répétition des actions d'un statut de workflow
⚙️ Accès dans le BO :
Studio > Workflows > 👉 un workflow > 👉 un statut > Options > Répétion
L'option Répétition permet d'exécuter les actions d'un statut en boucle, fonction d'un ensemble de valeurs issues d’une liste multiple, d’une requête ou des occurrences d’un bloc de champs.
Paramétrer la répétition des actions
Dans les options du statut, onglet Répétition :
- Indiquez le Gabarit produisant les éléments sur lesquels répéter les actions.
Pour répéter les actions autant de fois qu'il y a d'éléments dans une liste à choix multiples ou d'occurrences dans un bloc de champs, indiquez simplement la variable du champ concerné, par exemple :{{ form_var_IDENTIFIANT }}
.
Il est également possible d'utiliser les filtres de requêtes, par exemple{{ cards|objects:"slug-modele-fiche"|filter_by:"nom"|filter_value:"entrouvert" }}
. - Sélectionnez le Statut cible en fin de répétition.
Récupérer les valeurs d'un champ
Depuis un bloc de champ
Lorsque le gabarit produisant les éléments sur lesquels répéter les actions est un bloc de champ contenant un champ ayant pour identifiant « nom » , la syntaxe {{ status_loop.current_item.nom }}
permettra de récupérer la valeur du champ « nom » de l'occurrence en cours d'itération.
Avec un filtre de requête
Lorsque le gabarit produisant les éléments sur lesquels répéter les actions est un filtre de requête permettant par exemple de filtrer des fiches d'un modèle de fiche contenant un champ ayant pour identifiant « courriel », la syntaxe {{ status_loop.current_item|get:"form_var_courriel" }}
permettra de récupérer la valeur du champ « courriel » de la fiche en cours d'itération.
Comprendre la variable status_loop
Lors de l’exécution des actions, il peut être utile d'accéder à l’élément en cours de traitement. Cet élément est disponible via la variable status_loop.current_item
. Par exemple, pour une liste à choix multiples contenant les valeurs A et B, {{ status_loop.current_item }}
renverra A lors de la première itération et B lors de la seconde.
La variable status_loop
offre également des informations utiles sur l'itération en cours :
{{ status_loop.index }}
: renvoie le numéro de l’itération, en commençant à compter à 1.{{ status_loop.index0 }}
: renvoie le numéro de l’itération, en commençant à compter à 0.{{ status_loop.first }}
: retourneTrue
si l’itération est la première.{{ status_loop.last }}
: retourneTrue
si l’itération est la dernière.
Outils de test
Dans l'inspection des données d'une demande, vous avez accès à l'outils de test qui permet de tester les valeurs retournées.
Et aussi...
Sur la page principale du workflow, dans la liste des statuts, une icône permet de distinguer les statuts sur lesquels une répétition est configurée.
Dans le schéma du workflow il sera indiqué lorsqu'une une répétition est configurée et que le saut correspond à une fin de répétition.