Saltearse al contenido

Iterator

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.

ParametroTipoRequeridoDescripcion
expressiontextNoExpresion 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"
}
}
{
"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 data al siguiente nodo.
  • El workflowRunId se genera a partir de la marca de tiempo actual (Date.now()).
  • Retorna _iterating: true con un array batch para que el motor ejecute cada elemento en paralelo.
  • El nextModule del batch es null a nivel raiz para evitar continuacion automatica; cada elemento del batch contiene su propio nextModule.
  • El campo expression permite especificar una expresion personalizada para obtener el array a iterar, aunque por defecto se usa data.
  • 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