- Introduction
- Démarrage
- Créer avec Maestro BPMN
- Compréhension de la modélisation BPMN de Maestro
- Ouverture du canevas de modélisation
- Modéliser votre processus
- Alignement et connexion des éléments BPMN
- Patterns library
- Autopilot pour Maestro (aperçu)
- Référentiel de processus
- Implémenter un processus BPMN simple
- Implémenter un processus BPMN complexe
- Débogage
- Simulation
- Évaluations (Aperçu)
- Scénarios de mise en œuvre courants
- Building with Maestro Case
- Présentation de Maestro Case
- Maestro BPMN vs. Maestro Case : quand utiliser la gestion des incidents
- Le cycle de vie de Maestro Case : du déclencheur d'événement à l'expérience de l'application
- Créer votre premier incident avec Maestro Case
- Créer un Maestro Case avec un agent de codage (aperçu)
- 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)
- Configurer et tester l'agent Case Manager (aperçu)
- Contrat d’entrée et de sortie du gestionnaire de cas
- Dictionnaire des composants de Maestro Case
- Créer avec Maestro Flow
- Maestro Automate
- Intégrations
- Opérations
- Surveillance
- Optimisation
- Informations de référence
Boucle
Nœud Boucle pour l'itération sur les collections avec des options de parallèle et d'interruption.
Ce qu’il fait
Itère sur 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 Interrompre sous condition ou un gestionnaire d'interruption, les deux décrits ci-dessous.
Référence de la configuration
| Champ | Requis | Default | Description |
|---|---|---|---|
| Collection | Oui (Yes) | Aucun (None) | Tableau sur lequel parcourir l'itération. Entrez une expression qui se résout par 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 de l'une après l'autre. Lorsqu'elle est désactivée, la boucle s'exécute de manière séquentielle et attend que chaque itération se termine avant de démarrer la suivante. |
| Interrompre sous condition | Non (No) | Aucun (None) | Expression qui quitte la boucle tôt lorsqu'elle est devenue 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 un gestionnaire d'interruption à 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 gestionnaire d'interruption pour arrêter l'itération à partir du corps de la boucle. |
L'itération séquentielle préserve l'ordre et est requise pour que Interrompre sur condition fonctionne, car la condition est vérifiée après 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 les nœuds dans la limite de la boucle pour les ajouter au corps. Les nœuds du 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 actuel et itération
Dans le corps, faites référence à la progression de la boucle avec ces expressions :
$vars.<loopName>.currentItemest l'élément de l'itération actuelle. Accédez à ses champs avec la notation par points, par exemple$vars.loop1.currentItem.id.$vars.<loopName>.currentIterationest le numéro d'itération actuel, à partir de1.
Ceux-ci sont disponibles uniquement dans le corps de la boucle.
Sortie
Une fois toutes les itérations terminées, les résultats agrégés de la boucle sont disponibles à l'adresse $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 demande 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 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 - Arrêt précoce 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. Avec l'activation de l'affichage du gestionnaire d'interruption, la branche correspondante de la décision se connecte au gestionnaire d'interruption 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érifier la sortie du nœud en amont dans la trace d'exécution pour confirmer que le tableau contient des éléments. Une collection vide ignore le corps et se poursuit après la boucle.
Interrompre sur condition ne se déclenche jamais dans une boucle parallèle. Interrompre sur condition est évalué après la fin de chaque itération dans l'ordre, de sorte qu'il s'applique aux boucles séquentielles. Désactivez Parallèle si vous devez interrompre sur une condition d'exécution.
La modification de la collection dans le corps ne modifie pas ce qui est itéré. La collection est capturée lorsque la boucle commence. La modification de la variable de tableau dans le corps ne modifie pas les éléments qui sont itérés. C'est un comportement prévu.
Pages liées
- Ce qu’il fait
- Quand l’utiliser
- Référence de la configuration
- Le corps de la boucle
- Élément actuel et itération
- 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 - Arrêt précoce une fois qu'une correspondance est trouvée
- Problèmes couramment rencontrés
- Pages liées