IMPORTANTE: esta documentação foi descontinuada. Leia a documentação Funções de String 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 string realizam tratamentos, operações e conversões de string 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.
CAPITALIZE
Essa função em Double Braces capitaliza uma string ao alterar o primeiro caractere para letra maiúscula. Os outros caracteres não são alterados.
Sintaxe
CAPITALIZE(value:string)
Digamos que você precise capitalizar uma string. Você pode fazer o seguinte:
{
"name": {{ CAPITALIZE("hi, my name is jacob") }}
}
O resultado esperado será:
{
"name": "Hi, my name is jacob"
}
CONCAT
Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.
A função é aplicada para concatenar parâmetros e transformá-los em uma string.
Sintaxe
CONCAT(, , )
Regras
ao menos 2 parâmetros são necessários
concatenar null é o mesmo que concatenar "" (string vazia)
concatenação sempre retorna string
o campoX pode ser de qualquer tipo de dados, que será convertido para string na concatenação
Veja um exemplo simples aplicado abaixo:
Entrada de um componente Transformer
{
"nome": "teste",
"id": " - 123",
"a": null,
"b": {
"nome": "qwert",
"id": "yuiop"
},
"c": -89912
}
Utilização da função CONCAT:
{
"concat": {{ CONCAT(message.nome, message.id, message.a, message.b, message.c) }}
}
ESCAPE
Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.
A função é aplicada para manter os caracteres que necessitam de um escape mesmo após a conversão para outro elemento. Ela deverá ser utilizada, por exemplo, quando é desejável persistir um objeto JSON que está em formato de string em um banco de dados.
Sintaxe
ESCAPE(valor:string, escapeType:string<optional>)
Veja a seguir um exemplo simples:
{
"jsonString": "{\"a\": 1,\"b\": 2}"
}
A função pode ser aplicada para um escape:
{
"texto": {{ ESCAPE(message.jsonString) }}
}
Além disso, é possível especificar o tipo de escape que deve ser aplicado através do parâmetro opcional escapeType. Nele são aceitos os valores "CSV", "HTML", "JSON" e "XML". Caso o parâmetro não seja informado, será assumido o valor "JSON" por padrão.
Digamos que você possua o objeto abaixo e precise aplicar o escape para um texto no formato CSV:
{
"text": "John,33,\"São Paulo\",Brazil,true"
}
Para isso, basta fazer a chamada da função conforme abaixo:
{
"text": {{ ESCAPE(message.text, "CSV") }}
}
O resultado da execução da função será o seguinte:
{
"text": "\"John,33,\"\"São Paulo\"\",Brazil,true\""
}
Para os demais tipos, a aplicação da função é a mesma dependendo apenas do tipo de texto que deverá ser tratado. Caso seja informado algum tipo de escape não esperado pela função, será lançada uma exceção.
UNESCAPE
Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.
A função é aplicada para remover os escapes contidos nos caracteres de um texto. Ela deverá ser utilizada, por exemplo, quando é desejável fazer a leitura de um objeto JSON que está em formato de string persistido em um banco de dados.
Sintaxe
UNESCAPE(valor:string, escapeType:string<optional>)
Veja a seguir um exemplo simples:
{
"jsonString": "{\\\"a\\\": 1,\\\"b\\\": 2}"
}
A função pode ser aplicada para um ESCAPE:
{
"texto": {{ UNESCAPE(message.jsonString) }}
}
Além disso, é possível especificar o tipo de escape que deve ser removido através do parâmetro opcional escapeType. Nele são aceitos os valores "CSV", "HTML", "JSON" e "XML". Caso o parâmetro não seja informado, será assumido o valor "JSON" por padrão.
Digamos que você possua o objeto abaixo e precise remover o escape de um texto no formato CSV:
{
"text": "\"John,33,\"\"São Paulo\"\",Brazil,true\""
}
Para isso, basta fazer a chamada da função conforme abaixo:
{
"text": {{ UNESCAPE(message.text, "CSV") }}
}
O resultado da execução da função será o seguinte:
{
"text": "John,33,\"São Paulo\",Brazil,true"
}
Para os demais tipos, a aplicação da função é a mesma dependendo apenas do tipo de texto que deverá ser tratado. Caso seja informado algum tipo de escape não esperado pela função, será lançada uma exceção.
INDEXOF
Essa função em Double Braces retorna o índice dentro da primeira ocorrência de uma string referente a uma substring especificada.
Sintaxe
INDEXOF(str: string, strSearch: string, fromIndex:integer<optional>)
Digamos que você precise buscar o valor "planet" dentro da string "Hello planet earth, you are a great planet." e queira saber qual é o índice de início dessa ocorrência:
{{ INDEXOF("Hello planet earth, you are a great planet.", "planet") }}
O resultado será: 6
Caso você precise buscar em uma string a partir de determinado índice:
{{ INDEXOF("Hello planet earth, you are a great planet.", "tree", 3) }}
No caso acima, você está buscando a partir do índice 3. Como não será encontrado nenhum valor com as especificações passadas, então será retornado -1.
JOIN
Essa função em Double Braces retorna uma nova string composta por cópias dos elementos unidos com uma cópia do delimitador especificado.
Sintaxe
JOIN(delimiter:string, value1:string, value2:string, ...., valueN:string)
delimiter: delimitador a ser incorporado por cada string
values: string a ser unido
Digamos que você precise unir algumas strings com um delimitador. Você pode fazer o seguinte:
{
"test": {{ JOIN("-", "I", "love", "this", "function") }}
}
O resultado esperado será:
{
"test": "I-love-this-function"
}
LASTINDEXOF
Essa função em Double Braces permite localizar a última ocorrência de uma sequência de caracteres em uma string. A função retorna o número de índice em que se inicia a sequência, realiza a busca de caracteres do final para o início da string e retorna -1 se o caractere não é encontrado. A última ocorrência da string vazia ("") é considerada um valor do índice.
Sintaxe
LASTINDEXOF(str: string, strSearch: string, fromIndex:integer<optional>)
Digamos que você queira buscar o valor "planet" dentro da string "Hello planet earth, you are a great planet." e queira saber qual é o índice de início dessa ocorrência:
{{ LASTINDEXOF("Hello planet earth, you are a great planet.", "planet") }}
O resultado será: 36
LEFTPAD
Essa função em Double Braces adiciona preenchimentos à esquerda de uma string com uma string especificada.
Sintaxe
LEFTPAD(value:string, size:number, [padding:string - optional])
value: string a ser preenchida
size: tamanho total do preenchimento / da string a ser preenchida
padding: caractere do preenchimento (opcional)
Digamos que você precise adicionar um preenchimento à esquerda de uma string. Você pode fazer o seguinte:
{
"test": {{ LEFTPAD("xpto", 10, "-") }}
}
O resultado esperado será:
{
"test": "------xpto"
}
IMPORTANTE: se você não especificar o parâmetro "padding", então o preenchimento será feito com um espaço em branco.
LOWERCASE
Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.
A função é aplicada para retornar o valor da string em letras minúsculas.
Sintaxe
LOWERCASE(string)
{
“a”: "2AAA"
}
{
"lc": {{ LOWERCASE( message.a ) }}
}
O retorno dessa função será 2aaa.
MATCHES
Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.
A função procura por toda a string, ou seja, o padrão (regex) que você está procurando deve ser exatamente igual à string sendo usada para a procura.
Sintaxe
MATCHES(string, regex )
Vamos supor que você precisa saber se o campo está no formato de "cep" válido:
{
"cep": "01200-030"
}
No exemplo abaixo o valor "true" será atribuído, pois bate com a regex passada:
{
"cepValido": {{ MATCHES( message.cep, "[0-9]{5}-[0-9]{3}" ) }}
}
O retorno dessa função será "true" ou "false".
NORMALIZE
Essa função em Double Braces normaliza uma sequência de valores em caracteres.
Sintaxe
NORMALIZE(value:string)
value: string a ser normalizada
Digamos que você precise normalizar uma string. Você pode fazer o seguinte:
{
"test": {{ NORMALIZE("àèìòùęëæoœçáíéúūãõ") }}
}
O resultado esperado será:
{
"test": "aeioueeocaieuuao"
}
REPLACE
Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.
A função substitui cada substring da string que corresponde à expressão regular fornecida com a substituição que se deseja realizar.
Sintaxe
REPLACE(valor, "regExp", "valor-novo")
regExp: expressão regular a ser informada como string
O resultado será uma string ou null.
Veja a seguir um exemplo simples:
{
"string": "ABCDabcd",
"object": {
"this is an object": true
},
"text": "this is a test" ,
"acentos": "ÁÂÃáâãÉéíÌÍÓóÛÙúÇç"
}
Exemplo de aplicação:
{
"replace_simple": {{REPLACE(message.string, "[A-Z]", ".")}},
"replace_object": {{REPLACE(message.object, "\\\"", "'")}},
"replace_text": {{REPLACE(message.text, "a test", "my test")}},
"acentos": {{ REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(message.XML,"[\\xE0-\\xE6]", "a"),"[\\xC0-\\xC6]", "A"),"[\\xE8-\\xEB]", "e"),"[\\xC8-\\xCB]", "E"),"[\\xEC-\\xEF]", "i"),"[\\xCC-\\xCF]", "I"),"[\\xF2-\\xF6]", "o"),"[\\xD2-\\xD6]", "O"),"[\\xF9-\\xFC]", "u"),"[\\xD9-\\xDC]", "U"),"\\xE7", "c"),"\\xC7", "C") }}
}
}
RIGHTPAD
Essa função em Double Braces adiciona preenchimentos à direita de uma string com uma string especificada.
Sintaxe
RIGHTPAD(value:string, size:number, [padding:string - optional])
value: string a ser preenchida
size: tamanho do preenchimento
padding: caractere do preenchimento (opcional)
Digamos que você precise adicionar um preenchimento à direita de uma string. Você pode fazer o seguinte:
{
"test": {{ RIGHTPAD("xpto", 10, "-") }}
}
O resultado esperado será:
{
"test": "xpto------"
}
Se você não especificar o parâmetro "padding", então o preenchimento será feito com um espaço em branco.
SPLIT
Essa função em Double Braces divide uma string de acordo com a expressão regular especificada (regex).
Sintaxe
SPLIT(value:string, regex:string)
value: string a ser normalizada
regex: expressão regular delimitadora
Digamos que você precise dividir uma string com um regex. Você pode fazer o seguinte:
{
"test": {{ SPLIT("aaa,bbb", ",") }},
"test2": {{ SPLIT("123,abb", "\\.") }}
}
O resultado esperado será:
{
"test": ["aaa", "bbb"],
"test2": ["123", "abb"]
}
SUBSTRING
Essa função em Double Braces retorna uma string derivada da sua própria substring. A substring começa no "beginIndex" especificado e se estende até o caractere no índice "endIndex".
Sintaxe
SUBSTRING(value:string, beginIndex:number, [endIndex:number - optional], throwIndexOutOfBoundError:boolean - optional])
value: string
beginIndex: índice inicial, inclusivo
beginIndex: índice final, exclusivo (opcional)
throwIndexOutOfBoundError: se "true", uma exceção será lançada caso exista algum índice fora da exceção vinculada; do contrário, a string passada será retornada - "true" é padrão (se "beginIndex" for negativo, ou "endIndex" for maior do que o tamanho do objeto da string, ou "beginIndex" for maior que "endIndex", uma exceção será lançada)
Digamos que você precise extrair uma substring de uma string. Você pode fazer o seguinte:
{
"test": {{ SUBSTRING("aaS2fdeS", 3) }},
"test2": {{ SUBSTRING("aaS2fdeS", 3, 5) }},
"test3": {{ SUBSTRING("qqq", 20, 30, false) }}
}
O resultado esperado será:
{
"test": "2fdeS",
"test2": "2f",
"test3": "qqq"
}
Para esses casos, uma exceção será lançada:
{{ SUBSTRING("qqq", 20, 30) }} or {{ SUBSTRING("qqq", 20, 30, true) }}
ou
{{ SUBSTRING("qqq", 20, null, false) }}
TOSTRING
Essa função em Double Braces converte qualquer coisa para um formato string.
Sintaxe
TOSTRING(value:any)
value: valor a ser convertido para string
Digamos que você precise passar um valor para string. Você pode fazer o seguinte:
{
"number": {{ TOSTRING(1) }},
"string": {{ TOSTRING("A") }},
"boolean": {{ TOSTRING(false) }},
"null": {{ TOSTRING(null) }}
}
O resultado esperado será:
{
"number": "1",
"number": "A",
"number": "false",
"number": ""
}
Também é possível passar um array ou um objeto para string.
UPPERCASE
Utilizando Double Braces, você pode combinar a função com o acesso ao elemento do JSON de entrada de um componente.
A função é aplicada para retornar o valor da string em letras maiúsculas.
Sintaxe
UPPERCASE(string)
{
“a”: "2aaa"
}
{
"uc": {{ UPPERCASE( message.a ) }}
}
O retorno dessa função será 2AAA.
CONTAINS
Essa função permite que você verifique se um determinado valor está contido em uma string.
Sintaxe:
CONTAINS(string, value)
Digamos que você precise verificar se a string abaixo contém o valor "function":
{
"field": "Testing the new function CONTAINS()"
}
Verificando:
{
"contains": {{ CONTAINS(message.field, "function") }}
}
O resultado será:
{
"contains": true
}
RANDOMSTRINGS
Essa função permite que você gere strings randômicas com base em um charset e um tamanho.
Sintaxe:
RANDOMSTRINGS(charset, size)
Digamos que você precise gerar strings randômicas com base em diferentes charsets e com tamanhos de 20 caracteres.
Gerando as strings:
{
"alphanumeric": {{ RANDOMSTRINGS("ALPHANUMERIC", 20) }},
"ascii": {{ RANDOMSTRINGS("ASCII", 20) }},
"numeric": {{ RANDOMSTRINGS("NUMERIC", 20) }},
"alphabetic": {{ RANDOMSTRINGS("ALPHABETIC", 20) }}
}
O resultado será:
{
"alphanumeric": "Oj3DApYQL7uTCodbXlXq",
"ascii": "GV>o8G/pNFofal.A.14X",
"numeric": "02747673464573026135",
"alphabetic": "bOHtZafvGOpdltVrrcEu"
}
Os charsets aceitos são ALPHANUMERIC, ASCII, NUMERIC e ALPHABETIC, e o tamanho limite da string é de 1000 caracteres.
STRINGMATCHES
Essa função permite realizar buscas de valores dentro de uma String com base em uma Regex, retornando os resultados encontrados dentro de um array.
Sintaxe:
STRINGMATCHES(value: string, regex: string, flagPattern: string)
value: string a ser preenchida
regex: será utilizado na busca
patternFlag: flag que pode definir um padrão para o match da regex (opcional)
Obs: a função aceita mais de uma patternFlag, caso desejar poderá passar todas que quiserem nos últimos parametros da função, como exemplo abaixo:
STRINGMATCHES(Hello eDUcatIVE, educative # Matching the keyword educative, “CASE_INSENSITIVE”, “COMMENTS”)
Obs: Segue abaixo a tabela das patternFlags válidas:
CANON_EQ
Habilita a equivalência canônica.
CASE_INSENSITIVE
Ativa a correspondência que não diferencia maiúsculas de minúsculas.
COMMENTS
Permite espaços em branco e comentários no padrão.
DOTALL
Ativa o modo de pontos.
LITERAL
Habilita a análise literal do padrão.
MULTILINE
Ativa o modo multilinha.
UNICODE_CASE
Ativa a dobra de maiúsculas e minúsculas com reconhecimento unicode.
UNICODE_CHARACTER_CLASS
Habilita a versão ‘unicode’ de classes de caracteres predefinidas e classes de caracteres posix.
UNIX_LINES
Habilita o modo de linhas Unix.
Digamos que você queira fazer as buscas abaixo.
Gerando as ‘strings’:
{
"normal": {{ STRINGMATCHES("7801111111blahblah 780222222 mumbojumbo7803333333 thisnthat 7804444444", "780{1}\\d{7}") }},
"case_sensitive": {{ STRINGMATCHES("Para maiores informações, veja o Capítulo 3.4.5.1", "(capítulo \d+(\.\d)*)") }},
"case_insensitive": {{ STRINGMATCHES("Para maiores informações, veja o Capítulo 3.4.5.1", "(capítulo \d+(\.\d)*)", "CASE_INSENSITIVE") }}
}
O resultado será:
{
"normal": [ "7801111111", "7803333333", "7804444444" ],
"case_sensitive": [],
"case_insensitive": ["Capítulo 3.4.5.1"]
}
Obs: Caso a regex a ser utilizada tenha barra invertida (\), é necessário um scape adicionando outra barra invertida. Segue abaixo exemplo:
Regex original:
(capítulo \d+(\.\d)*)
Regex com scape:
(capítulo \\d+(\\.\\d)*)
Conheça também as funções: