ZokasTech Innovate Connect Grow

Créer des processus

Boucles et conditions

Répéter des étapes pour chaque élément d'une liste et n'exécuter une étape que sous condition.

Répéter des étapes

flow.foreach répète les count étapes qui le suivent pour chaque élément d'une liste.

{ "id": "boucle", "type": "flow.foreach", "label": "Pour chaque facture",
  "props": { "list": "factures", "item": "facture", "count": "4" } }
  1. Produisez la liste avant la boucle : ui.table, data.table, file.list, mail.read…
  2. Indiquez dans list le nom de la variable (sans accolades).
  3. Choisissez dans item le nom de l'élément courant, puis utilisez-le dans le corps : {{facture.montant}}.
  4. Comptez les étapes du corps dans count, conditions comprises.

Exécuter une étape sous condition

flow.if évalue une expression. Si elle est fausse :

  • otherwise: "skip" saute l'étape suivante uniquement ;
  • otherwise: "stop" arrête le processus (fin normale, sans erreur).
{ "id": "seuil", "type": "flow.if", "label": "Montant au-dessus du seuil ?",
  "props": { "condition": "{{facture.montant}} > {{seuil}}", "otherwise": "skip" } }

La syntaxe complète des conditions est décrite dans Expressions.

Conditionner plusieurs étapes

Il n'existe pas de bloc « sinon ». Deux solutions :

  • répéter la condition devant chaque étape concernée ;
  • regrouper les étapes dans un sous-processus, puis conditionner un unique flow.call.

Exemple complet

Le corps de cette boucle compte 4 étapes : classer, tracer, condition, validation. La validation n'est demandée qu'au-delà du seuil.

[
  { "id": "boucle", "type": "flow.foreach", "label": "Pour chaque facture", "props": { "list": "factures", "item": "facture", "count": "4" } },
  { "id": "classer", "type": "ai.classify", "label": "Classer la dépense", "props": { "input": "{{facture.objet}}", "labels": "Informatique, Fournitures", "into": "categorie" } },
  { "id": "tracer", "type": "log.write", "label": "Tracer", "props": { "message": "{{facture.fournisseur}} → {{categorie}}", "level": "info" } },
  { "id": "seuil", "type": "flow.if", "label": "Au-dessus du seuil ?", "props": { "condition": "{{facture.montant}} > {{seuil}}", "otherwise": "skip" } },
  { "id": "valider", "type": "human.approve", "label": "Faire valider", "props": { "question": "Valider {{facture.fournisseur}} ({{facture.montant}} €) ?", "into": "decision" } }
]

Mis à jour le 28 octobre 2026