Skip to content

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

CampoTipoObrigatórioDescrição
ruleIdRegra chamadaREFERENCESimRegra publicada com gatilho SUBFLOW.
inputMappingMapeamento de entradaMAPSimTodo input obrigatório do contrato precisa estar mapeado antes da publicação.
Ver como JSON

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 ​

A regra chamadora mapeia inputs, aguarda a execução filha e recebe outputs declarados.
  1. A regra filha é publicada com gatilho SUBFLOW.
  2. O gatilho declara nomes e tipos dos inputs e outputs.
  3. O nó chamador escolhe essa regra e mapeia os inputs obrigatórios.
  4. A regra filha termina em SUBFLOW_RETURN e devolve somente outputs declarados.
  5. 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.

CampoTipoObrigatórioDescrição
customerIdClienteSTRINGSimIdentificador recebido pelo subfluxo.
amountValorNUMBERSimValor que será analisado.

Outputs ​

O SUBFLOW_RETURN só pode retornar chaves declaradas no contrato da regra filha.

CampoTipoObrigatórioDescrição
approvedAprovadoBOOLEANSimResultado calculado pela regra filha.
reasonMotivoSTRINGNãoJustificativa quando aplicável.

Configuração ​

  1. Crie a regra filha e selecione o gatilho de subfluxo.
  2. Declare o contrato de entrada e saída.
  3. Adicione pelo menos um nó SUBFLOW_RETURN.
  4. Publique a regra filha.
  5. 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.

Veja também ​

Documentação pública do iBPMS.