Skip to main content

Human Task

Il Task “Human Task” è un componente fondamentale per l'orchestrazione di processi che richiedono un intervento umano. La sua funzione primaria è quella di sospendere l'esecuzione di un Workflow e di creare un'attività pendente, assegnandola a uno o più utenti specifici.

Il Workflow rimarrà in stato di attesa (nei Log Esecuzioni sarà in stato di Running) fino a quando l'utente designato non completerà l'attività, non la annullerà, o fino alla scadenza di un timeout. Questa interazione avviene tramite l'interfaccia Workspace dell'utente.

Questo Task è il ponte tra l'automazione dei sistemi (System-to-System) e i processi decisionali o di data entry umani (Human-in-the-Loop).

1. Configurazione

La configurazione del Task definisce a chi assegnare l'attività, le sue scadenze e i campi (form) che l'utente dovrà visualizzare o compilare.

1.1 Assegnazione Utente

  • Assegnatari: Un campo multi-selezione per specificare uno o più utenti a cui l'attività verrà assegnata.
  • Data Scadenza: Un campo data/ora per definire la scadenza entro cui l'attività deve essere completata.
  • Priorità: Un menu a tendina per impostare la priorità dell'attività (Bassa, Media, Alta).
  • Timeout (secondi): Un valore numerico, in secondi, che definisce un tempo massimo di attesa. Se l'attività non viene completata entro questo timeout, il Workflow riprenderà automaticamente l'esecuzione, tipicamente seguendo un percorso di uscita specifico.

1.2 Forms (Moduli)

Questa sezione permette di costruire un modulo dinamico che verrà presentato all'utente nel suo Workspace. Per ogni campo da visualizzare (+ per aggiungere), si definiscono:

ColonnaDescrizione Tecnica
LabelIl nome del campo, così come verrà visualizzato dall'utente (es. test_pdf).
TipoIl tipo di dato del campo (es. String, Number, Boolean).
ValoreIl valore iniziale o pre-compilato del campo. Può essere un valore statico o, più comunemente, un parametro dinamico proveniente da un Task precedente (#>Importa Testo.result<#).
RequiredSe spuntato, l'utente non potrà completare l'attività senza aver compilato questo campo.
Read-OnlySe spuntato, l'utente potrà visualizzare il valore del campo ma non modificarlo.

2. Interazione Utente nel Workspace

Quando un Workflow in esecuzione raggiunge un Human Task, accade quanto segue:

  1. L'esecuzione del Workflow si sospende.
  2. Nell'interfaccia Workspace degli utenti assegnatari appare una nuova attività pendente nella sezione "Human Task List".
  3. L'attività mostra tutti i dettagli configurati: assegnatari, priorità, scadenza, e il modulo (Forms) da compilare.
  4. L'utente può interagire con l'attività compilando i campi richiesti e scegliendo una delle due azioni finali:
  • Completa: Completa l'attività e fa riprendere il Workflow.
  • Annulla: Annulla l'attività e fa riprendere il Workflow, tipicamente seguendo un percorso di uscita diverso.

3. Parametri di Output

Una volta che l'Human Task è stato completato, espone una serie di parametri di output che contengono i dati inseriti dall'utente e l'esito della sua interazione.

Questi parametri sono fondamentali per i Task successivi, che potranno utilizzare i dati validati o inseriti dall'utente per proseguire con la logica del processo (es. salvare i dati in un database, inviare una mail con le informazioni inserite, etc.).

3.1 Sezione Base

  • result: Lo stato finale dell'interazione (es. "Completed", "Cancelled", "TimedOut").
  • resultJSON: Un oggetto JSON che contiene tutti i dati del modulo, inclusi i valori inseriti dall'utente.
  • choicesJSON: Un oggetto JSON che raccoglie le scelte effettuate dall'utente, lo stato di completamento e l’utente associato. (es. {"choices":{"x":"243"},"status":"Completed","username":"user_test"})

3.2 Sezione Forms

Questa sezione espone ogni campo definito nel modulo Forms come un parametro di output individuale, rendendo l'accesso ai dati inseriti dall'utente estremamente diretto.

La mappatura segue questa struttura:

  • Nome del Campo (Label): Per ogni campo creato con una certa Label nella configurazione, viene creato un parametro di output con lo stesso nome. Questo parametro conterrà il valore finale del campo, così come è stato eventualmente modificato e confermato dall'utente al momento del completamento dell'attività.