Buscar K
Aparência
Aparência
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.
| Item | Regra |
|---|---|
| Ordem | roda antes dos outros nós; não precisa de ligação com os nós que usam as variáveis |
| Nome de variável | letras, números e sublinhado; nome igual ao de uma variável existente a substitui, inclusive as de sistema como StartDate |
SkipFlow | devolvido com valor "true", encerra o Dataflow com sucesso, sem rodar os outros nós; o log mostra SkipFlow detectado - finalizando flow com sucesso. |
DeletePredicate | texto 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 editor | as variáveis devolvidas ficam nas Variáveis de Desenvolvimento do Dataflow |
| Vários Configuradores | sem ordem garantida entre si |
| Item | Regra |
|---|---|
| Recebe | as variáveis como variáveis do script, com o tipo convertido; as entradas como DataFrames input_0, input_1, com colunas em maiúsculas |
| Devolve | o dicionário variables, obrigatório |
| Estado | flow_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 |
| Processo | roda num processo separado do Agente |
| Agente ETL | qualquer versão |
O código se edita pelo botão Editar Código JavaScript, na seção Script do nó.
| Item | Regra |
|---|---|
| Recebe | uma 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 entrada | texto, número, booleano ou null; data chega como texto, "2026-10-29" à meia-noite ou "2026-10-29 10:30:00" |
| Devolve | um objeto atribuído a variables, sem return; texto, número, booleano, null, ou objeto e array convertidos em JSON |
| Estado | pending_state, com a mesma regra do Python |
| Log | console.log(...) e print(...) escrevem no log do Dataflow |
| Biblioteca | JavaScript padrão, com Temporal, Intl, Map, Set, JSON, RegExp; sem require, import, fetch, temporizadores, arquivo ou rede |
| Agente ETL | 1.29.14 ou mais novo |
| Aba | O que tem |
|---|---|
| Requisição | URL, método, query, cabeçalhos e corpo |
| Autenticação | Nenhuma, Basic Auth, Bearer Token ou API Key |
| Variáveis | uma linha por variável, com nome e JSONPath; Adicionar variável |
| Opções | tempos limite, redirecionamento, SSL; a falha da requisição sempre falha o nó |
| Retry | repetiçã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 JSON | Vira |
|---|---|
texto, número, true/false | o mesmo tipo |
| objeto ou lista | texto com o JSON compacto |
| data em texto | o 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.
import datetime
variables = {
"DataCorte": (datetime.date.today() - datetime.timedelta(days=1)).strftime("%Y-%m-%d"),
"Filiais": ",".join(input_0["CODIGO"].astype(str)),
}const desde = flow_state?.ultimaData ?? "2026-01-01";
variables = { DESDE: desde };
pending_state = { ultimaData: Temporal.Now.plainDateISO("America/Sao_Paulo").toString() };| Variável | JSONPath |
|---|---|
ACCESSTOKEN | $.access_token |
EXPIRESIN | $.expires_in |
| Limite | Configurador JS |
|---|---|
| Tempo | 30 s |
| Memória | 256 MB |
| Linhas por entrada | 10.000 |
| Recursão | limitada |
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.