Pular para o conteúdo principal

Script

1. Visão Geral

O componente Script (script) executa um trecho de código customizado (na linguagem de expressão MVEL) dentro do fluxo, permitindo lógica que os componentes prontos da plataforma não cobrem — cálculos específicos, formatação de datas, geração de identificadores, entre outros.

Use quando a lógica necessária é simples demais para justificar um componente dedicado, mas vai além do que um Add Variable ou Choice conseguem expressar. Evite abusar do Script para lógica de negócio complexa — isso dificulta a manutenção do fluxo por quem não conhece a linguagem MVEL.

2. Pré-requisitos

Conhecimento básico da linguagem MVEL (parecida com Java) para escrever a expressão.

3. Autenticação e Conexão

Não aplicável — processamento local.

4. Configuração / Operações Suportadas

O componente tem uma única operação: executar o código configurado.

CampoObrigatórioTipoDescriçãoExemplo
expressionSimTexto (código MVEL)Código a ser executado. Dentro dele, ficam disponíveis: body (o corpo da mensagem, como objeto se for JSON), headers (os headers da mensagem), variables (variáveis definidas por um Add Variable anterior, se houver), output (objeto usado para definir o resultado, com output.writeBody(...) e output.addHeader(chave, valor)), e func (funções utilitárias prontas, ver abaixo).Um script que calcula um valor e escreve no output

Funções utilitárias disponíveis em func

FunçãoDescrição
func.getCurrentTimestamp() / func.getCurrentTimestamp(fusoHorario)Retorna a data/hora atual.
func.getCurrentTimeMillis()Retorna o horário atual em milissegundos.
func.formatDate(timestamp, padrao)Formata uma data/hora conforme o padrão informado.
func.addDays(timestamp, dias)Soma dias a uma data.
func.base64Encode(texto) / func.base64Decode(texto)Codifica/decodifica em Base64.
func.md5(texto) / func.sha256(texto)Gera hash MD5/SHA-256 de um texto.
func.generateUuid()Gera um identificador único (UUID).
func.fromStorage(escopo, chave)Lê um valor gravado no Local Storage.
func.fromEnv(chave)Lê uma variável de ambiente da plataforma.

5. Exemplos Práticos

Exemplo simples: gerar um identificador único e adicioná-lo ao corpo da mensagem.

Entrada:

{
"pedido": { "cliente": "Maria Silva" }
}

Configuração do componente:

{
"componentName": "script",
"configurations": {
"expression": "output.writeBody([\"pedido\": body.pedido, \"protocolo\": func.generateUuid()]);"
}
}

Resposta:

{
"pedido": { "cliente": "Maria Silva" },
"protocolo": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}

Exemplo avançado: calcular a data de vencimento (30 dias a partir de hoje) e adicionar um header customizado na resposta.

Configuração do componente:

{
"componentName": "script",
"configurations": {
"expression": "vencimento = func.addDays(func.getCurrentTimeMillis(), 30); output.addHeader('x-processed-by', 'script'); output.writeBody([\"pedido\": body.pedido, \"vencimento\": func.formatDate(vencimento, 'dd/MM/yyyy')]);"
}
}

Resposta:

{
"pedido": { "cliente": "Maria Silva" },
"vencimento": "19/08/2026"
}

6. Erros Comuns e Troubleshooting

Erro / SintomaCausa provávelComo resolver
Erro ao iniciar o fluxo, ligado à compilação do scriptA sintaxe MVEL da expression está incorreta.Revisar a sintaxe do código.
Erro durante a execução, com a mensagem original do MVELO código tentou acessar um campo inexistente em body, ou uma operação inválida.Revisar os campos usados e testar a lógica com dados de exemplo.
Funções de func retornam string vaziaAlgum parâmetro passado para a função é inválido (ex.: data em formato incorreto).Revisar os parâmetros passados para a função utilitária usada.