Template e suas utilizações

Descubra mais sobre Template Transformer e suas utilizações na Digibee Integration Platform.

Conheça algumas validações e tratamentos que podem ser feitos com a linguagem Freemarker quando você utiliza o Template Transformer. Para saber mais sobre esse componente, clique aqui e leia o artigo a respeito.

Para os exemplos que você verá a seguir, considere o seguinte JSON de entrada:

{
  "pedido": {
    "codigo": 213,
    "valor": 4513423.1322,
    "descricao": "   pedido teste   ",
    "itens": [
      {
        "nome": "item 1",
        "quantidade": 2
      },
      {
        "nome": "item 2",
        "quantidade": 1
      }
    ]
  }
}

LIST

Possibilita que você realize iterações em um array (lista) no JSON. Imagine essa função na criação de uma lista dinâmica de elementos na saída, que transforma o JSON em XML.

Sintaxe

Exemplo

Utilizando a entrada informada no começo do artigo, você pode criar uma lista dinâmica de itens utilizando o template.

O que você deve informar no template é:

Saída do XML

Lembre-se que a saída do Template é um XML em uma string.

IF/ELSE

Você pode utilizar essa função para a validação de algumas informações. Mesmo quando os seus campos estiverem nulos ou vazios, não há um grande impacto na sua transformação de dados.

Sintaxe

Não existe limitação para a quantidade de elseif e também é possível usar apenas um if sem o else - tudo depende da sua necessidade.

Exemplo

Utilizando a entrada informada no começo do artigo, você pode criar uma validação na qual o campo "código" precise ser maior que 0 (zero).

O que você deve informar no template é:

Saída do XML Caso a condição seja verdadeira:

Caso a condição seja falsa:

Sabia que a utilização da função não é limitada a condições simples? Você também pode utilizar expressões para validar se o campo existe (??) e se ele tem conteúdo (has_content).

Sintaxe

É possível utilizar operadores lógicos para uma condição mais avançada.

&& - para o E (AND).

|| - para o OU (OR).

Exemplo

Agora veja como melhorar a validação para que o if feito no primeiro caso seja utilizado apenas se o campo "código" existir e tiver conteúdo.

O que você deve informar no template é:

Saída do XML Caso a condição seja verdadeira:

Caso a condição seja falsa...

... e o campo "código" tenha um valor null, vazio ou não venha na entrada:

TRIM

Essa função é utilizada para remover os espaços em branco no começo e no final de uma string.

Sintaxe

Exemplo

Utilizando a entrada informada no começo do artigo, você pode remover os espaços em branco no começo e final do campo "descrição".

O que você deve informar no template é:

Saída do XML

REPLACE

Essa função é utilizada para substituir um valor pré-determinado no campo.

Sintaxe

Exemplo

Utilizando a entrada informada no começo do artigo, você pode substituir o valor "teste" em descrição por "prod".

O que você deve informar no template é:

Saída do XML

SLICE (SUBSTRING)

Essa função é utilizada quando o campo é obrigado a ter um determinado tamanho.

Sintaxe

Exemplo

Utilizando a entrada informada no começo do artigo, você pode determinar que o campo tenha apenas 10 caracteres, mesmo que o tamanho dele seja maior.

Uma boa prática aplicável à essa função é utilizar IF/ELSE para validar o tamanho desejado do campo. Dessa forma, você evita erros caso o campo seja menor do que o valor de corte estabelecido.

O que você deve informar no template é:

Saída do XML

LOCALE

Essa função é utilizada no template para configurar a localização de um valor numérico.

Sintaxe

Para poder utilizá-lo, você precisa informar a tag antes do campo dinâmico. Veja como fazer isso nos exemplos abaixo.

Exemplo

Utilizando a entrada informada no começo do artigo, você pode formatar o valor para que ele fique no padrão do sistema legado.

O que você deve informar no template é:

Saída do XML

Customizado

Caso a formatação desejada não seja aceita pelo seu sistema, você pode definir a formatação necessária do número por meio da tag "number_format". Permite a você customizar a formatação de números.

Sintaxe

As hashtags (#) definem a quantidade de casas decimais que serão utilizadas.

Exemplo

Utilizando a entrada informada no começo do artigo, você pode formatar o valor para que ele fique no padrão do sistema legado.

O que você deve informar no template é:

Saída do XML

Isto foi útil?