Desenhar processos
O canvas dos workflows — criar um processo, escolher o registo de que ele trata, arrastar passos, declarar variáveis e ler os avisos do desenho.
Um workflow é um processo de negócio desenhado numa tela: passos ligados por setas, decisões que abrem caminhos, esperas que podem durar semanas e tarefas atribuídas a pessoas. É a peça certa para tudo o que tem estados e gente pelo meio — uma aprovação de despesa, o fecho de uma oportunidade, o onboarding de um cliente novo.
Um workflow distingue-se de um script agendado em duas coisas:
- Toda a execução trata de UM registo. Não é opcional: cada execução está agarrada a uma linha de uma entidade da app — a oportunidade 42, a conta 17. É esse registo que os passos lêem e escrevem.
- Uma execução pode dormir. Um script corre em segundos; um processo pode ficar três semanas à espera que alguém carregue num botão, e retoma exactamente onde parou.
Ao longo deste capítulo usamos o processo Aprovação de oportunidade da app Gestão de Clientes: oportunidades acima de 25.000 € passam pela direcção antes de fechar; abaixo disso fecham sozinhas.
Onde vivem os workflows
Os workflows são do lado da UI da app: abre o minitab UI e desce a árvore até ao grupo Workflows, por baixo dos ecrãs e dos ficheiros. Cada processo é uma linha; clicar no nome abre o desenho num separador do espaço de trabalho.

Numa app que ainda não tem nenhum, o grupo mostra apenas "Ainda não há workflows.".
Criar um workflow
- Passa o rato pela linha do grupo Workflows e clica no botão Novo workflow (o ícone de nós, à direita do de pasta).
- Preenche o Nome — por exemplo
Aprovação de despesa. É o nome que aparece na árvore, no histórico das execuções e nas listas onde o processo é escolhido. - Clica em Criar.

O processo nasce com um nó de Início já na tela — sem ele não há por onde começar — e o desenho abre de imediato.
Dica
O botão de pasta ao lado cria pastas dentro de Workflows. Numa app com
muitos processos, agrupá-los por área (comercial/, rh/) poupa muito
tempo à procura.
O desenho
O separador de um workflow tem duas vistas, Desenho e Execuções, e o Desenho divide-se em três colunas:

| Zona | O que é |
|---|---|
| Nós (esquerda) | A paleta com os tipos de passo. Arrasta-se um para a tela. |
| A tela (centro) | O processo desenhado. Arrasta-se para mover, liga-se saída a entrada para criar setas. |
| O painel da direita | As propriedades — do processo quando não há nada seleccionado, do passo quando há. |
No cabeçalho, à direita do nome, ficam o identificador do processo (um
código como wf_4ef9ed11, que se copia com um clique — é por ele que o código
manda o processo arrancar), o estado da gravação, e as setas de desfazer e
refazer.
Não há botão de gravar: o desenho grava-se sozinho, um instante depois de cada alteração.
A paleta de nós

Para acrescentar um passo, arrasta o tipo da paleta para a tela. Para o
ligar, puxa uma seta do ponto de saída de um passo até ao ponto de entrada do
seguinte. Para apagar, selecciona e carrega em Delete.
O nó de Início é a excepção: existe sempre um, e não se apaga.
Cada tipo está descrito na página seguinte, Passos, decisões e esperas. O resumo:
| Grupo | Nós |
|---|---|
| Decidir e ramificar | Condição, Paralelo, Junção, Ciclo |
| Esperar | Esperar, Esperar evento |
| Agir | Escrever no registo, Notificar, Email, Correr script, Sub-workflow |
| Pessoas | Tarefa |
| Acabar | Fim |
Na paleta, os nós estão agrupados por tipologia (Pessoas, Acções, Controlo de fluxo e Fim); cada grupo recolhe-se com um clique no título, a caixa Pesquisar no topo filtra pelo nome, e a largura arrasta-se pela aresta direita.
Por baixo do cabeçalho está a barra de ferramentas, a mesma dos ecrãs: as vistas Desenho e Execuções, desfazer e refazer, Duplicar nó e Apagar nó (com um nó seleccionado), e à direita Enquadrar (encaixa o processo inteiro na tela) e o zoom, com a percentagem clicável para repor 100 %.
As propriedades do processo
Clica em qualquer zona vazia da tela para desmarcar o passo seleccionado — o painel da direita passa a mostrar as propriedades do processo.

