Collections et boucles
Préparez des listes typées avec des opérations explicites, puis choisissez entre Each pour répéter un node et Foreach pour lancer un processus enfant autonome par élément.
Collections typées
Une valeur array<platform.invoice> ne devient pas un tableau JSON générique lorsqu’elle traverse un node de collection. Les opérations conservent ou dérivent explicitement le type concret des éléments, ce qui permet à l’éditeur de continuer à proposer les champs et relations valides dans les bindings suivants.
Préférez ces nodes aux expressions lorsque l’opération correspond à une transformation courante : l’intention reste visible dans le graphe, le type de sortie reste explicite et les erreurs de cardinalité sont traitées comme des garanties produit.
Transformer puis parcourir
Préparez d’abord la collection, puis choisissez la bonne granularité d’exécution : Each répète un node dans la même instance ; Foreach lance des instances enfants autonomes.
filter_order, take ou distinct décident quels éléments restent dans la collection. Each et Foreach décident ensuite comment le travail est exécuté pour ces éléments.Nodes de collection
| Node | Rôle | Garantie utile |
|---|---|---|
filter_order | Filtrer puis trier. | Conserve le type concret des éléments et un tri stable. |
take | Limiter la liste. | Retourne au plus N éléments sans changer leur type. |
exactly_one | Transformer T[] en T. | Échoue si la collection contient 0 ou plus de 1 élément. |
first_item | Prendre le premier T. | Échoue uniquement si la collection est vide. |
distinct | Dédupliquer. | Peut utiliser des champs métier et choisir de garder le premier ou dernier doublon. |
concat | Concaténer deux listes. | Unifie les types compatibles et préserve l’ordre gauche puis droite. |
partition | Séparer selon des conditions. | Chaque élément apparaît dans exactement une des deux sorties. |
check_if utilise le même langage de conditions que filter_order et partition, mais il route un objet unique ; il appartient donc à Routage et décisions.
Each : répéter un node dans la même instance
Lorsqu’un node accepte un objet T mais que votre source est une collection T[], activez Eachdans le binding. Le node est exécuté une fois par élément sans créer de processus enfant distinct.
- Le type
Test conservé pendant chaque itération. - Les sorties élémentaires sont réagrégées en collections typées.
- Les retries et warnings restent observables au niveau des itérations du node.
- La même instance de processus porte l’ensemble de l’exécution.
Utilisez Each lorsque la logique à répéter tient dans un seul node — par exemple envoyer le même type d’action à chaque objet d’une collection.

Foreach : une instance enfant autonome par élément
foreach lance un processus enfant pour chaque élément. Chaque enfant possède son propre graphe, son état d’exécution et son observabilité. Cette isolation convient lorsque le traitement par élément comprend plusieurs étapes, des attentes, des interactions humaines ou une logique qui mérite sa propre révision.
| Politique | Comportement du parent | Quand l’utiliser |
|---|---|---|
wait_for_all | Attend que toutes les instances enfants soient résolues avant de poursuivre. | La suite dépend du résultat global du fan-out. |
no_wait | Déclenche les enfants puis poursuit sans attendre leur résolution. | Les enfants sont autonomes et la suite du parent n’a pas besoin de leurs résultats. |
Patterns usuels
- Sélectionner les N priorités :
filter_order → take. - Exiger une correspondance non ambiguë :
filter_order → exactly_one. - Conserver un fallback déterministe : trier explicitement puis
first_item. - Traiter deux populations :
partitionproduit les collections matching et remaining sans dupliquer la règle. - Fan-out contrôlé : nettoyer/dédupliquer la liste, limiter si nécessaire, puis
foreach.
Le catalogue des nodes Core documente les paramètres exacts de ces primitives ; cette page reste la référence pour choisir leur composition.