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.