Loop

logic_loop · logic · Logica & Flow · Disponibile · v2.0.0

Descrizione

Iterate a collection through the "body" branch. Choose serial / batched / bulk / queued / aggregated strategy per workload size.

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
itemsExpression
Espressione array da iterare
expressionsi
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")
strategy
Strategia di iterazione
enum
naivebatchbulkqueueaggregateauto
sinaivenaive = 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.
batchSize
Dimensione chunk
numberno100Item per chunk. Solo per strategia "batch". Es. 100 = processa 100 alla volta.
concurrency
Concorrenza (iterazioni in parallelo)
numberno11 = seriale (un'iterazione alla volta). N = fino a N iterazioni in parallelo. 0 = illimitato (sconsigliato). Cap massimo = 50.
errorPolicy
Politica di gestione errori
enum
stopcontinuedlq
nocontinuestop = ferma il loop al primo errore. continue = registra l'errore e prosegue. dlq = push in dead-letter queue per retry differito.
rateLimitPerMin
Rate limit (richieste/minuto)
numberno0Throttle a N iterazioni al minuto. 0 = nessun limite. Usa quando l'API a valle ha rate limit noto (es. 60 per Stripe gratis).
maxItems
Limite massimo iterazioni (safety)
numberno100000Hard cap anti-runaway. Se l'array supera questa soglia, l'engine solleva errore. 100k default è sicuro per la maggioranza dei casi.
aggregateBy
Campo group-by (aggregate)
stringno
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.
aggregateReducer
Funzione di riduzione
enum
countsumavgminmaxconcatcollect
nocountcount = conta elementi del gruppo. sum/avg/min/max = applica al campo "aggregateField" sotto. concat = join stringhe. collect = ritorna array di item.
aggregateField
Campo per sum/avg/min/max
stringno
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.

⬆️ Output del nodo

Campi disponibili nei nodi successivi via $node.<alias>.json.<field>:

  • body
  • done

💡 Esempio configurazione

Snippet 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"
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare Loop?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi