Funções de utilidades

Aprenda sobre as funções de utilidades da Digibee Integration Platform e como utilizá-las.

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, leia a documentação Funções Double Braces.

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 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 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.

URIDECODE

Essa função permite que você decodifique uma URI (string).

Sintaxe

URIDECODE( uri:string, [charset:string - optional ] )

  • uri: string a ser decodificada

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

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

{
 "test": {{ URIDECODE("http%3A%2F%2Flocalhost%3A8080", "UTF-8") }}
}

O resultado será:

{
 "test": "http://localhost:8080"
}

URIENCODE

Essa função permite que você codifique uma URI (string).

Sintaxe

  • uri: string a ser codificada

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

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

{
 "test": {{ URIENCODE("http://localhost:8080", "UTF-8") }}
}

O resultado será:

{
 "test": "http%3A%2F%2Flocalhost%3A8080"
}

Outras funções

Conheça também:

Atualizado