Run Workflow
Run Workflow | Sybot Documentation
RUN WORKFLOW
- Task type: runworkflow
Il task Run Workflow è un componente fondamentale per la creazione di processi complessi e modulari. La sua funzione è quella di lanciare l'esecuzione di un Workflow "figlio" da un Workflow "padre", permettendo di passare dati e parametri dal padre al figlio.
Questo approccio consente di:
- Riusare logiche complesse: Un Workflow che esegue un'operazione comune (es. recuperare dati utente) può essere creato una volta e richiamato da molti altri Workflow.
- Semplificare i diagrammi: Suddivide un processo monolitico e complesso in sotto-processi più piccoli, semplici e manutenibili.
- Gestire flussi di lavoro in parallelo o in sequenza: Avviare un'automazione secondaria al termine di una primaria.
Configurazione
La configurazione del Task è suddivisa in due aree principali.
1. Workflow da Eseguire
- Filtra Workflow: Consente di filtrare la lista dei Workflow da avviare.
- Workflow da Eseguire: Consente di selezionare il Workflow “figlio” da avviare. L’elenco mostra tutti i workflow disponibili in base ai permessi dell’utente.
2. Configurazione dei Parametri
Questa sezione gestisce lo scambio di dati tra il Workflow padre e il Workflow figlio. I parametri disponibili in questa area derivano esclusivamente dai parametri dichiarati nel Workflow figlio: solo i parametri preventivamente definiti nel Workflow figlio possono essere valorizzati in questa sezione.
Per ciascun parametro è possibile specificare:
- Parametro: Indica il nome del parametro così come è stato definito nel Workflow figlio. Il nome non è modificabile e serve a garantire la corretta associazione del valore passato.
- Tipo: Mostra il tipo di dato del parametro (ad es. String, Number, Boolean, ecc.), coerente con la definizione nel Workflow figlio.
- Valore: Definisce il valore che verrà passato al parametro al momento dell'avvio del Workflow figlio. Il valore può essere valorizzato manualmente (ad es.
123,"Errore") o tramite parametri e variabili del workflow.
Parametri di Output
I Parametri di Output del Task sono:
- targetWorkflow: Restituisce il nome del Workflow "Figlio" che è stato eseguito.
- result: Restituisce un messaggio testuale che descrive l’esito dell’operazione di avvio del Workflow figlio.
- resultJson: Rappresenta il risultato dell’esecuzione del task in formato JSON, includendo informazioni generali, configurazioni e dettagli sull’esecuzione.
- resultJsonTarget: Rappresenta il risultato dell’esecuzione del Workflow figlio in formato JSON, includendo informazioni generali, configurazioni e dettagli sull’esecuzione. Questo parametro consente di riutilizzare i dati elaborati dal Workflow figlio all'interno del Workflow padre. Il contenuto JSON può essere interrogato tramite il Task JSONPath Query oppure utilizzato dal Task JSON to Table per scrivere i dati in una tabella di un database.
Note Importanti
Possono essere eseguiti solo i workflow che non risultano bloccati in modifica al momento dell'esecuzione. Se un utente sta modificando il workflow figlio quando il padre tenta di avviarlo, l'operazione potrebbe fallire.
Esempio resultJson
{
"id": 18734,
"name": "Run Workflow",
"description": "",
"type": "runworkflow",
"type_name": "Run Workflow",
"type_description": "Esegue un workflow",
"config": {
"target_workflow_name": "wf_child",
"overrides": [],
"result_target_workflow": [
{
"id": 2000,
"name": "wf_child",
"description": "",
"run_info": {
"run_id": 58239,
"run_user": "user_test",
"start_datetime": "2026-03-10 10:07:51",
"end_datetime": "2026-03-10 10:07:51",
"start_epoch": 1773137272,
"end_epoch": 1773137272,
"duration": 0,
"status": "Completed",
"run_result": "Success",
"parameters": [
{
"name": "convert.content",
"value": "/home/user/uploads/2000/test.jpg",
"type": "file"
},
{
"name": "convert.file",
"value": "/home/user/uploads/2000/test.jpg",
"type": "file"
},
{
"name": "convert.filename",
"value": "test.jpg",
"type": "file"
},
{
"name": "test",
"value": "",
"type": "string"
}
],
"tasks": [
{
"id": 18735,
"name": "Run Script Python",
"description": "",
"type": "script_py",
"type_name": "Run Script Python",
"type_description": "Esegue script in python",
"config": {
"editor": "",
"ssh_ip": "",
"ssh_port": "",
"ssh_user": "",
"ideScript": "",
"ssh_keygen": false,
"virtual_env": false,
"output_links": [],
"ssh_hostname": "",
"ssh_password": "",
"python_editor": "print(\"test\")",
"connection_mode": "default",
"path_virtual_env": "/",
"python_eseguibile": "python3",
"env_connection_name": "---"
},
"run_info": {
"run_id": 1439480,
"start_datetime": "2026-03-10 10:07:51",
"end_datetime": "2026-03-10 10:07:51",
"start_epoch": 1773137271.72645,
"end_epoch": 1773137271.764472,
"duration": 0,
"status": "Completed",
"cmd_text": "",
"run_result": "Success",
"result_text": "test",
"full_result_text": "test"
},
"output_parameters": {
"exitStatus": "0"
}
}
]
}
}
]
},
"run_info": {
"run_id": 1439469,
"start_datetime": "2026-03-10 10:07:51",
"end_datetime": "2026-03-10 10:07:51",
"start_epoch": 1773137271.581683,
"end_epoch": 1773137271.851849,
"duration": 0,
"status": "Completed",
"cmd_text": "",
"run_result": "Success",
"result_text": "Workflow wf_child eseguito con stato Success",
"full_result_text": "Workflow wf_child eseguito con stato Success"
},
"output_parameters": {
"targetWorkflow": "wf_child",
"resultJSONtarget": "{\"id\" : 2000, \"name\" : \"wf_child\", \"description\" : \"\", \"run_info\" : {\"run_id\" : 58239, \"run_user\" : \"user\", \"start_datetime\" : \"2026-03-10 10:07:51\", \"end_datetime\" : \"2026-03-10 10:07:51\", \"start_epoch\" : 1773137272, \"end_epoch\" : 1773137272, \"duration\" : 0, \"status\" : \"Completed\", \"run_result\" : \"Success\", \"parameters\" : [{\"name\" : \"convert.content\", \"value\" : \"/home/user/uploads/2000/test.jpg\", \"type\" : \"file\"}, {\"name\" : \"convert.file\", \"value\" : \"/home/user/uploads/2000/test.jpg\", \"type\" : \"file\"}, {\"name\" : \"convert.filename\", \"value\" : \"test.jpg\", \"type\" : \"file\"}, {\"name\" : \"test\", \"value\" : \"\", \"type\" : \"string\"}], \"tasks\" : [{\"id\" : 18735, \"name\" : \"Run Script Python\", \"description\" : \"\", \"type\" : \"script_py\", \"type_name\" : \"Run Script Python\", \"type_description\" : \"Esegue script in python\", \"config\" : {\"editor\": \"\", \"ssh_ip\": \"\", \"ssh_port\": \"\", \"ssh_user\": \"\", \"ideScript\": \"\", \"ssh_keygen\": false, \"virtual_env\": false, \"output_links\": [], \"ssh_hostname\": \"\", \"ssh_password\": \"test\", \"python_editor\": \"print(\\\"test\\\")\", \"connection_mode\": \"default\", \"path_virtual_env\": \"/\", \"python_eseguibile\": \"python3\", \"env_connection_name\": \"---\"}, \"run_info\" : {\"run_id\" : 1439480, \"start_datetime\" : \"2026-03-10 10:07:51\", \"end_datetime\" : \"2026-03-10 10:07:51\", \"start_epoch\" : 1773137271.726450, \"end_epoch\" : 1773137271.764472, \"duration\" : 0, \"status\" : \"Completed\", \"cmd_text\" : \"\", \"run_result\" : \"Success\", \"result_text\" : \"test\", \"full_result_text\" : \"test\"}, \"output_parameters\" : {\"exitStatus\": \"0\"}}]}}"
}
}