O Template Transformer gera XML, HTML, texto e outros dados a partir de um template especificado. O componente pode receber dados para preencher o template dinamicamente a partir de um JSON recebido na sua mensagem de entrada.

Dê uma olhada nos parâmetros de configuração do componente:

  • Model Path: caminho no qual o input de JSON encontra os modelos a serem utilizados no template (dotted notation).

  • Preserve Original: se ativada, a opção preserva os campos originais recebidos na entrada do componente.

  • Body: o template (string) a ser substituído e transformado durante o tempo de execução com os dados recebidos, via JSON, configurados na propriedade Model Path.

Fluxo de Mensagens

Para entender melhor como utilizar o Template Transformer, clique aqui para ler o nosso artigo com exemplos ilustrados.

Exemplo de resposta de requisição ao Template Transformer contendo erro

{
"body": null,
"_error": "Can not construct instance of java.util.LinkedHashMap: no String-argument constructor/factory method to deserialize from String value ('')\n at [Source: N/A; line: -1, column: -1]",
"_body": ""
}

  • body: template transformado

  • _error: descrição do erro que ocorreu na execução

  • _body: se a opção Preserve Original estiver habilitada, a propriedade será exibida na saída contendo o JSON de entrada

Entrada

Esse componente aceita receber um objeto JSON na sua entrada, utilizando uma linguagem chamada Freemarker para fazer as transformações e gerar o template. Ele vai buscar o JSON a ser utilizado dentro da propriedade de configuração Model Path.

Saída

A estrutura será igual a de entrada, porém com outro modelo e outra representação de template como string. Em caso de erro, a propriedade "error" será criada no mesmo nível da propriedade original.

A notação com pontos (dotted notation) de JSON vai procurar pelo elemento raiz que está sendo processado pelo pipeline e realizar um cruzamento de acordo com as especificações passados na propriedade Model Path.

Template Transformer em Ação

Em uma representação do Model Path contendo a.b.c.d, "a" será procurado no elemento raiz. Em seguida será o "b", depois o "c" e finalmente o "d". Se um array for encontrado durante o cruzamento, então o algoritmo vai gerar um caminho de cruzamento para cada elemento no array. O algoritmo substitui todas as ocorrências do caminho definido em Model Path.

sem erro

{
"body": "TEMPLATE TRANSFORMADO"
"_body": {}
}

  • _body: se a opção Preserve Original estiver habilitada, a propriedade será exibida na saída contendo o JSON de entrada

com erro

{
"body": null,
"_error": "Can not construct instance of java.util.LinkedHashMap: no String-argument constructor/factory method to deserialize from String value ('')\n at [Source: N/A; line: -1, column: -1]",
"_body": ""
}

Tecnologia

Utilizamos o Freemarker para realizar nossas conversões e transformações no template dentro desse componente. Para conhecer mais sobre o Freemaker e como utilizá-lo, clique aqui.

Encontrou sua resposta?