Iterator
Descripcion
Sección titulada «Descripcion»El modulo Iterator recibe un array de datos y ejecuta los nodos siguientes del workflow para cada elemento del array de forma paralela. Cada elemento se procesa de forma independiente con sus propios metadatos (_meta_) que incluyen el indice actual, el total de elementos y un identificador unico de ejecucion. Si los datos de entrada no son un array pero son un objeto con claves numericas, se convierte automaticamente a array. Es el nodo fundamental para procesamiento por lotes en workflows, y debe combinarse con un nodo de merge (mergeResults, mergeIterator) para recombinar los resultados.
Configuracion
Sección titulada «Configuracion»Parametros
Sección titulada «Parametros»| Parametro | Tipo | Requerido | Descripcion |
|---|---|---|---|
| expression | text | No | Expresion que devuelve el array a iterar. Por defecto se usa data directamente. |
{ "_iterating": true, "batch": [ { "_meta_": { "workflowRunId": "1679561234567", "totalChunks": 3, "currentChunk": 0, "currentIndex": 0 }, "data": { "nombre": "Item 1" }, "nextModule": "siguiente_modulo" }, { "_meta_": { "workflowRunId": "1679561234567", "totalChunks": 3, "currentChunk": 1, "currentIndex": 1 }, "data": { "nombre": "Item 2" }, "nextModule": "siguiente_modulo" } ], "data": { "summary": [ { "poscurrent": 0, "status": "pending", "record": { "nombre": "Item 1" } }, { "poscurrent": 1, "status": "pending", "record": { "nombre": "Item 2" } } ], "workflowRunId": "1679561234567" }}Ejemplo de Uso
Sección titulada «Ejemplo de Uso»Caso basico
Sección titulada «Caso basico»{ "label": "Iterator", "expression": ""}- Los datos de entrada deben ser un array. Si se recibe un objeto con claves numericas (ej:
{0: "a", 1: "b"}), se convierte automaticamente a array. - Si los datos no son un array ni un objeto convertible, se retorna un error.
- Cada elemento del array se pasa individualmente como
dataal siguiente nodo. - El
workflowRunIdse genera a partir de la marca de tiempo actual (Date.now()). - Retorna
_iterating: truecon un arraybatchpara que el motor ejecute cada elemento en paralelo. - El
nextModuledel batch esnulla nivel raiz para evitar continuacion automatica; cada elemento del batch contiene su propionextModule. - El campo
expressionpermite especificar una expresion personalizada para obtener el array a iterar, aunque por defecto se usadata.
Nodos Relacionados
Sección titulada «Nodos Relacionados»- MergeResults - recombina los resultados de la iteracion
- MergeIterator - merge simplificado de iteracion
- Repeater - genera N repeticiones en lugar de iterar un array
- Merge - merge basico de chunks