| Campo | O que faz |
|---|---|
| Descrição | "Para que serve este processo." Texto livre, só para quem constrói. |
| Ligado | Desligado, "o processo não arranca por evento nenhum — só existe para desenho". Continua a poder ser editado; simplesmente não corre. |
| Execuções sobre o mesmo registo | Quantas forem precisas ou Só uma de cada vez. |
| Entidade | A entidade de que cada execução trata — uma das APIs de tabela da app. |
| Campo da chave | O campo que identifica o registo (normalmente a chave primária). |
| Variáveis | Ver a secção seguinte. |
Sobre a concorrência: com Só uma de cada vez, "emitir o evento outra vez enquanto houver execução viva não arranca nada". É o que se quer numa aprovação — a mesma oportunidade não deve ter dois processos de aprovação a correr ao mesmo tempo. Num processo tipo "pedido de férias", em que o mesmo funcionário pode ter vários pedidos, escolhe-se Quantas forem precisas.
Atenção
Sem Entidade escolhida, o desenho acusa erro e o processo não corre: "Falta escolher a entidade — toda a execução trata de um registo." É a primeira coisa a definir num processo novo.
Variáveis do processo
As variáveis são "o que a execução carrega consigo: comentários, valores calculados, decisões". Vivem enquanto a execução viver, e são independentes do registo — o comentário que a direcção escreveu não tem de ficar gravado na tabela das oportunidades para o processo o poder usar três passos à frente.
Abre-as no botão … da linha Variáveis:

- Clica em Acrescentar variável.
- Dá-lhe um Nome (sem espaços — é assim que os passos lhe chamam).
- Escolhe o Tipo: Texto, Número, Sim/Não ou Data.
- Opcionalmente, um Valor inicial.
A partir daí, qualquer passo que peça um valor pode ir buscá-lo à variável, e os passos Correr script e Tarefa podem escrever nela.
Os avisos do desenho
Por baixo da tela aparece uma barra sempre que há problemas — "{n} erro(s), {n} aviso(s) no desenho". Clicar nela abre a lista; clicar numa linha selecciona o passo em causa.

Os problemas mais comuns:
| Mensagem | O que quer dizer |
|---|---|
| "O processo não tem nó de início." | Erro. Sem início não arranca. |
| "Falta escolher a entidade — toda a execução trata de um registo." | Erro. Falta preencher Entidade nas propriedades. |
| "Esta tarefa não diz a quem deve ser atribuída — a execução vai falhar aqui." | Erro. Uma tarefa sem destinatários nunca chega a ninguém. |
| "Esta tarefa não tem decisões: a pessoa não teria em que carregar." | Erro. Ver Tarefas para pessoas. |
| "Só pode haver um Início: quem manda arrancar diz o workflow, não o passo." | Erro. Apaga os inícios a mais. |
| "A saída «X» não vai a lado nenhum." | Aviso. Há um caminho por ligar. |
| "Este passo não é alcançável a partir do início." | Aviso. Um passo solto na tela. |
| "O processo não tem nó de fim." | Aviso. |
Nota
Os avisos nunca impedem gravar. Valida-se ao usar, não ao escrever — um processo leva dias a desenhar e ninguém quer perder o trabalho por causa de uma seta que falta. Mas um processo com erros não deve ser ligado.
Ligado ou desligado
O crachá ao lado do nome mostra Ligado ou Desligado. É o interruptor Ligado nas propriedades que o comanda, e a regra é simples: desligado, o processo não arranca por nada — nem por um botão de um ecrã, nem por um script. Serve para desenhar com calma, e para parar um processo com problemas sem o apagar.
Dica
Desligar um processo não cancela as execuções que já estão a correr. As que estão vivas seguem o seu caminho; o que deixa de acontecer é o arranque de novas.
Um utilizador da app só arranca um processo, ou lhe envia um sinal, sobre um registo que consegue ver (o âmbito do role decide). Cada execução avança uma corrida de cada vez: duas tarefas concluídas ao mesmo tempo, ou um temporizador e um sinal, fazem fila em vez de repetir passos. Se o servidor reiniciar a meio de um passo, a execução retoma quando o agendador arranca, e esse passo corre outra vez.
Renomear, mover e apagar
No menu ⋮ da linha do workflow, na árvore:
- Renomear — muda o nome de apresentação. O identificador do processo
(
wf_…) não muda, por isso nada do que o chama se parte. - Mover — para outra pasta dentro de Workflows.
- Eliminar — apaga o desenho. As execuções que já correram deixam de ter processo a que pertencer.
Perguntas frequentes
Editei o desenho com execuções a meio. O que acontece às que estão a correr? Nada. Cada execução guarda a cópia do desenho com que arrancou — quem está a meio de um processo não vê o chão mudar. A versão nova vale para as execuções que começarem a partir daí.
Posso ter dois nós de Início? Não. Quem manda arrancar o processo é o ecrã, o script ou o processo pai — não o desenho. Um segundo Início é um erro assinalado na barra de avisos.
O processo está Ligado mas não arranca. Verifica três coisas: se a Entidade está escolhida; se a concorrência está em Só uma de cada vez e já existe uma execução viva sobre esse registo; e se quem manda arrancar está mesmo a chamar o processo — ver Tarefas para pessoas, secção "Formas de arranque".