Autorreferência
O runner de Autorreferência (BDOT_AUTORREFERENCIA) é o componente core responsável por permitir a composição e modularização de processos na plataforma. Ele permite que uma etapa dentro de um fluxo acione a execução de outro fluxo (ou outra versão do mesmo fluxo) publicado no ecossistema, funcionando como uma chamada de subfluxo ou função reutilizável.
O runner intercepta os parâmetros da etapa, consulta o inicializador do fluxo alvo e realiza uma chamada interna para a Engine de execução. O resultado devolvido pelo subfluxo é anexado ao histórico de execução do fluxo principal.
Ciclo de Funcionamento
Section titled “Ciclo de Funcionamento”-
Extração de Parâmetros
O runner lê as configurações da etapa e aplica a interpolação de variáveis para identificar o fluxo alvo, versão, parâmetros de consulta, cabeçalhos de autorização e payload do corpo.
-
Resolução de Inicializador
Consulta a definição do fluxo alvo no cache para identificar o verbo HTTP correto exigido como inicializador.
-
Invocação Interna
Monta o contexto da requisição e aciona a Engine de forma síncrona ou assíncrona.
-
Tratamento do Retorno
Aguarda a conclusão do subfluxo e registra a resposta obtida (status, cabeçalhos, corpo e duração) no histórico da etapa para uso pelos nós seguintes.
Dispara o subfluxo em segundo plano (fire-and-forget) e devolve imediatamente a confirmação de acionamento.
Parâmetros e Formulário de Configuração
Section titled “Parâmetros e Formulário de Configuração”Os parâmetros deste runner são configurados no formulário do Editor Visual e serializados no mapa de definição da etapa:
| Campo no Formulário / Atributo JSON | Tipo | Obrigatório | Descrição |
|---|---|---|---|
bdot:fluxo |
String |
Sim | Identificador/código único do fluxo alvo a ser acionado. |
bdot:versao |
String |
Sim | Tag da versão do fluxo alvo que deve ser executada (ex: 1.0.0). |
bdot:async |
Boolean |
Não | Define se a chamada ao subfluxo será feita de forma assíncrona (true) ou síncrona (false). Padrão: false. |
bdot:configAuth |
Boolean |
Não | Habilita o repasse de token de autorização JWT para o subfluxo. |
bdot:autorizacao |
String |
Condicional | Token JWT ou expressão de interpolação (ex: ${entrada.auth.token}). Obrigatório se bdot:configAuth = true. |
bdot:configQuery |
Boolean |
Não | Habilita o envio de parâmetros de consulta (query params) para o subfluxo. |
bdot:queryParams |
String (JSON) |
Condicional | Documento JSON com os query params a serem repassados. Obrigatório se bdot:configQuery = true. |
bdot:configBody |
Boolean |
Não | Habilita o envio de payload no corpo da requisição para o subfluxo. |
bdot:body |
String (JSON) |
Condicional | Documento JSON ou texto com o corpo enviado ao subfluxo. Suporta interpolação de variáveis. Obrigatório se bdot:configBody = true. |
Exemplo de Configuração JSON da Etapa
Section titled “Exemplo de Configuração JSON da Etapa”Exemplo da estrutura das chaves bdot:* geradas pelo Editor Visual para este runner:
{ "bdot:fluxo": "fluxo_calculo_impostos_001", "bdot:versao": "1.0.0", "bdot:async": false, "bdot:configAuth": true, "bdot:autorizacao": "${entrada.auth.token}", "bdot:configQuery": false, "bdot:configBody": true, "bdot:body": "{\"valorTotal\": ${dados.pedido.valorTotal}, \"uf\": \"${dados.cliente.uf}\"}"}