Sim

Loop

Le bloc Loop est un bloc conteneur dans Sim qui vous permet de créer des flux de travail itératifs en exécutant un groupe de blocs de façon répétée. Les boucles permettent un traitement itératif dans vos flux de travail.

Le bloc Loop prend en charge deux types d'itération :

Les blocs Loop sont des nƓuds conteneurs qui peuvent contenir d'autres blocs. Les blocs Ă  l'intĂ©rieur d'une boucle s'exĂ©cuteront plusieurs fois selon votre configuration.

Aperçu

Le bloc Loop vous permet de :

Itérer sur des collections : traiter des tableaux ou des objets un élément à la fois

Répéter des opérations : exécuter des blocs un nombre fixe de fois

Traitement séquentiel : gérer la transformation des données dans des itérations ordonnées

Agréger les résultats : collecter les sorties de toutes les itérations de la boucle

Comment ça fonctionne

Le bloc Loop exécute les blocs contenus par itération séquentielle :

  1. Initialisation de la boucle - Configuration des paramÚtres d'itération (compteur ou collection)
  2. Exécution de l'itération - Exécution des blocs contenus pour l'itération actuelle
  3. Collecte des résultats - Stockage de la sortie de chaque itération
  4. Continuer ou terminer - Passer à l'itération suivante ou terminer la boucle

Options de configuration

Type de boucle

Choisissez entre deux types de boucles :

For Loop (Itérations) - Une boucle numérique qui s'exécute un nombre fixe de fois :

Boucle For avec itérations

Utilisez cette option lorsque vous devez répéter une opération un nombre spécifique de fois.

Example: Run 5 times
- Iteration 1
- Iteration 2
- Iteration 3
- Iteration 4
- Iteration 5

Boucle ForEach (Collection) - Une boucle basée sur une collection qui itÚre sur chaque élément d'un tableau ou d'un objet :

Boucle ForEach avec collection

Utilisez cette option lorsque vous devez traiter une collection d'éléments.

Example: Process ["apple", "banana", "orange"]
- Iteration 1: Process "apple"
- Iteration 2: Process "banana"
- Iteration 3: Process "orange"

Comment utiliser les boucles

Création d'une boucle

  1. Faites glisser un bloc Boucle depuis la barre d'outils vers votre canevas
  2. Configurez le type de boucle et les paramĂštres
  3. Faites glisser d'autres blocs à l'intérieur du conteneur de boucle
  4. Connectez les blocs selon vos besoins

AccÚs aux résultats

Une fois qu'une boucle est terminée, vous pouvez accéder aux résultats agrégés :

  • <loop.results> : tableau des rĂ©sultats de toutes les itĂ©rations de la boucle

Exemples de cas d'utilisation

Traitement des résultats d'API

Scénario : traiter plusieurs enregistrements clients

  1. Le bloc API récupÚre la liste des clients
  2. La boucle ForEach itĂšre sur chaque client
  3. À l'intĂ©rieur de la boucle : l'agent analyse les donnĂ©es client
  4. À l'intĂ©rieur de la boucle : la fonction stocke les rĂ©sultats d'analyse

Génération itérative de contenu

Scénario : générer plusieurs variations

  1. Définir une boucle For à 5 itérations
  2. À l'intĂ©rieur de la boucle : l'agent gĂ©nĂšre une variation de contenu
  3. À l'intĂ©rieur de la boucle : l'Ă©valuateur note le contenu
  4. AprÚs la boucle : la fonction sélectionne la meilleure variation

Fonctionnalités avancées

Limitations

Les blocs conteneurs (Boucles et ParallĂšles) ne peuvent pas ĂȘtre imbriquĂ©s les uns dans les autres. Cela signifie :

  • Vous ne pouvez pas placer un bloc Boucle Ă  l'intĂ©rieur d'un autre bloc Boucle
  • Vous ne pouvez pas placer un bloc ParallĂšle Ă  l'intĂ©rieur d'un bloc Boucle
  • Vous ne pouvez pas placer un bloc conteneur Ă  l'intĂ©rieur d'un autre bloc conteneur

Si vous avez besoin d'une itération multidimensionnelle, envisagez de restructurer votre flux de travail pour utiliser des boucles séquentielles ou traiter les données par étapes.

Les boucles s'exécutent séquentiellement, pas en parallÚle. Si vous avez besoin d'une exécution simultanée, utilisez plutÎt le bloc ParallÚle.

Entrées et sorties

  • Type de boucle : choisissez entre 'for' ou 'forEach'

  • ItĂ©rations : nombre de fois Ă  exĂ©cuter (pour les boucles for)

  • Collection : tableau ou objet Ă  parcourir (pour les boucles forEach)

  • loop.currentItem : Ă©lĂ©ment en cours de traitement

  • loop.index : numĂ©ro d'itĂ©ration actuel (base 0)

  • loop.items : collection complĂšte (boucles forEach)

  • loop.results : tableau de tous les rĂ©sultats d'itĂ©ration

  • Structure : les rĂ©sultats conservent l'ordre d'itĂ©ration

  • AccĂšs : disponible dans les blocs aprĂšs la boucle

Bonnes pratiques

  • DĂ©finir des limites raisonnables : gardez un nombre d'itĂ©rations raisonnable pour Ă©viter des temps d'exĂ©cution longs
  • Utiliser ForEach pour les collections : lors du traitement de tableaux ou d'objets, utilisez les boucles ForEach plutĂŽt que les boucles For
  • GĂ©rer les erreurs avec Ă©lĂ©gance : envisagez d'ajouter une gestion des erreurs Ă  l'intĂ©rieur des boucles pour des flux de travail robustes
Loop