IMPORTANTE: esta documentação foi descontinuada. Leia a documentação Funções de Utilidades atualizada no nosso novo portal de documentação.

As funções foram criadas para:

  • acelerar ainda mais a criação das suas integrações

  • diminuir a complexidade dos seus pipelines

  • simplificar conversões e transformações dos dados durante o fluxo dos seus pipelines

As funções de utilidades realizam operações diversas, que não se enquadram em nenhuma das outras categorias e estão disponíveis para componentes que suportam expressões com Double Braces. Para saber como passar informações para os componentes utilizando esse recurso, clique aqui.

BASEDECODE

Essa função em Double Braces decodifica uma string em um formato base64.

Sintaxe

BASEDECODE(value:string, [charset:string - optional])

  • value: string a ser decodificada

  • charset: charset para a decodificação (padrão = UTF-8) (opcional)

Digamos que você precise decodificar uma string. Você pode fazer o seguinte:

{
"test": {{ BASEDECODE("eHB0bw==", "UTF-8") }}
}

O resultado esperado será:

{
"test": "xpto"
}

BASEENCODE

Essa função em Double Braces codifica uma string em um formato base64.

Sintaxe

BASEENCODE(value:string, [charset:string - optional])

  • value: string a ser codificada

  • charset: charset para a codificação (padrão = UTF-8) (opcional)

Digamos que você precise codificar uma string. Você pode fazer o seguinte:

{
"test": {{ BASEENCODE("xpto", "UTF-8") }}
}

O resultado esperado será:

{
"test": "eHB0bw=="
}

BASEURLDECODE

Essa função em Double Braces decodifica uma string em um formato base64 no padrão de uso para URL.

Sintaxe

BASEDECODE(value:string, [charset:string - optional])

  • value: string a ser decodificada

  • charset: charset para a decodificação (padrão = UTF-8) (opcional)

Digamos que você precise decodificar uma string. Você pode fazer o seguinte:

{
"test": {{ BASEURLDECODE("eHB0bw", "UTF-8") }}
}

O resultado esperado será:

{
"test": "xpto"
}

BASEURLENCODE

Essa função em Double Braces codifica uma string em um formato base64 para uso em URL's.

Sintaxe

BASEENCODE(value:string, [charset:string - optional])

  • value: string a ser codificada

  • charset: charset para a codificação (padrão = UTF-8) (opcional)

Digamos que você precise codificar uma string. Você pode fazer o seguinte:

{
"test": {{ BASEURLENCODE("xpto", "UTF-8") }}
}

O resultado esperado será:

{
"test": "eHB0bw"
}

UUID

Essa função em Double Braces gera um identificador único universal — o número de 128 bits é utilizado para identificar informações em sistemas.

Sintaxe

UUID()

Digamos que você precise gerar um identificador único. Você pode fazer o seguinte:

{
"test": {{ UUID() }}
}

O resultado esperado será:

{
"test": "4caad555-09b5-479c-98b4-ac72ffbb486c"
}

TOBOOLEAN

Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.

A função permite que você converta um valor string para booleano.

Sintaxe

TOBOOLEAN(valor)

Vamos supor que você precise converter os valores abaixo para booleano:

{
"string": "false",
"stringUpperCase": "TRUE",
"boolean": true,
"integer": 1,
"nullValue": null,
"object": {
"string": "abc"
}
}

Convertendo os valores:

{
"string": {{ TOBOOLEAN(message.string) }},
"stringUpperCase": {{ TOBOOLEAN(message.stringUpperCase) }},
"boolean": {{ TOBOOLEAN(message.boolean) }},
"integer": {{ TOBOOLEAN(message.integer) }},
"nullValue": {{ TOBOOLEAN(message.nullValue) }},
"object": {{ TOBOOLEAN(message.object) }}
}

O resultado será:

{
"string": false,
"stringUpperCase": true,
"boolean": true,
"integer": false,
"nullValue": false,
"object": false
}

Se a função for aplicada em strings com valores diferentes de "true", "false", "TRUE" e "FALSE", campos numéricos, campos nulos, objetos e arrays, a função sempre retornará o resultado false.

SIZE

Essa função em Double Braces permite que o tamanho de strings, arrays e objects seja obtido.

Sintaxe

SIZE(value, [throwErrorOnUnexpectedType:boolean - optional])

  • value: valor a ser verificado o tamanho

  • throwErrorOnUnexpectedType: indica se será retornada uma exceção quando o parâmetro value for de um tipo não esperado pela função. Caso não informado, será assumido valor true e, quando informado valor false, o retorno da função será null.

Digamos que você precise obter o tamanho de um texto de uma propriedade comments contida em seu payload. Você pode utilizar o seguinte trecho no componente JSON Generator:

{
"commentsSize": {{ SIZE(message.comments) }}
}

O resultado será um valor numérico que corresponde à quantidade de caracteres contida no texto:

{
"commentsSize": 1000
}

Agora digamos que exista um JSON object na seguinte estrutura:

{
"body":{
"field1": "test",
"field2": {
"field2.1": "testing"
}
}
}

É preciso verificar o tamanho desse objeto. Utilizando o JSON Generator novamente, veja a configuração do seguinte trecho:

{
"bodySize": {{ SIZE(message.body) }}
}

O resultado é a quantidade de propriedades contidas no objeto body:

{
"bodySize": 2
}

Nesse caso, a função considera apenas propriedades diretamente pertencentes ao objeto body e não considera propriedades aninhadas.

Também é possível verificar o tamanho de um array:

{
"array": [
10,20,30
]
}

Assumindo que o array acima, o JSON Generator é utilizado mais uma vez para configurar o seguinte trecho:

{
"arraySize": {{ SIZE(message.array) }}
}

Ao executar a função, este é o resultado que representando a quantidade de elementos contidos no array:

{
"arraySize": 3
}

A função SIZE espera valores dos tipos string, array e object. Quando algum valor que não seja desses tipos é passado, uma exceção é lançada. Porém, existe a opção de informar para a função não lançar exceção e simplesmente retornar null. Para isso, basta configurar o segundo parâmetro da função com o valor false.

Considere o seguinte payload:

{
"elements": 13
}

E a configuração do JSON Generator conforme abaixo:

{
"elementsSize": {{ SIZE(message.elements, false) }}
}

Após a execução, o resultado será o seguinte:

{
"elementsSize": null
}

Dessa forma, não será lançada exceção e poderá ser adotada alguma lógica de verificação no seu fluxo de integração.

Conheça também as funções:

Encontrou sua resposta?