Sim

Loop

El bloque Loop es un bloque contenedor en Sim que permite crear flujos de trabajo iterativos ejecutando un grupo de bloques repetidamente. Los bucles permiten el procesamiento iterativo en tus flujos de trabajo.

El bloque Loop admite dos tipos de iteración:

Los bloques Loop son nodos contenedores que pueden albergar otros bloques dentro de ellos. Los bloques dentro de un bucle se ejecutarán múltiples veces según tu configuración.

Descripción general

El bloque Loop te permite:

Iterar sobre colecciones: Procesar arrays u objetos un elemento a la vez

Repetir operaciones: Ejecutar bloques un número fijo de veces

Procesamiento secuencial: Manejar transformación de datos en iteraciones ordenadas

Agregar resultados: Recopilar salidas de todas las iteraciones del bucle

Cómo funciona

El bloque Loop ejecuta los bloques contenidos a través de iteración secuencial:

  1. Inicializar bucle - Configurar parámetros de iteración (contador o colección)
  2. Ejecutar iteración - Ejecutar bloques contenidos para la iteración actual
  3. Recopilar resultados - Almacenar la salida de cada iteración
  4. Continuar o completar - Pasar a la siguiente iteración o finalizar el bucle

Opciones de configuración

Tipo de bucle

Elige entre dos tipos de bucles:

For Loop (Iteraciones) - Un bucle numérico que se ejecuta un número fijo de veces:

Bucle For con iteraciones

Úsalo cuando necesites repetir una operación un número específico de veces.

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

Bucle ForEach (Colección) - Un bucle basado en colecciones que itera sobre cada elemento en un array u objeto:

Bucle ForEach con colección

Úsalo cuando necesites procesar una colección de elementos.

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

Cómo usar los bucles

Creación de un bucle

  1. Arrastra un bloque de bucle desde la barra de herramientas a tu lienzo
  2. Configura el tipo de bucle y los parámetros
  3. Arrastra otros bloques dentro del contenedor del bucle
  4. Conecta los bloques según sea necesario

Acceso a los resultados

Después de que un bucle se completa, puedes acceder a los resultados agregados:

  • <loop.results>: Array de resultados de todas las iteraciones del bucle

Ejemplos de casos de uso

Procesamiento de resultados de API

Escenario: Procesar múltiples registros de clientes

  1. El bloque API obtiene la lista de clientes
  2. El bucle ForEach itera sobre cada cliente
  3. Dentro del bucle: El agente analiza los datos del cliente
  4. Dentro del bucle: La función almacena los resultados del análisis

Generación iterativa de contenido

Escenario: Generar múltiples variaciones

  1. Configurar el bucle For para 5 iteraciones
  2. Dentro del bucle: El agente genera una variación de contenido
  3. Dentro del bucle: El evaluador puntúa el contenido
  4. Después del bucle: La función selecciona la mejor variación

Características avanzadas

Limitaciones

Los bloques contenedores (Bucles y Paralelos) no pueden anidarse unos dentro de otros. Esto significa:

  • No puedes colocar un bloque de Bucle dentro de otro bloque de Bucle
  • No puedes colocar un bloque Paralelo dentro de un bloque de Bucle
  • No puedes colocar ningún bloque contenedor dentro de otro bloque contenedor

Si necesitas iteración multidimensional, considera reestructurar tu flujo de trabajo para usar bucles secuenciales o procesar datos por etapas.

Los bucles se ejecutan secuencialmente, no en paralelo. Si necesitas ejecución concurrente, utiliza el bloque Paralelo en su lugar.

Entradas y salidas

  • Tipo de bucle: Elige entre 'for' o 'forEach'

  • Iteraciones: Número de veces a ejecutar (bucles for)

  • Colección: Array u objeto sobre el que iterar (bucles forEach)

  • loop.currentItem: Elemento actual que se está procesando

  • loop.index: Número de iteración actual (base 0)

  • loop.items: Colección completa (bucles forEach)

  • loop.results: Array con todos los resultados de las iteraciones

  • Estructura: Los resultados mantienen el orden de iteración

  • Acceso: Disponible en bloques después del bucle

Mejores prácticas

  • Establece límites razonables: Mantén un número razonable de iteraciones para evitar tiempos de ejecución largos
  • Usa ForEach para colecciones: Cuando proceses arrays u objetos, usa bucles ForEach en lugar de bucles For
  • Maneja los errores con elegancia: Considera añadir manejo de errores dentro de los bucles para flujos de trabajo robustos
Loop