← Documentación
General

Ciclo (for / para cada)

Repite unos pasos muchas veces. Es el «for» de la lógica: para cada elemento de una lista, N veces, en un rango de números o mientras algo se cumpla. Se arma e

Repite unos pasos muchas veces. Es el «for» de la lógica: para cada elemento de una lista, N veces, en un rango de números o mientras algo se cumpla. Se arma en dos partes: aquí eliges CÓMO se repite y, con el botón «Configurar ciclo», se abre un modal donde das los pasos de cada vuelta («Cada elemento»), los que corren al terminar («Al terminar») y los que corren si algo detiene el ciclo («Al detener»). Tipos de ciclo: • Para cada elemento (for…of / for…in) — recorre un arreglo JSON, o un objeto (cada llave es una vuelta). «Ruta» dice dónde está el arreglo si viene dentro de otro dato (ej. data.items). Los datos pueden venir de una Petición HTTP (▾ → «Resultado de un paso anterior»). • Repetir N veces (for i) — la vuelta 1, 2, 3… hasta N. • Rango con paso (for de A a B) — de «Desde» a «Hasta» (incluido) sumando «Paso» cada vez (si lo dejas vacío es 1, o −1 si Desde es mayor que Hasta). • Mientras se cumpla (while) — repite mientras la comparación sea verdadera; se revisa antes de cada vuelta, así que los pasos deben cambiar algo (una variable) para que termine. Siempre corre en orden. Dentro de «Cada elemento», en el ▾ de cualquier campo → «Items»: el elemento de la vuelta (campo del item, $item), su número ($index: 1, 2, 3…), su llave ($key, en un objeto) y el total de vueltas ($total). En un ciclo de N veces o de rango, el elemento es el propio número. Con «../campo» llegas al elemento de la lista o ciclo de afuera. Cómo corre: • En orden (síncrono) — una vuelta a la vez; la siguiente empieza cuando la anterior termina del todo (aunque espere una petición). • A la vez (asíncrono) — lanza las vueltas juntas y espera a que terminen todas. «Máximo a la vez» las manda por tandas (vacío = todas). Ojo: como no hay orden, no hagas que una vuelta dependa de otra. • Si una vuelta falla — «Detener el ciclo» (por defecto): no empieza más vueltas y el paso queda en rojo; «Seguir con las demás»: las cuenta como fallidas pero continúa. Pasos especiales dentro de «Cada elemento»: • «Detener ciclo» (break) — no se hacen más vueltas y corre «Al detener» en vez de «Al terminar». • «Siguiente vuelta» (continue) — se salta lo que falte de esta vuelta y pasa a la siguiente. • «Agregar resultado de la vuelta» — junta un valor por vuelta para que «Al terminar»/«Al detener» sepan qué pasó en cada una (no solo el resumen). Salidas: «Cada elemento» (por vuelta), «Al terminar» (cuando acabaron todas, sin que nadie detuviera) y «Al detener» (si un «Detener ciclo» lo cortó). Tope: 1000 vueltas por ciclo (así un «mientras» que nunca termina no congela la app). El resultado del paso (▾ → «Resultado de un paso anterior») es un resumen: cuántas vueltas hubo, cuántas fallaron y si se detuvo. Para el detalle por vuelta, usa «Agregar resultado de la vuelta» + el Dato del evento de «Al terminar»/«Al detener».

Entradas

  • Tipo de ciclo (select)
  • Datos (arreglo u objeto JSON) (text)
  • Ruta de los datos (opcional, ej. data.items) (text)
  • Cuántas veces (text)
  • Desde (text)
  • Hasta (incluido) (text)
  • Paso (opcional) (text)
  • Mientras este valor… (text)
  • sea (select)
  • …este otro valor (text)
  • Cómo corren las vueltas (en «Mientras» siempre en orden) (select)
  • Máximo a la vez (vacío = todas) (text)
  • Si una vuelta falla (select)