Modifiée par : Anaïs Ecuvillon

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

Répétition des actions d’un statut

Il est possible de faire boucler les actions d’un statut, pour qu’elles soient répétées sur un certain nombre de valeurs, qui peuvent être issues d’une liste multiple, d’une requête ou des occurrences d’un bloc de champs.

capture d’écran de la page de configuration

  1. Paramétrer la répétition des actions

    Dans les options du statut, onglet Répétition : 

    Indiquez le Gabarit produisant les La configuration passe par définir via un gabarit la liste des é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 Link: https://doc-publik.entrouvert.com/admin-fonctionnel/parametrage-avance/utiliser-les-filtres-de-requete/ , par exemple {{ cards|objects:"slug-modele-fiche"|filter_by:"nom"|filter_value:"entrouvert" }}.

  2. Sélectionnez le Statut cible en fin de répétition.
  3. 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

actions; pour une liste à choix multiples, ou pour les lignes d’un bloc de champs, ça sera simplement une référence à la valeur du champ « courriel » de la fiche en cours d'itération.

Comprendre la variable status_loop

champ; pour une requête toutes les possibilités des filtres sont présentes.

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, est utile de pouvoir connaître l’élément en cours, il est accessible dans la variable via une variable status_loop, dans un attribut current_item, ainsi pour une liste à choix multiples contenant les valeurs A et B, qui auraient comme valeur A et B,  {{ status_loop.current_item }} renverra produirait A lors de la première itération itération, et B lors de la seconde.

La variable status_loop offre également des informations utiles sur l'itération en cours :

Si on utilise comme élément permettant de répéter les actions un bloc contenant un champ avec « nom » pour identifiant, {{ status_loop.current_item.nom }} renverra la valeur de ce champ « nom » pour l'itération en cours.

Via status_loop il est également possible d’accéder à un index, 
  • {{ status_loop.index }} : renvoie donnera le numéro de l’itération, en l’itération (en commençant à compter à 1.
  • 1), 
  • {{ status_loop.index0 }} : renvoie le numéro de l’itération, donnera la même information mais en commençant à compter à 0.
  • {{ status_loop.first }}: retourne True status_loop.first permettra de voir si l’itération est la

    première.

  • {{ status_loop.last }}: retourne True 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

première, status_loop.last s’il s’agit de la dernière.

Après avoir répété les actions autant de fois que nécessaire, la demande sera envoyée sur le statut paramétré dans « Statut en fin de répétition ». Il est par ailleurs possible d’interrompre le déroulé de la répétition en utilisant un saut vers un statut extérieur.

Sur l’écran principal du workflow, dans la liste des statuts, une icône permet de distinguer les statuts sur lesquels une répétition est configurée. sera affichée en rappel de la configuration de la répétition :

capture du statut avec son icône de répétition

Dans le schéma du workflow il sera indiqué lorsqu'une une répétition est configurée précisé qu’il y a une répétition et que le saut correspond à une fin de répétition.

Schéma où on voit la répétition et le saut pour en sortir

sortie pour fin de la répétition :

Schéma où on voit la répétition et le saut pour en sortir

Dans la liste des statuts, le symbole ⟳ permet de distinguer les statuts sur lesquels il y a une répétition.