Script (JavaScript)

Descubra mais sobre o componente Script (JavaScript) e saiba como usá-lo na Digibee Integration Platform.

O componente 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 componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

ParâmetroDescriçãoValor padrãoTipo de dado

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

Fluxo de mensagens

Entrada

O componente Script (JavaScript) pode receber parâmetros de componentes prévios através do objeto "body". Ou seja, caso a saída do componente 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 componente 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 componente.

Por exemplo, se você quiser que a saída do componente 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 componente 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 motor do connector Script (JavaScript) possui uma infraestrutura própria, externa ao pipeline. Isso significa que ao executar um código através desse conector, ocorre uma mudança de contexto do pipeline para a sua infraestrutura.

Essa infraestrutura é compartilhada por todo cluster da plataforma. Por esse motivo, é importante o uso consciente e moderado para que não gere gargalos entre os pipelines que o utilizam.

O aumento da capacidade de recursos dessa infraestrutura é monitorado e gerenciado pelo time de infraestrutura da Digibee Integration Platform.

Recomendações e boas práticas

Devido a versatilidade do conector Script (JavaScript), é comum que seu uso seja voltado para transformação de dados e implementação de árvores de decisões.

No entanto, a Digibee Integration Platform recomenda o uso de conectores específicos para transformação e mapeamento de dados - tais como Transformer (JOLT), JSLT, JSON Transformer e JSON Generator (Mock) - sempre que possível.

Tais conectores são otimizados, embarcados no pipeline e, portanto, exclusivos. Isso evita o risco de gerar um gargalo de processamento, o que pode acontecer com o Script (JavaScript).

O uso do conector Script (JavaScript) deve ser feito preferencialmente em situações específicas em que o JavaScript seja a única alternativa.

Atualizado