SUBFLOW
SUBFLOWControle de fluxo
Chama uma regra publicada como parte da execução atual. A regra filha declara um contrato de entrada e saída, e o chamador mapeia valores para esse contrato.
Configuração
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
ruleIdRegra chamada | REFERENCE | Sim | Regra publicada com gatilho SUBFLOW. |
inputMappingMapeamento de entrada | MAP | Sim | Todo input obrigatório do contrato precisa estar mapeado antes da publicação. |
O nó SUBFLOW chama uma regra publicada como parte da execução atual. A regra filha declara um contrato de entrada e saída; o chamador mapeia valores para esse contrato.
Quando usar
- reutilizar uma validação em vários fluxos;
- separar uma automação extensa em responsabilidades menores;
- encapsular uma sequência com contrato estável;
- testar uma parte do processo isoladamente.
Como funciona
Processo A↓SUBFLOW↓Processo B
- A regra filha é publicada com gatilho
SUBFLOW. - O gatilho declara nomes e tipos dos inputs e outputs.
- O nó chamador escolhe essa regra e mapeia os inputs obrigatórios.
- A regra filha termina em
SUBFLOW_RETURNe devolve somente outputs declarados. - O chamador incorpora os resultados ao seu contexto e continua.
Inputs
Os inputs obrigatórios do contrato precisam estar mapeados antes da publicação. Use valores literais ou referências disponíveis no contexto do chamador.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
customerIdCliente | STRING | Sim | Identificador recebido pelo subfluxo. |
amountValor | NUMBER | Sim | Valor que será analisado. |
Outputs
O SUBFLOW_RETURN só pode retornar chaves declaradas no contrato da regra filha.
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
approvedAprovado | BOOLEAN | Sim | Resultado calculado pela regra filha. |
reasonMotivo | STRING | Não | Justificativa quando aplicável. |
Configuração
- Crie a regra filha e selecione o gatilho de subfluxo.
- Declare o contrato de entrada e saída.
- Adicione pelo menos um nó
SUBFLOW_RETURN. - Publique a regra filha.
- Na regra chamadora, adicione
SUBFLOW, escolha a regra e mapeie cada input obrigatório.
Exemplo
json
{
"type": "SUBFLOW",
"ruleId": 42,
"inputMapping": {
"customerId": "{{ context.customer.id }}",
"amount": "{{ context.order.total }}"
}
}Depois do retorno, a regra chamadora pode direcionar o fluxo usando approved.
Tratamento de erros
- a publicação falha se faltar um input obrigatório;
- a regra filha precisa possuir pelo menos um
SUBFLOW_RETURN; - outputs não declarados são rejeitados;
- ciclos entre regras devem ser removidos antes da publicação;
- uma falha da regra filha segue o tratamento de erro configurado no nó chamador.
Boas práticas
- dê ao subfluxo uma responsabilidade única;
- mantenha contratos pequenos e estáveis;
- não compartilhe dados implicitamente: declare o que entra e o que sai;
- publique a regra filha antes de referenciá-la em produção;
- versionar mudanças incompatíveis preserva chamadores existentes.