- Introduction
- Démarrage
- Modélisation du processus avec BPMN
- Compréhension de la modélisation des processus
- Ouverture du canevas de modélisation
- Modéliser votre processus
- Alignement et connexion des éléments BPMN
- Autopilot pour Maestro (aperçu)
- Référentiel de processus
- Modélisation des processus avec la gestion des incidents
- Concevoir un schéma d'entité de cas persistant
- Définition des clés de cas (système vs. externe)
- Établissement des contrats d'E/S et de réécriture de la tâche
- Règles de sortie et fin de l’étape précoce
- Modélisation des étapes primaires et secondaires
- Déclencher un cas à partir de Data Fabric
- Implémentation des personas et des autorisations au niveau de l'étape
- Définition des SLA et des règles d'escalade automatisées
- Configuration d'une boucle de retraitement (renouvellement)
- Gestion des instances de cas en cours : suspendre, migrer et réessayer
- Dictionnaire des composants de gestion des incidents Maestro
- Modélisation des processus avec Flow
- Implémentation des processus
- Débogage
- Simulation
- Publication et mise à niveau des processus agentiques
- Scénarios de mise en œuvre courants
- Extraire et valider des documents
- Opérations de processus
- Surveillance des processus
- Optimisation des processus
- Informations de référence
Nœud de boucle pour parcourir les collections avec les options parallèles et d'arrêt.
Ce qu’il fait
Itère une collection et exécute les nœuds dans le corps de la boucle une fois pour chaque élément.
Quand l’utiliser
Utilisez une boucle lorsque vous avez une collection d'éléments à traiter, telle qu'une liste d'enregistrements renvoyés par une API, une liste de fichiers ou une liste d'ID. La boucle s'exécute une fois par élément et s'arrête lorsque la collection est épuisée.
Pour quitter avant que la collection ne soit épuisée, utilisez la condition Break on ou un handle d'arrêt, tous deux décrits ci-dessous.
Référence de la configuration
| Champ | Requis | Default | Description |
|---|---|---|---|
| Collection | Oui (Yes) | Aucun (None) | Tableau à parcourir. Saisissez une expression qui se résout vers un tableau, par exemple $vars.listCustomers1.output. |
| Parallel | Non (No) | Désactivé (Off) | Exécute toutes les itérations en même temps au lieu des unes après les autres. Lorsqu'elle est désactivée, la boucle s'exécute de manière séquentielle et attend la fin de chaque itération avant de démarrer la suivante. |
| Interrompre sous condition | Non (No) | Aucun (None) | Expression qui quitte la boucle tôt lorsqu'elle devient true après la fin d'une itération. Cela s'applique aux boucles séquentielles. |
| Afficher le handle d’interruption | Non (No) | Désactivé (Off) | Ajoute une gestion de rupture à la boucle afin que les nœuds à l’intérieur du corps puissent quitter la boucle plus tôt. Connectez la sortie d'un nœud au handle d'arrêt pour arrêter l'itération depuis l'intérieur du corps. |
L'itération séquentielle préserve l'ordre et est requise pour que la condition Break on fonctionne, car la condition est vérifiée à la fin de chaque itération. Les itérations parallèles ne s'exécutent pas dans un ordre garanti.
Le corps de la boucle
Faites glisser des nœuds à l'intérieur de la limite de la boucle pour les ajouter au corps. Les nœuds dans le corps peuvent lire l'élément et l'itération actuels, ainsi que toutes les variables de l'étendue en dehors de la boucle.
Élément et itération actuels
Dans le corps, référencez la progression de la boucle avec ces expressions:
$vars.<loopName>.currentItemest l'élément de l'itération actuelle. Accédez à ses champs avec une notation pointée, par exemple$vars.loop1.currentItem.id.$vars.<loopName>.currentIterationest le numéro d'itération actuel, à partir de1.
Elles sont disponibles uniquement à l’intérieur du corps de la boucle.
Sortie
Une fois toutes les itérations terminées, les résultats agrégés de la boucle sont disponibles au niveau du chemin d’ $vars.<loopName>.output. L'exécution se poursuit ensuite à partir du nœud après la boucle.
currentItem et currentIteration ne sont pas accessibles en dehors du corps de la boucle.
Exemples
Exemple 1 — Appeler une API pour chaque élément
La boucle itère sur $vars.listCustomers1.output. Le corps de la boucle contient un nœud de requête HTTP avec l’URL:
https://api.example.com/customers/{{ $vars.loop1.currentItem.id }}
https://api.example.com/customers/{{ $vars.loop1.currentItem.id }}
Exemple 2 — Créer un tableau de résultats entre les itérations
Un nœud de script dans le corps de la boucle renvoie une valeur pour chaque élément. La boucle collecte le résultat de chaque itération dans $vars.loop1.output:
return { id: $vars.loop1.currentItem.id, processed: true };
return { id: $vars.loop1.currentItem.id, processed: true };
Après la boucle, $vars.loop1.output est un tableau de ces résultats.
Exemple 3 — S'arrêter tôt une fois qu'une correspondance est trouvée
Un nœud de décision dans le corps de la boucle vérifie l'élément actuel. Lorsque l’option Afficher la gestion des ruptures est activée, la branche correspondante de la décision se connecte au gestionnaire d’arrêt de la boucle pour arrêter l’itération dès que la correspondance est trouvée.
Problèmes couramment rencontrés
Le corps de la boucle ne s’exécute jamais. La collection est vide ou undefined. Vérifiez la sortie du nœud en amont dans le traçage de l’exécution pour confirmer que le tableau contient des éléments. Une collection vide ignore le corps et se poursuit après la boucle.
L'interruption de la condition ne se déclenche jamais dans une boucle parallèle. La condition d'arrêt est évaluée une fois chaque itération terminée dans l'ordre, elle s'applique donc aux boucles séquentielles. Désactivez Parallèle si vous devez interrompre une condition en cours d'exécution.
La modification de la collection à l’intérieur du corps ne modifie pas ce qui est itéré. La collection est capturée au démarrage de la boucle. La modification de la variable de tableau dans le corps ne modifie pas les éléments qui sont itérés. C’est par conception.
Pages liées
- Ce qu’il fait
- Quand l’utiliser
- Référence de la configuration
- Le corps de la boucle
- Élément et itération actuels
- Sortie
- Exemples
- Exemple 1 — Appeler une API pour chaque élément
- Exemple 2 — Créer un tableau de résultats entre les itérations
- Exemple 3 — S'arrêter tôt une fois qu'une correspondance est trouvée
- Problèmes couramment rencontrés
- Pages liées