AutoflowGuia do implantador
0 / 60
Buscar

Trilha 02 · BPMN na prática

Gateways (decisões e paralelismo)

Gateways controlam o caminho dos tokens. Eles decidem, dividem e juntam. São a parte do BPMN onde mais se erra — e onde um erro custa mais caro: processo travado ou executado em dobro.

Três gateways, três comportamentos

Exclusivo (XOR)

Só um caminho. Escolhe o primeiro cuja condição é verdadeira, ou o padrão.

Paralelo (AND)

Todos os caminhos, sem condição. Na junção, espera todos.

Inclusivo (OR)

Um ou mais, conforme as condições. Na junção, espera os que foram abertos.

Todo gateway pode ter dois papéis: dividir (uma entrada, várias saídas) e juntar (várias entradas, uma saída). O comportamento muda conforme o papel — e é isso que o simulador abaixo mostra.

Simulador: veja os tokens

Escolha o gateway de abertura e o de junção, marque as condições verdadeiras e envie o token. Faça estes quatro experimentos, nesta ordem:

  1. XOR → XOR com só “Conferir estoque” marcado. Um token, um caminho, “Faturar” executa 1 vez. Correto.
  2. XOR → XOR desmarcando tudo e também “Tem fluxo padrão”. O token não tem para onde ir: incidente.
  3. AND → AND. Três tokens, a junção espera o mais lento, “Faturar” executa 1 vez. Correto.
  4. AND → XOR. Três tokens, a junção não espera: “Faturar” executa 3 vezes.
  5. Bônus: OR → AND com duas condições: a junção espera três tokens, mas só dois vêm. Deadlock.
SimuladorComo cada gateway move os tokens
Gateway de abertura (divide)
Gateway de junção (une)
Conferir estoqueConferir créditoConferir freteFaturar pedidoexecutou 0×
Escolha os gateways e clique em "Enviar token". Experimente abrir com AND e fechar com XOR.
Por que isso importa

Por que isso é tão grave na prática? No experimento 4, “Faturar pedido” rodando três vezes significa três notas fiscais para o mesmo pedido, ou três tarefas idênticas na caixa do financeiro. No experimento 5, o processo fica parado para sempre sem nenhum erro visível — ninguém percebe até o cliente reclamar. Esses dois defeitos são invisíveis no desenho para quem não pensa em tokens.

Gateway exclusivo em detalhe

É o gateway das decisões: “Aprovado?”, “Tipo de venda?”, “Valor acima de R$ 5 mil?”.

O gateway não decide nada sozinho

Um erro conceitual comum: desenhar um losango “Aprovar pedido?” sem uma tarefa antes. O gateway não é uma pessoa pensando; ele só lê variáveis que já existem. Quem decide é a tarefa anterior (o gestor marca “aprovado”) ou uma regra DMN. Por isso o padrão é sempre tarefa → gateway.

Escrevendo condições no Autoflow

As condições ficam nos fluxos de saída, em linguagem JUEL, entre ${ e }:

Campo do formulário Exemplo de condição Cuidado
Número ${valor > 5000} Sem aspas
Lista / Opções (radio) ${tipoVenda == 'VENDA_DIRETA'} Compare o valor da opção, não o rótulo; texto entre aspas simples
Caixa de seleção ${aprovado == true} Booleano, sem aspas
Resultado de documentos ${documentGateOutcome == 'CANCELLED'} Variável gravada pela Solicitação de documentos
Retorno de integração ${integrationOutcome == 'REJECTED'} Variável gravada pelo retorno externo
Regra prática do fluxo padrão

Marque como padrão o caminho mais comum (o “caminho feliz”) e coloque condições só nas exceções. Exemplo real do fluxo de venda: o gateway “Tipo de venda” testa só ${tipoVenda == 'VENDA_DIRETA'}; todo o resto segue o padrão “Concessionária”. Assim, se surgir um tipo novo de venda, o processo não trava.

Avaliação em ordem

Se mais de uma condição for verdadeira em um exclusivo, o motor segue a primeira avaliada — e você não controla bem essa ordem pelo desenho. Por isso, condições de um exclusivo devem ser mutuamente exclusivas (valor <= 5000 e valor > 5000, nunca valor > 1000 e valor > 5000).

Gateway paralelo em detalhe

Use quando atividades independentes podem acontecer ao mesmo tempo. O ganho é direto: o tempo total passa a ser o do caminho mais lento, não a soma de todos.

No fluxo real Venda de veículo novo, depois da nota fiscal, o gateway “Depois da nota” abre dois ramos (acessórios e liberações do financeiro/comercial) e o gateway “Pronto para entregar” espera os dois antes da entrega.

Gateway inclusivo

Use quando a combinação de caminhos varia caso a caso. Exemplo: um pedido de licença pode precisar de parecer ambiental, jurídico, ambos ou nenhum além do de engenharia.

No Autoflow

O inclusivo funciona no Camunda, mas nenhum fluxo de referência do Autoflow o usa e o editor não tem validação específica. Para o caso mais comum — “quais documentos pedir conforme o caso” — o Autoflow tem um caminho mais simples: uma regra DMN com política COLLECT devolve a lista de documentos, e a Solicitação de documentos pede só esses itens.

Resumo dos padrões

Padrão Use Nunca
Decisão Tarefa → XOR com fluxo padrão XOR sem padrão; XOR sem tarefa antes
Paralelo AND abre → AND fecha AND abre → XOR fecha
Combinação variável OR abre → OR fecha, ou DMN COLLECT OR abre → AND fecha
Juntar alternativas XOR (ou ligar direto na próxima tarefa) AND para juntar caminhos de um XOR

Resumo

  • XOR escolhe um; AND abre todos e espera todos; OR abre os verdadeiros e espera os abertos.
  • Feche sempre com o mesmo tipo que abriu.
  • Todo XOR precisa de fluxo padrão, e as condições devem ser mutuamente exclusivas.
  • Gateway não decide: lê variáveis produzidas por uma tarefa ou regra antes dele.
  • No Autoflow, condições usam JUEL e comparam o valor das opções dos formulários.
QuizVerifique seu entendimento0/5 respondidas · 0 certas
1.Um AND abre três caminhos e um XOR os junta. A tarefa após a junção executa quantas vezes?
2.Gateway exclusivo, nenhuma condição verdadeira, sem fluxo padrão. O que acontece no Autoflow?
3.O campo tipoVenda tem a opção com rótulo "Venda direta" e valor VENDA_DIRETA. Qual condição está certa?
4.Condições "valor > 1000" e "valor > 5000" no mesmo XOR. Qual o problema?
5.Qual alternativa do Autoflow ao gateway inclusivo para pedir documentos conforme o caso?