Skip to content

Configuradores ​

Tipo
Referência
Para
Engenharia de dados, Desenvolvedor
Na tela
HorusETL › Data Flows › editor do Dataflow › Configurador

Configuradores são nós que só produzem variáveis. Cada um roda antes do resto do Dataflow, junto com os nós ligados à sua entrada, e o que devolve vira {NOME} para os nós seguintes. Exemplos de uso estão em Calcular variáveis na hora da execução.

Campos ​

Comum aos três ​

ItemRegra
Ordemroda antes dos outros nós; não precisa de ligação com os nós que usam as variáveis
Nome de variávelletras, números e sublinhado; nome igual ao de uma variável existente a substitui, inclusive as de sistema como StartDate
SkipFlowdevolvido com valor "true", encerra o Dataflow com sucesso, sem rodar os outros nós; o log mostra SkipFlow detectado - finalizando flow com sucesso.
DeletePredicatetexto não vazio troca a condição de exclusão que roda antes da gravação no HorusDW e vence a Gravação escolhida; ver Exclusões
Teste no editoras variáveis devolvidas ficam nas Variáveis de Desenvolvimento do Dataflow
Vários Configuradoressem ordem garantida entre si

Configurador Python ​

ItemRegra
Recebeas variáveis como variáveis do script, com o tipo convertido; as entradas como DataFrames input_0, input_1, com colunas em maiúsculas
Devolveo dicionário variables, obrigatório
Estadoflow_state traz o que a execução anterior guardou; o que o script põe em pending_state é guardado só se o Dataflow inteiro terminar com sucesso
Processoroda num processo separado do Agente
Agente ETLqualquer versão

Configurador JS ​

O código se edita pelo botão Editar Código JavaScript, na seção Script do nó.

ItemRegra
Recebeuma global por variável, com o nome dela; entradas como arrays de objetos input_0, input_1, colunas em maiúsculas; flow_state
Tipos de entradatexto, número, booleano ou null; data chega como texto, "2026-10-29" à meia-noite ou "2026-10-29 10:30:00"
Devolveum objeto atribuído a variables, sem return; texto, número, booleano, null, ou objeto e array convertidos em JSON
Estadopending_state, com a mesma regra do Python
Logconsole.log(...) e print(...) escrevem no log do Dataflow
BibliotecaJavaScript padrão, com Temporal, Intl, Map, Set, JSON, RegExp; sem require, import, fetch, temporizadores, arquivo ou rede
Agente ETL1.29.14 ou mais novo

Configurador HTTP ​

AbaO que tem
RequisiçãoURL, método, query, cabeçalhos e corpo
AutenticaçãoNenhuma, Basic Auth, Bearer Token ou API Key
Variáveisuma linha por variável, com nome e JSONPath; Adicionar variável
Opçõestempos limite, redirecionamento, SSL; a falha da requisição sempre falha o nó
Retryrepetição em caso de falha, inclusive 401 e 403

Faz uma chamada só, sem paginação nem laço de entrada, e não recebe entrada de outros nós. Os campos aceitam variáveis, como {ENV_CLIENT_SECRET}. O dialeto de JSONPath é o mesmo do nó Requisição HTTP.

Valor no JSONVira
texto, número, true/falseo mesmo tipo
objeto ou listatexto com o JSON compacto
data em textoo texto como veio, aceitando formato como {expires_at:unix} (Agente 1.29.3 ou mais novo)

Se qualquer linha falha, nenhuma variável muda e o Dataflow para. Contam como falha: JSONPath sem resultado, valor null ou vazio, resposta que não é JSON, resposta vazia e status fora de 2xx. Exige Agente ETL 1.29.0 ou mais novo.

Exemplo ​

python
import datetime

variables = {
    "DataCorte": (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y-%m-%d"),
    "Filiais": ",".join(input_0["CODIGO"].astype(str)),
}
js
const desde = flow_state?.ultimaData ?? "2026-01-01";
variables = { DESDE: desde };
pending_state = { ultimaData: Temporal.Now.plainDateISO("America/Sao_Paulo").toString() };
VariávelJSONPath
ACCESSTOKEN$.access_token
EXPIRESIN$.expires_in

Limites ​

LimiteConfigurador JS
Tempo30 s
Memória256 MB
Linhas por entrada10.000
Recursãolimitada

Mensagens do Configurador Python:

  • Nenhuma variável foi configurada pelo script.

Mensagens do Configurador JS:

  • O nó Configurador JS está sem código.
  • Nenhuma variável foi configurada pelo script. Preencha `variables = { NOME: valor }`.
  • `variables` precisa ser um objeto, como { NOME: valor }.
  • Erro no script JS (linha N): <mensagem>
  • Erro de sintaxe no script JS (linha N): <descrição>
  • O script JS passou do tempo limite de 30 s.
  • O script JS passou do limite de memória de 256 MB.
  • O script JS passou do limite de recursão (função chamando a si mesma sem fim?).
  • O input_N tem mais de 10000 linhas. O Configurador JS é para listas pequenas (bancos, empresas, parâmetros); para transformar dados em volume, use o nó SQL.

Mensagens do Configurador HTTP:

  • A variável 'X' não foi encontrada na resposta: o JSONPath 'Y' não retornou valor.
  • A variável 'X' veio vazia na resposta (JSONPath 'Y').
  • A resposta HTTP veio vazia; não há de onde extrair as variáveis.
  • A resposta HTTP não é um JSON válido (linha N, posição M). A mensagem não traz o corpo, para não expor um token.
  • Erro HTTP {status} ao acessar '{url}': {reason}. Com corpo de resposta de menos de 500 caracteres, ele vem junto, depois de Resposta:.

Num Agente ETL mais antigo que a versão mínima, o Dataflow falha com Processador de nome JSConfigurator não encontrado. ou Processador de nome HTTPConfigurator não encontrado.

O Configurador HTTP registra a URL de cada chamada no log. Segredo vai em cabeçalho ou corpo, nunca na query string.

Pelo Lumo CLI

Este recurso também pode ser criado e versionado em YAML. Veja a referência de flow.