UiPath Documentation
maestro
latest
false
Guide de l'utilisateur de Maestro
Important :
La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

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​

ChampRequisDefaultDescription
CollectionOui (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.
ParallelNon (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 conditionNon (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’interruptionNon (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.
Remarque :

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>.currentItem est 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>.currentIteration est le numéro d'itération actuel, à partir de 1.

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.

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour