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 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

ChampRequisDefaultDescription
CollectionOui (Yes)Aucun (None)Tableau à parcourir. Saisissez une expression qui se résout vers un tableau, par exemple $vars.listCustomers1.output.
ParallelNon (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 conditionNon (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’interruptionNon (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.
Remarque :

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

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.

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