Skip to content

Script JS

O runner de Script JS (SCRIPT_JS) é o componente core responsável por executar código JavaScript customizado dentro do pipeline de orquestração.

Ele oferece flexibilidade para implementar lógicas de negócio complexas, transformações de dados de alta performance, cálculos, manipulações de arrays e condicionais diretamente no fluxo sem a necessidade de criar um novo microsserviço externo.


  1. Carregamento dos Namespaces

    O runner carrega o estado da sessão e prepara os quatro objetos fundamentais de contexto como JSON Strings: $dados, $historico, $entrada e $variaveis.

  2. Isolamento em Pool

    Para garantir alta performance e evitar overhead de compilação, o runner obtém um contexto de execução JavaScript a partir de um pool otimizado mantido em memória.

  3. Execução do Script

    O código definido em bdot:script é compilado e envolvido dinamicamente em uma função onde o script manipula diretamente a estrutura de $dados.

  4. Devolução do Estado

    O resultado da alteração feita no objeto $dados é serializado de volta e persistido no estado da sessão do fluxo. Se ocorrer algum erro de sintaxe ou execução no script, a sessão é interrompida com exceção.


Variáveis Disponíveis no Contexto do Script

Section titled “Variáveis Disponíveis no Contexto do Script”

Dentro do bloco de código JavaScript enviado no atributo bdot:script, o desenvolvedor tem acesso nativo aos seguintes objetos:

`$dados`

Objeto principal de dados da sessão. Qualquer propriedade adicionada ou modificada em $dados durante a execução do script ficará salva para leitura em nós subsequentes.

`$historico`

Objeto de leitura contendo o histórico de retornos das etapas executadas anteriormente.

`$entrada`

Objeto de leitura com os parâmetros da requisição de entrada (body, queryParams, auth).

`$variaveis`

Objeto de leitura com os pares chave/valor das Variáveis de Ambiente do fluxo.


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 Editor Visual e salvos na definição da etapa:

Campo no Formulário / Atributo JSON Tipo Obrigatório Descrição
bdot:script String Sim Código fonte JavaScript a ser executado no contexto da etapa (deve manipular diretamente o objeto $dados).

Exemplo da estrutura das chaves bdot:* geradas para este runner:

definicao.json
{
"bdot:script": "if ($entrada.body.valor > 1000) { $dados.categoria = 'PREMIUM'; $dados.desconto = $entrada.body.valor * 0.1; } else { $dados.categoria = 'PADRAO'; $dados.desconto = 0; } $dados.processadoEm = new Date().toISOString();"
}