Tarefa Humana
A Tarefa “Human Task” é um componente fundamental para a orquestração de processos que exigem uma intervenção humana. A sua função primária é suspender a execução de um Workflow e criar uma atividade pendente, atribuindo-a a um ou mais utilizadores específicos.
O Workflow permanecerá em estado de espera (no Logs de Execução estará em estado Running) até que o utilizador designado conclua a atividade, a cancele, ou até ao expirar um timeout. Esta interação ocorre através da interface Workspace do utilizador.
Esta Tarefa é a ponte entre a automação de sistemas (System-to-System) e os processos de decisão ou de inserção de dados humanos (Human-in-the-Loop).
1. Configuração
A configuração da Tarefa define a quem atribuir a atividade, os seus prazos e os campos (formulário) que o utilizador deverá visualizar ou preencher.
1.1 Atribuição de Utilizador
- Destinatários: Um campo de seleção múltipla para especificar um ou mais utilizadores aos quais a atividade será atribuída.
- Data de Vencimento: Um campo data/hora para definir o prazo até ao qual a atividade deve ser concluída.
- Prioridade: Um menu suspenso para definir a prioridade da atividade (Baixa, Média, Alta).
- Timeout (segundos): Um valor numérico, em segundos, que define um tempo máximo de espera. Se a atividade não for concluída dentro deste timeout, o Workflow retomará automaticamente a execução, tipicamente seguindo um caminho de saída específico.
1.2 Formulários
Esta secção permite construir um formulário dinâmico que será apresentado ao utilizador no seu Workspace. Para cada campo a ser visualizado (+ para adicionar), definem-se:
| Coluna | Descrição Técnica |
|---|---|
| Label | O nome do campo, tal como será visualizado pelo utilizador (ex: test_pdf). |
| Tipo | O tipo de dado do campo (ex: String, Number, Boolean). |
| Valor | O valor inicial ou pré-preenchido do campo. Pode ser um valor estático ou, mais comummente, um parâmetro dinâmico proveniente de uma Tarefa anterior (#>Importa Testo.result<#). |
| Required | Se marcado, o utilizador não poderá concluir a atividade sem preencher este campo. |
| Read-Only | Se marcado, o utilizador poderá visualizar o valor do campo, mas não o modificar. |
2. Interação do Utilizador no Workspace
Quando um Workflow em execução atinge uma Tarefa Humana, ocorre o seguinte:
- A execução do Workflow é suspensa.
- Na interface Workspace dos utilizadores destinatários, aparece uma nova atividade pendente na secção "Human Task List".
- A atividade mostra todos os detalhes configurados: destinatários, prioridade, prazo e o formulário (Forms) a preencher.
- O utilizador pode interagir com a atividade preenchendo os campos necessários e escolhendo uma das duas ações finais:
- Concluir: Conclui a atividade e retoma o Workflow.
- Cancelar: Cancela a atividade e retoma o Workflow, tipicamente seguindo um caminho de saída diferente.
3. Parâmetros de Saída
Assim que a Tarefa Humana é concluída, expõe uma série de parâmetros de saída que contêm os dados inseridos pelo utilizador e o resultado da sua interação.
Estes parâmetros são fundamentais para as Tarefas subsequentes, que poderão utilizar os dados validados ou inseridos pelo utilizador para prosseguir com a lógica do processo (ex: guardar os dados num base de dados, enviar um e-mail com as informações inseridas, etc.).
3.1 Seção Base
- result: O estado final da interação (ex: "Completed", "Cancelled", "TimedOut").
- resultJSON: Um objeto JSON que contém todos os dados do formulário, incluindo os valores inseridos pelo utilizador.
- choicesJSON: Um objeto JSON que recolhe as escolhas feitas pelo utilizador, o estado de conclusão e o utilizador associado. (ex:
{"choices":{"x":"243"},"status":"Completed","username":"user_test"})
3.2 Seção Forms
Esta secção expõe cada campo definido no formulário Forms como um parâmetro de saída individual, tornando o acesso aos dados inseridos pelo utilizador extremamente direto.
O mapeamento segue esta estrutura:
- Nome do Campo (Label): Para cada campo criado com uma determinada Label na configuração, é criado um parâmetro de saída com o mesmo nome. Este parâmetro conterá o valor final do campo, tal como foi eventualmente modificado e confirmado pelo utilizador no momento da conclusão da atividade.