Script (JavaScript)
Saiba mais sobre o conector Script (JavaScript) e saiba como usá-lo na Digibee Integration Platform.
O conector Script (JavaScript) permite executar trechos de código JavaScript, também conhecido como ECMAScript.
Parâmetros
Dê uma olhada nas opções de configuração do conector. Parâmetros suportados por expressões Double Braces estão marcados com (DB)
.
Code
Campo onde o código JavaScript deve ser inserido.
var currentDate = moment.tz(new Date(), "America/Sao_Paulo"); output = {currentDate: currentDate.format()};
String
Script Timeout
Tempo para que o script expire (em milissegundos).
10000
Inteiro
Use Experimental Runtime (Improved Performance)
Habilita o runtime experimental para maior desempenho e consistência. Este parâmetro ainda está em beta.
False
Booleano
Fluxo de mensagens
Entrada
O conector Script (JavaScript) pode receber parâmetros de conectores prévios através do objeto "body"
. Ou seja, caso a saída do conector anterior ao Script (JavaScript) tiver uma saída que inclui um objeto chamado "body"
, é possível acessá-lo diretamente no código do Script (JavaScript).
body: objeto importado para o escopo do código do Script (JavaScript).
Por exemplo, caso a entrada seja:
{
"body": {
"company": "Digibee"
}
}
Então no campo Code será possível fazer algo como:
var x = body.company;
Saída
O código executado no conector pode produzir uma saída, desde que ela seja atribuída à variável global chamada output
.
success:
"true"
se a execução do código foi bem sucedida; caso contrário,"false"
.output: saída personalizável do conector.
Por exemplo, se você quiser que a saída do conector Script (JavaScript) seja 'Hello world'
basta atribuí-lo à variável output
:
output = 'Hello world';
O resultado após executar o pipeline será:
{
"success": true,
"output": "Hello world"
}
Também é possível construir um objeto JSON como saída:
output = { "company": "Digibee" }
O resultado após executar o pipeline será:
{
"success": true,
"output": {
"company": "Digibee"
}
}
Caso algum erro ocorra durante a execução do script, a seguinte saída é apresentada após a execução do pipeline:
{
"success": false,
"error": "Error message"
}
Por questões de segurança, não é possível executar nenhuma função que faça uma chamada externa a partir do conector Script (JavaScript), como por exemplo fetch()
ou XMLHttpRequest()
. Também não é possível importar bibliotecas usando require
.
As seguintes bibliotecas já estão disponíveis e podem ser utilizadas:
Lodash (variável global para utilizar lodash lib: 'lodash')
Moment Timezone (variável global para utilizar moment-timezone: 'moment')
Orientações de uso
Características do conector
O engine do conector Script (JavaScript) possui uma infraestrutura própria, que está localizada fora do pipeline. Isso significa que, ao executar código por meio deste conector, ocorre uma mudança de contexto do pipeline para sua infraestrutura.
Essa infraestrutura é compartilhada em todo o cluster da plataforma. Por esse motivo, é importante utilizá-la de forma consciente e moderada para evitar gargalos entre pipelines que dependem dela.
Recomendações e boas práticas
O conector Script (JavaScript) é comumente usado para transformação de dados e implementação de árvores de decisão, devido à sua versatilidade.
No entanto, sempre que possível, a Digibee Integration Platform recomenda usar conectores otimizados e incorporados ao pipeline para transformação e mapeamento de dados — como JOLT, JSLT, JSON Transformer e JSON Generator. Isso reduz o risco de gargalos de processamento que podem ocorrer com o Script (JavaScript).
Use o conector Script (JavaScript) principalmente em casos em que o JavaScript é a única opção viável.
Dicas de desempenho e uso de recursos
Para garantir uma execução estável e eficiente, siga estas boas práticas e evite causas comuns de sobrecarga de CPU/memória:
Limite o tamanho de entrada por execução: Evite processar conjuntos de dados muito grandes em uma única execução.
Prefira abordagens iterativas: Use loops em vez de recursão se a profundidade da recursão puder crescer significativamente.
Evite clonagem profunda em caminhos críticos: Use cópias superficiais ou compartilhamento estrutural sempre que possível para reduzir o uso de memória.
Use operações Lodash eficientes: Prefira
_.forEach
ou_.map
com iteradores simples; evite_.chain
desnecessário em grandes conjuntos de dados.Valide a lógica de data/hora: Trate cuidadosamente os casos de fuso horário; prefira UTC sempre que possível.
Evite cálculos pesados ou loops sem limites: Loops infinitos ou longos, iterações aninhadas grandes ou recursão profunda sem casos base podem sobrecarregar o engine.
Cuidado com JSON e regex: Parseamentos/stringify repetidos de objetos JSON grandes ou operações regex pesadas em strings grandes podem impactar o desempenho.
Monitore a criação de objetos: Clonagens, merges ou criação excessiva de objetos temporários em loops críticos aumentam o uso de memória.
Gerencie entradas/saídas grandes: Payloads JSON muito grandes podem exceder limites de memória ou causar pausas longas de garbage collection.
Seguir essas recomendações ajuda a reduzir o risco de interrupções nos pipelines, melhora o desempenho e garante que o conector Script (JavaScript) funcione de maneira eficiente.
Atualizado
Isto foi útil?