Loop
El componente Loop permite tomar una lista de objetos Data y enviarlos, uno por uno, a las siguientes etapas de tu flujo. Cada vez que el bucle avanza, emite el elemento actual y, al terminar, devuelve un resumen del proceso.
¿Cómo funciona?
El Loop no hace llamadas externas; todo sucede en memoria. Cuando le das una lista, abre una iteración interna y, en cada paso, extrae el siguiente objeto. Ese objeto se envía a la salida Item. Una vez que ya no quedan más elementos, se lanza la salida Done que indica que la iteración ha concluido. Así, el flujo que sigue al Loop recibe los datos de forma progresiva, uno a uno, sin procesar la lista completa de golpe.
Entradas
- Data: La lista inicial de objetos Data que el Loop debe recorrer.
Este es el único campo de entrada; no se necesita configuración adicional.
Salidas
- Item: Emite el objeto Data actual de la iteración.
Útil para procesar cada elemento por separado, por ejemplo enviándolo a un servicio externo o transformándolo. - Done: Se emite cuando el bucle termina y no quedan más elementos.
Puedes usarlo para desencadenar tareas finales, como consolidar resultados o enviar una notificación.
Ejemplo de Uso
- Entrada: Conecta la salida de un componente que devuelve una lista de clientes (
DataList
) al campo Data de Loop. - Iteración: En cada paso, la salida Item se conecta a un componente que envía un correo personalizado a ese cliente.
- Finalización: La salida Done se enlaza a un componente que registra en la base de datos que todos los correos fueron enviados.
Consejos y Mejores Prácticas
- Añade un camino de error para la salida Done que verifique si realmente se procesaron elementos.
- Utiliza un componente agregador después de Loop si necesitas un resumen de todos los resultados.
- Cuando trabajes con datos confidenciales, elimina o anonimiza la información tan pronto como sea posible.
- Para listas extensas, procesa en lotes de 50–100 elementos para mantener bajo el consumo de memoria.
Consideraciones de Seguridad
- Cifrado: Si el flujo incluye datos personales o sensibles, aplica cifrado en tránsito y en reposo.
- Control de acceso: Asegúrate de que solo los usuarios autorizados puedan conectar componentes que manejan datos confidenciales.
- Registro: Evita registrar en logs información sensible que pueda filtrarse en caso de brecha.
- No Anidación: El componente Loop no admite anidación salvo que se realice ejecutando un flujo de proyecto. Esto se debe a que el Loop procesa los datos en memoria y no utiliza llamadas externas. Si necesitas anidación, crea un nuevo flujo que contenga el Loop y la anidación.