Funções Double Braces

Saiba quais são as funções Double Braces e como utilizá-las

Você pode usar funções Double Braces para manipular dados em um pipeline.

Sintaxe

As funções Double Braces são usadas entre dois conjuntos de chaves e um espaço em branco, com o nome da função seguido por uma lista de parâmetros entre parênteses, como abaixo:

{{ NOMEDAFUNÇÃO(param1, param2) }}

Funções Double Braces são case-insensitive, isto é, não diferenciam entre letras maiúsculas e minúsculas. Entretanto, nós recomendamos como uma melhor prática escrevê-las com letras maiúsculas.

Funções aninhadas

Você pode fazer chamadas a funções Double Braces dentro de outras funções, como abaixo:

{{ FUNÇÃOEXTERNA(FUNÇÃOINTERNA(param1, param2), param3) }}

Quando usa essa sintaxe, as funções são executadas de dentro para fora. Isto é, no exemplo acima, FUNÇÃOINTERNA é executada primeiro e seu output é usado como um parâmetro de FUNÇÃOEXTERNA, que é executada por último.

Diferentemente das linguagens de programação, as expessões Double Braces executam todas as funções ao mesmo tempo, independentemente se a condição do IF é true ou false. Isso difere das linguagens de programação, que normalmente executam as funções somente após checar a condição do IF.

Exemplo

Input

{
    "date": "2022-10-26T03:00:00Z"
}

Expressão Double Braces

{
    "format": {{ IF(EQUALTO(SIZE(message.date),20),FORMATDATE( message.date, "yyyy-MM-dd'T'HH:mm:ss'Z'", "dd/MM/yyyy"),FORMATDATE( message.date, "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", "dd/MM/yyyy")) }}
}

Output

{
  "success": false,
  "message": "Encountered a configuration error while generating JSON",
  "error": "com.digibee.pipelineengine.exception.PipelineEngineConfigurationException: com.digibee.doublebraces.service.DoubleBracesConfigurationException: Syntax error parsing double braces expression {{ IF(EQUALTO(SIZE(message.date),20),FORMATDATE( message.date, \"yyyy-MM-dd'T'HH:mm:ss'Z'\", \"dd/MM/yyyy\"),FORMATDATE( message.date, \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", \"dd/MM/yyyy\")) }}: Could not parse date/time evaluating function FORMATDATE. Error: Text '2022-10-26T03:00:00Z' could not be parsed at index 19"
}

Lista de funções

Abaixo, listamos as funções Double Braces por grupos baseados em seu uso.

DE COMPARAÇÃO

Usadas para comparar inputs booleanos. Para saber mais, leia o artigo Funções de Comparação:

  • AND

  • NOT

  • OR

  • XOR

NUMÉRICAS

Usadas para manipular valores numéricos. Para saber mais, leia o artigo Funções Numéricas:

  • FORMATNUMBER

  • TODOUBLE

  • TOINT

  • TOLONG

  • TONUMBER

  • RANDOMNUMBERS

CONDICIONAIS

As funções desse grupo retornam um valor de acordo com um critério específico. Para saber mais, leia o artigo Funções Condicionais:

  • EQUALTO

  • GREATERTHAN

  • GREATERTHANEQUAL

  • IF

  • LESSTHAN

  • LESSTHANEQUAL

  • ISOBJECT

  • ISARRAY

  • ISBOOLEAN

  • ISSTRING

  • ISNUMBER

  • ISNULL

  • SWITCHCASE

DE DATA

Usadas para manipular datas. Para saber mais, leia o artigo Funções de Data:

  • FORMATDATE

  • NOW

  • SUMDATE

  • TOISODATE

  • DIFFDATE

DE ARQUIVO

Usadas para consultar metadados e validar arquivos. Para saber mais, leia o artigo Funções de Arquivo:

  • FILEEXISTS

  • FILESIZE

DE JSON

Usadas para manipular objetos JSON. Para saber mais, leia o artigo Funções de JSON:

  • JSONPATH

  • TOJSON

  • UNESCAPEJSON

  • GETELEMENTAT

  • LASTELEMENT

  • REMOVEAT

  • NEWEMPTYOBJECT

  • NEWEMPTYARRAY

  • PUSH

  • POP

  • CARDINALITYONE

  • CARDINALITYMANY

MATEMÁTICAS

Usadas para fazer operações matemáticas. Para saber mais, leia o artigo Funções Matemáticas:

  • ABS

  • CEIL

  • DIVIDE

  • LOG

  • MAX

  • MIN

  • MOD

  • MULTIPLY

  • POW

  • ROUND

  • SQRT

  • SUBTRACT

  • SUM

DE STRING

Usadas para manipular strings. Para saber mais, leia o artigo Funções de String:

  • CAPITALIZE

  • CONCAT

  • ESCAPE

  • INDEXOF

  • JOIN

  • LASTINDEXOF

  • LEFTPAD

  • LOWERCASE

  • MATCHES

  • NORMALIZE

  • REPLACE

  • RIGHTPAD

  • SPLIT

  • SUBSTRING

  • TOSTRING

  • UPPERCASE

  • CONTAINS

  • DEFAULT

  • UNESCAPE

  • TRIM

  • STRINGMATCHES

  • RANDOMSTRINGS

DE UTILIDADE

Usadas para fazer operações que não se encaixam nas outras categorias. Para saber mais, leia o artigo Funções de Utilidade:

  • BASEDECODE

  • BASEENCODE

  • UUID

  • TOBOOLEAN

  • SIZE

  • BASEURLDECODE

  • BASEURLENCODE

  • URIDECODE

  • URIENCOD

Atualizado