Descrizione
Iterate a collection through the "body" branch. Choose serial / batched / bulk / queued / aggregated strategy per workload size.
logic_loop · logic · Logica & Flow · Disponibile · v2.0.0
Iterate a collection through the "body" branch. Choose serial / batched / bulk / queued / aggregated strategy per workload size.
Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.
| Campo | Tipo | Required | Default | Descrizione |
|---|---|---|---|---|
itemsExpressionEspressione array da iterare | expression | si | — input.records | Espressione JS che ritorna un array. Esempi: input.orders · input.rows · [1,2,3,4,5] · Object.values(input) · input.text.split("\n") |
strategyStrategia di iterazione | enumnaivebatchbulkqueueaggregateauto | si | naive | naive = uno alla volta (semplice). batch = in chunk (più veloce). bulk = singola chiamata bulk (se l'API supporta). queue = asincrono via BullMQ. aggregate = solo riduzione (no body). auto = engine sceglie il meglio. |
batchSizeDimensione chunk | number | no | 100 | Item per chunk. Solo per strategia "batch". Es. 100 = processa 100 alla volta. |
concurrencyConcorrenza (iterazioni in parallelo) | number | no | 1 | 1 = seriale (un'iterazione alla volta). N = fino a N iterazioni in parallelo. 0 = illimitato (sconsigliato). Cap massimo = 50. |
errorPolicyPolitica di gestione errori | enumstopcontinuedlq | no | continue | stop = ferma il loop al primo errore. continue = registra l'errore e prosegue. dlq = push in dead-letter queue per retry differito. |
rateLimitPerMinRate limit (richieste/minuto) | number | no | 0 | Throttle a N iterazioni al minuto. 0 = nessun limite. Usa quando l'API a valle ha rate limit noto (es. 60 per Stripe gratis). |
maxItemsLimite massimo iterazioni (safety) | number | no | 100000 | Hard cap anti-runaway. Se l'array supera questa soglia, l'engine solleva errore. 100k default è sicuro per la maggioranza dei casi. |
aggregateByCampo group-by (aggregate) | string | no | — es. customer_id, category, region | Nome del campo dell'item su cui raggruppare prima di ridurre. Es. items=[{customer_id:1,amount:10},{customer_id:1,amount:20}] con aggregateBy=customer_id raggruppa i 2 elementi. |
aggregateReducerFunzione di riduzione | enumcountsumavgminmaxconcatcollect | no | count | count = conta elementi del gruppo. sum/avg/min/max = applica al campo "aggregateField" sotto. concat = join stringhe. collect = ritorna array di item. |
aggregateFieldCampo per sum/avg/min/max | string | no | — es. amount, quantity, price | Nome del campo numerico da sommare/mediare. Ignorato per count/concat/collect. Es. con sum e aggregateField=amount, il risultato è la somma di tutti gli amount del gruppo. |
Campi disponibili nei nodi successivi via $node.<alias>.json.<field>:
bodydoneSnippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.
{
"id": "node-logic_loop-1",
"defId": "logic_loop",
"label": "Loop",
"config": {
"itemsExpression": "input.records",
"strategy": "naive",
"batchSize": 100,
"concurrency": 1,
"errorPolicy": "continue",
"rateLimitPerMin": 0,
"maxItems": 100000,
"aggregateReducer": "count"
}
}Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.
Inizia gratisSfoglia tutti i nodi