Parallel Run Workflow v.2
Parallel Run Workflow v.2 | Sybot Documentation
Parallel Run Workflow v.2
- Task type:
parallelrunworkflow_v2
Descrizione
Il task "Parallel Run Workflow v.2" permette l'esecuzione orchestrata di workflow multipli (fino a 20 istanze) con la possibilità di scegliere tra un'esecuzione parallela o sequenziale, gestendo simultaneamente configurazioni, parametri di input e una gestione avanzata degli errori per ogni singolo processo.
Parametri di Configurazione
- Modalità Esecuzione:
- Parallela: Lancia tutti i workflow abilitati nello stesso istante.
- Sequenziale: Esegue i workflow uno alla volta, rispettando l'ordine degli indici (1, 2, 3...).
- In caso di esiti inattesi:
- Considera il task fallito: Se selezionato, il task principale assumerà lo stato
Failedse un'istanza non restituisce l'esito atteso. - Arresta l'esecuzione subito: Se selezionato, il task bloccherà immediatamente le altre istanze in corso in caso di errore in una di esse.
Configurazione Istanze
Il task permette di configurare fino a 20 istanze indipendenti.
- Selettore Istanza: Incrementare il campo numerico per passare da un'istanza all'altra (es. da 1 a 2).
- Abilita Istanza: Toggle per attivare o saltare l'esecuzione dello slot corrente.
- Workflow Target: menu (dropdown) dove poter selezionare un workflow da lanciare.
- Esito Atteso: Lo stato che il workflow figlio deve restituire per essere considerato valido (
Success,Warning,FailedoQualunque). - Override Parametri: Griglia per mappare i parametri in ingresso al workflow figlio.
Note
È possibile navigare avanti e indietro tra le istanze (es. tornare all'istanza 2 dopo aver configurato la 5) per correggere o modificare i parametri; il sistema mantiene lo stato di ogni configurazione.
Parametri di Output
- result: Stato complessivo dell'esecuzione.
- resultJSON: Dettaglio JSON dei risultati.
- resultJSONtarget: Stringa JSON contenente l'intero report di esecuzione dei workflow figli (inclusi i risultati di ogni singolo task interno).Questo parametro di output è utile per ottenere informazioni sulle esecuzioni dei workflow figli: i dati possono essere estratti direttamente utilizzando task con query JSONPath.
- executionLog: Log delle operazioni effettuate dalle varie istanze.
- exitStatus: Codice numerico di uscita del task. (
0indica successo).
Esempio Struttura resultJSON
{
"id": 19062,
"name": "Parallel Run Workflow v.2",
"description": "",
"type": "parallelrunworkflow_v2",
"type_name": "Parallel Run Workflow v.2",
"type_description": "Esegue più workflow in parallelo",
"config": {
"_v": 2,
"configs": [
{
"enabled": true,
"overrides": {"data": "#>Date.datetime<#"},
"expected_result": "any",
"target_workflow_id": 1997
},
{
"enabled": true,
"overrides": {"test_child": "ciao"},
"expected_result": "any",
"target_workflow_id": 2013
},
{
"enabled": true,
"overrides": [],
"expected_result": "any",
"target_workflow_id": null
},
...
],
"exec_mode": "parallel",
"output_links": [
{
"to": "[TASK 1906_19215_40]",
"from": "[TASK 1906_19062_72]",
"text": "Condizione 23",
"color": "green",
"points": [...],
"toPort": "left4",
"fromPort": "port_1906_19062_1",
"isTraversed": true
}
],
"current_index": 0,
"result_target_workflow": [
{
"id": 1997,
"name": "dev_print",
"run_info": {...},
"description": ""
},
{
"id": 2013,
"name": "wf_child",
"run_info": {
"tasks": [
{
"id": 19038,
"name": "Unix Shell",
"type": "ssh",
"type_name": "Unix Shell",
"type_description": "Connessione SSH",
"config": {
"operation": "command",
"connection": {"ip": "", "port": "", "user": "", "hostname": "", ...},
"output_links": [...]
},
"run_info": {
"run_id": 1483519,
"status": "Completed",
"run_result": "Success",
"cmd_text": "echo 'test_child'",
"result_text": "test_child",
"start_datetime": "2026-04-01 11:18:01",
"end_datetime": "2026-04-01 11:18:01",
...
},
"output_parameters": {"exitStatus": "0"}
}
],
"run_result": "Warning",
"parameters": [{"name": "test_child", "value": "ciao", "type": "string"}],
...
},
"description": ""
}
],
"fail_on_unexpected_child_status": true,
"terminate_on_unexpected_child_status": false
},
"run_info": {...},
"output_parameters": {"exitStatus": "0", "resultJSONtarget": "[...]"}
}