Skip to main content

Iterator v.2

Iterator v.2 | Sybot Documentation

Iterator v.2

  • Task type: iterator_v2

Descrizione

Il task "Iterator v.2" permette di eseguire ciclicamente un workflow figlio iterando su un dataset ottenuto da un task a monte. A differenza del "Run Workflow" standard, questo task ripete l'esecuzione per ogni singola riga presente nella sorgente dati selezionata.

iterator_v2_config.png

Parametri di Configurazione

  • Sorgente dati: Menu (Dropdown) che elenca i task compatibili presenti nel workflow.
  • Requisiti: Il menu viene popolato solo con task di tipo JSON to Table, XML to Table, CSV to Table o DB Connector.
  • Se non sono presenti task di questo tipo tra quelli precedenti, il menu mostrerà l'opzione: Nessuna sorgente dati valida disponibile.
  • Filtra Workflow: Campo di ricerca testuale per filtrare l'elenco dei workflow a cui l'utente ha accesso.
  • Workflow da iterare: Menu (Dropdown) per selezionare il workflow figlio da eseguire a ogni iterazione.
  • Termina alla prima iterazione fallita: Se abilitato, l'iterator si ferma immediatamente se uno dei workflow figli restituisce un errore, senza processare le righe rimanenti.
  • Tabella Parametri (Parametro / Tipo / Valore): Sezione per la configurazione degli input del workflow figlio.
  • Flessibilità: l'utente può inserire valori statici o dinamici.
  • Utilizzo Dataset: Per passare i dati della riga corrente al figlio, si utilizzano i tag relativi alle colonne del dataset (es. #>XML to Table.Dataset.nome_colonna<#).

Logica di Esecuzione e Runtime

  1. Estrazione: Il task recupera il Dataset dal task sorgente selezionato.
  2. Iterazione: Per ogni riga del Dataset, viene eseguito il workflow target selezionato.
  3. Override: I parametri del workflow target vengono sovrascritti con i valori definiti nella tabella parametri.

Parametri di Output

  • result: Descrizione testuale dell'esito (es: Tutte le iterazioni sono state completate con successo).
  • targetWorkflowId: ID univoco del workflow figlio selezionato.
  • targetWorkflowName: Nome del workflow figlio selezionato.
  • Dataset.Count: Numero totale di record individuati nella sorgente.
  • Iterations.Total: Numero di iterazioni effettivamente eseguite.
  • Iterations.Success: Conteggio dei workflow figli terminati con successo.
  • Iterations.Failed: Conteggio dei workflow figli falliti.
  • resultJSONtarget: Stringa JSON serializzata contenente l'array con i report completi di ogni singola iterazione.
  • exitStatus: Codice di stato (0 = Successo).

Esempio resultJson

{
"id": 18863,
"name": "Iterator v.2",
"description": "",
"type": "iterator_v2",
"type_name": "Iterator v.2",
"type_description": "Itera su un dataset ed esegue un workflow",
"config": {
"overrides": {
"ticket": "CR3245R"
},
"output_links": [
{
"to": "[TASK 1562_16065_48]",
"from": "[TASK 1562_18863_70]",
"text": "Condizione 49",
"color": "green",
"points": [81.50070869933893, -1552.8530586685567, 91.50070869933893, -1552.8530586685567, 180.78067126200403, -1552.8530586685567, 180.78067126200403, -1562.7196830876653, 270.06063382466914, -1562.7196830876653, 280.06063382466914, -1562.7196830876653],
"toPort": "left3",
"fromPort": "port_1562_18863_1",
"isTraversed": true
}
],
"datasource_task_id": 18870,
"stop_on_first_fail": false,
"target_workflow_id": 1977,
"result_target_workflow": [
{
"id": 1977,
"name": "Gestione Ticket",
"run_info": {
"tasks": [
{
"id": 19240,
"name": "Unix Shell",
"type": "ssh",
"config": {
"operation": "command",
"connection": {
"ip": "",
"port": "",
"user": "",
"hostname": "",
"password": "",
"use_password": "N",
"connection_mode": "default",
"hidden_task_pwd": "0",
"env_connection_name": "---"
},
"output_links": []
},
"run_info": {
"run_id": 1483825,
"status": "Completed",
"cmd_text": "echo '#>ticket<#'",
"duration": 0,
"run_result": "Success",
"result_text": "CR3245R",
"start_datetime": "2026-04-01 12:40:07",
"end_datetime": "2026-04-01 12:40:07",
"full_result_text": "CR3245R"
},
"type_name": "Unix Shell",
"description": "",
"type_description": "Connessione SSH",
"output_parameters": {
"exitStatus": "0"
}
}
],
"run_id": 61160,
"status": "Completed",
"duration": 0,
"run_user": "user_test",
"end_epoch": 1775047207,
"parameters": [
{
"name": "ticket",
"type": "string",
"value": "CR3245R"
}
],
"run_result": "Success",
"start_epoch": 1775047207,
"end_datetime": "2026-04-01 12:40:07",
"start_datetime": "2026-04-01 12:40:07"
},
"description": ""
}
]
},
"run_info": {
"run_id": 1483801,
"start_datetime": "2026-04-01 12:40:07",
"end_datetime": "2026-04-01 12:40:07",
"start_epoch": 1775047207.050384,
"end_epoch": 1775047207.633366,
"duration": 1,
"status": "Completed",
"run_result": "Success",
"result_text": "Tutte le iterazioni sono state completate con successo"
},
"output_parameters": {
"exitStatus": "0",
"Dataset.Count": "3",
"Iterations.Total": "3",
"resultJSONtarget": "[...tutte le 3 iterazioni con run_user aggiornato a user_test...]",
"targetWorkflowId": "1977",
"Iterations.Failed": "0",
"Iterations.Success": "3",
"targetWorkflowName": "Gestione Ticket"
}
}