Trilha 03 · DMN e regras de negócio
DMN × gateway: quando usar cada um
Nem toda decisão merece uma tabela. Aqui estão os critérios práticos para escolher entre condição no gateway, regra DMN, ou os dois juntos — com exemplos de empresa e de órgão público.
A regra de ouro
O gateway decide o caminho. A regra decide o valor.
O gateway sempre existe quando o fluxo se divide — ele é quem manda o token por um caminho ou outro. A pergunta não é “gateway ou DMN”, e sim: a condição do gateway é simples o suficiente para ficar nele, ou ela esconde uma política de negócio que merece uma tabela?
Fique só no gateway quando…
- A pergunta é binária e estável: “Aprovado?”, “Documentação completa?”, “Cliente desistiu?”.
- A resposta vem direto de uma pessoa num formulário (um campo “Decisão: aprovar / devolver”).
- A condição testa o resultado de um bloco do sistema:
${documentGateOutcome == 'CANCELLED'},${integrationOutcome == 'REJECTED'}. - Não há números mágicos nem listas de casos.
Exemplo real: no fluxo “Venda de veículo novo”, o gateway “Após autorizar” testa ${acao == 'pendencia'} — a gerente escolheu “pendência” no formulário. Não há política escondida ali.
Use uma regra DMN quando…
- A condição tem limites numéricos que alguém pode mudar (alçadas, valores de dispensa, faixas de pontuação).
- A decisão depende de várias variáveis combinadas (tipo de ação e valor da causa).
- Há muitos casos (mais de três saídas, ou listas de tipos).
- O resultado não é um caminho, e sim um dado: um prazo, um cargo responsável, uma lista de documentos, um percentual.
- A regra tem dono fora da TI (jurídico, controladoria, diretoria) que precisa ler e validar.
- A regra está numa norma que muda (decreto, portaria, política comercial).
Cada número que você escreve dentro de um gateway é uma dívida: quando ele mudar, você publica uma versão nova do fluxo, e os processos que já estão rodando continuam com o número antigo. Numa regra DMN publicada, o novo número vale na próxima avaliação de todos os processos. Isso também é um risco — por isso a regra precisa de dono e de teste — mas é um risco controlado e visível.
O padrão combinado
Na prática, o melhor desenho quase sempre combina os dois: regra calcula → gateway roteia.
O gateway “Risco?” ficou trivial: três condições curtas. Toda a política de crédito (renda, valor, histórico) está na tabela.
E quando o resultado da regra não é um caminho, às vezes você nem precisa de gateway:
- Prazo: regra
prazoPorAto→ bloco “Calcular prazo” → prazo da tarefa. Nenhum gateway. - Responsável: regra
alcadaDesconto→ saída Cargo → grupo candidato${aprovador}da tarefa. Nenhum gateway. - Documentos: regra
docsPorTipoDeVenda→ “Itens a pedir” da Solicitação de documentos. Nenhum gateway.
Exemplos lado a lado
| Situação | Melhor escolha | Por quê |
|---|---|---|
| “Gestor aprovou?” | Gateway | Resposta direta de uma pessoa |
| Alçada de aprovação de compras por valor | DMN (saída Cargo) | Limites mudam; resultado é um responsável |
| Prazo de resposta por tipo de requerimento | DMN + Calcular prazo | Tabela com muitos tipos; resultado é um número |
| Documentos exigidos para licença por tipo de atividade | DMN COLLECT | Resultado é uma lista |
| “Documentos aprovados ou cancelados?” | Gateway | Testa o resultado de um bloco do sistema |
| Classificação de prioridade (idade, deficiência, ordem judicial) | DMN UNIQUE + gateway | Várias variáveis; base legal anotada nas linhas |
| “Venda direta da fábrica ou pela concessionária?” | Gateway | Duas opções estáveis escolhidas no formulário |
Em órgãos públicos, prefira DMN sempre que a regra vier de ato normativo (lei, decreto, portaria, resolução). Coloque a referência na anotação de cada linha. Quando a norma mudar, a equipe publica nova versão da regra com a referência atualizada — e a linha do tempo de cada processo mostra qual versão foi aplicada.
Cuidados com a vigência imediata
Como a regra publicada vale para a próxima avaliação de todos os processos, pense na transição:
- Processos que já passaram pela tarefa de regra mantêm a decisão antiga (fica gravada).
- Processos que ainda vão passar usarão a regra nova, mesmo que tenham começado antes da mudança.
Se a norma disser “aplica-se apenas aos pedidos protocolados após a data X”, modele isso: acrescente uma entrada de data (por exemplo, data do protocolo) e linhas que distinguem o antes e o depois.
Duas ou mais marcadas: transforme em regra.
Resumo
- Gateway decide o caminho; regra decide o valor.
- Use só gateway para perguntas binárias estáveis e para testar resultados de blocos.
- Use DMN para limites, combinações, listas, responsáveis dinâmicos e regras com dono de negócio.
- O padrão mais comum é regra calcula → gateway roteia (ou regra alimenta prazo, responsável e documentos diretamente).
- Planeje a transição: a nova versão vale na próxima avaliação de todos os processos.