Trilha 05 · Área da empresa
Regras de negócio e calendário
Duas ferramentas que tiram do fluxo o que muda com frequência — as regras de decisão (alçadas, prazos por tipo, documentos exigidos) e o calendário de dias úteis. Aqui você aprende a configurar ambas no Autoflow e a ligá-las ao fluxo.
Esta lição é sobre como fazer no Autoflow. A teoria de DMN (hit policies, FEEL, quando usar) está na trilha 03.
Parte 1 — Regras de negócio
Onde fica e quem pode
Administração › Modelagem › Regras. Criar, editar e Testar exigem process.model; Publicar, arquivar e excluir exigem process.publish.
A lista diz: “Tabelas de decisão usadas pelo bloco Regra de negócio. A versão publicada vale na próxima avaliação de todos os processos.” Tags possíveis: Rascunho, Arquivada, Sem uso, Pacote do segmento.
O editor
O editor é próprio do Autoflow (não é o dmn-js) e grava DMN 1.3 padrão. Uma regra = uma tabela de decisão. Não há diagramas de requisitos (DRD) nem expressões literais.
- Entradas (o que a regra lê) — tipos Texto, Número, Sim/não, Data, Unidade.
- Saídas (o que a regra grava) — Texto, Número, Sim/não, Data, Cargo (conferido na publicação) e Documento (lista de itens, só com “Junta o resultado de todas”).
- “Quando mais de uma linha casa”: Vale a primeira linha (FIRST), Só uma linha pode casar (UNIQUE) ou Junta o resultado de todas (COLLECT, exige exatamente uma saída).
- Botões Testar (avalia o rascunho no motor real), Salvar rascunho e Publicar.
Em FIRST e UNIQUE, a publicação avisa se faltar a linha “senão” (todas as entradas -). Coloque-a sempre: sem ela, um caso não previsto devolve vazio e o processo pode seguir um caminho inesperado.
Brinque com as regras reais dos pacotes
Os exemplos abaixo são as regras que vêm prontas nos pacotes Concessionária e Advocacia, mais um exemplo de setor público. Mude os dados do caso, edite células, troque a política.
Ligar a regra ao fluxo
- Publique a regra. Fluxo não publica com regra sem versão publicada.
- No editor de fluxos, coloque o bloco Regra de negócio e escolha a regra no único seletor.
- Garanta que as entradas existem como variáveis antes do bloco — normalmente campos de formulário com a mesma chave (ex.:
percentualDesconto). - Use as saídas depois: cada saída vira uma variável simples do processo. Ex.: gateway
${precisaAprovacao == true}, ou Candidate groups${aprovador}quando a saída é do tipo Cargo. - Em COLLECT, o resultado vira texto separado por vírgula — pronto para “Itens a pedir” da Solicitação de documentos (
${docsExigidos}).
Veja um fluxo real do pacote Advocacia: a regra define o prazo e o calendário calcula a data.
Vigência: atenção redobrada
As regras usam sempre a versão mais recente publicada (latest). Diferente do fluxo, uma regra nova vale na próxima avaliação de todos os processos, inclusive os que já estão em andamento. O que já foi decidido fica registrado.
É exatamente o motivo de existir DMN: mudar a alçada de 5% para 7% deve valer já, para todos, sem republicar fluxos e sem esperar processos antigos terminarem. O preço é cuidado: teste antes de publicar. E com a regra em uso, uma versão nova não pode remover, renomear nem trocar o tipo de uma saída (erro rule_signature_incompatible) — isso quebraria os fluxos que a usam.
Onde ver a decisão
Na Linha do tempo do processo aparece “Regra X vN · entradas → saídas (linha N)”. Ensine o cliente a olhar ali quando perguntarem “por que foi para a diretoria?”. limitação Valores do tipo Unidade e Cargo ainda aparecem como chave técnica.
Parte 2 — Calendário de dias úteis
Por que existe
Prazos de negócio raramente são em dias corridos. Prazos processuais (CPC), prazos administrativos e SLAs contratuais costumam contar dias úteis, e feriados locais mudam tudo. O Autoflow tem um calendário por unidade e um bloco que calcula a data final.
O que já vem e o que você cadastra
- Automático: sábados, domingos e feriados nacionais (1/1, Tiradentes, 1/5, 7/9, 12/10, 2/11, 15/11, 20/11, 25/12 e Sexta-feira Santa).
- Datas móveis (ligáveis no grupo): Carnaval (segunda e terça), Quarta-feira de Cinzas, Corpus Christi.
- Datas cadastradas por unidade: Nova data com Nome, Data, “Até (opcional, para recesso)” e “Repete todo ano”. Herdam de cima para baixo: grupo → matriz → filial.
Administração › Organização › Calendário (org.structure; matriz e filial editam o que é delas). A tela tem Simular prazo (data base + dias úteis → Calcular) e a lista dos dias não úteis dos Próximos 12 meses.
A regra de contagem
Mesma lógica do CPC: o dia do começo não conta; se o fim cair em dia não útil, vai para o próximo dia útil; 0 dias devolve o próximo dia útil. Fuso fixo America/Sao_Paulo.
Usar no fluxo: bloco Calcular prazo (dias úteis)
| Entrada | Significado |
|---|---|
calendarStart |
Data base. Vazio = hoje. Ex.: ${dataIntimacao} |
calendarDays |
Obrigatório. Número fixo ou variável, ex.: ${prazoDias} |
calendarOutput |
Nome da saída (padrão prazo) |
Saídas: prazo (data aaaa-mm-dd) e prazoFim (…T23:59:59-03:00). Use ${prazoFim} no Due date da tarefa seguinte, ou num timer. A unidade usada é a filial do processo (ou a matriz, ou o grupo).
Mudar o calendário depois não recalcula prazos já gravados. E não há horas úteis nem fuso por unidade pendente. Cadastre os feriados municipais e estaduais antes do go-live.
Para órgãos públicos, o calendário é crítico: ponto facultativo, recessos e feriados municipais afetam prazos legais (Lei 9.784/99 e leis locais de processo administrativo). Peça ao cliente o decreto de feriados do ano e cadastre na unidade correta. Recesso de fim de ano: use “Até” + “Repete todo ano”.
Resumo
- Regras ficam em Modelagem › Regras; uma tabela por regra; políticas FIRST, UNIQUE, COLLECT.
- O bloco Regra de negócio transforma cada saída em variável; saídas tipo Cargo podem definir o responsável.
- Regra publicada vale na próxima avaliação de todos os processos; a assinatura não pode quebrar.
- O calendário combina feriados nacionais, datas móveis e datas por unidade, com regra do CPC.
- Calcular prazo grava
prazoeprazoFimpara usar como prazo de tarefa.