Digibee Documentation
Solicitar documentaçãoAgendar demo
Português
Português
  • Primeiros passos
  • Destaques
    • Release notes
      • Release notes 2025
        • Maio
        • Abril
        • Março
        • Fevereiro
        • Janeiro
      • Release notes 2024
        • Dezembro
        • Novembro
        • Outubro
        • Setembro
        • Agosto
          • Lançamento de conectores 20/08/2024
        • Julho
        • Junho
        • Maio
        • Abril
        • Março
        • Fevereiro
        • Janeiro
      • Release notes 2023
        • Dezembro
        • Novembro
        • Outubro
        • Setembro
        • Agosto
        • Julho
        • Junho
        • Maio
        • Abril
        • Março
        • Fevereiro
        • Janeiro
      • Release notes 2022
        • Dezembro
        • Novembro
        • Outubro
        • Setembro
        • Agosto
        • Julho
        • Junho
        • Maio
        • Abril
        • Março
        • Fevereiro
        • Janeiro
      • Release notes 2021
      • Release notes 2020
    • AI Pair Programmer
    • Digibeectl
      • Comece a usar
        • Como instalar o Digibeectl no Windows
      • Digibeectl sintaxe
      • Operações do Digibeectl
  • Digibee em ação
    • Casos Práticos de Uso
      • Melhorando o desempenho de integrações com paginação de API
      • Automatize o armazenamento de arquivos com a Digibee
      • Estratégia de reprocessamento em integrações orientadas a eventos
      • Práticas essenciais para proteger informações sensíveis em pipelines com a Digibee
      • OAuth2 para acesso seguro a APIs
      • Proteja suas APIs com JWT na Digibee
      • Melhores práticas de integração para desenvolvedores na Digibee Integration Platform
      • Como usar Arquitetura orientada a eventos na Digibee Integration Platform
      • Download dinâmico de arquivos com a Digibee
      • Microsserviços: Padrão Circuit Breaker para melhorar a resiliência
      • Estratégia de tratamento de erros em integrações orientadas a eventos
    • Solução de problemas
      • Orientações para integrações
        • Como resolver problemas comuns em pipelines
        • Como resolver o Erro 409: “You cannot update a pipeline that is not on draft mode”
        • Como resolver o erro "Pipeline execution was aborted"
        • Autenticação integrada com o Microsoft Entra ID
        • Como resolver o erro "Failed to initialize pool: ONS configuration failed"
        • Como executar o mapeamento de endereços IP com o banco de dados Progress
        • Como construir fluxos de integração que enviam notificações de erro
        • Como enviar logs para serviços externos
        • Como o JSONPath difere nos conectores e no Painel de execução
        • Usando JSONPath para validar números com dígitos iniciais específicos
        • Como analisar o erro “Network error: Failed to fetch” no Painel de execução
        • Como trabalhar com requisições de payloads superiores a 5MB
        • Como configurar o Microsoft Entra ID para exibir grupos na Digibee Integration Platform
        • Como montar uma mensagem HL7
      • Comportamento e configuração de conectores
        • Timeout no conector Pipeline Executor
        • Como usar DISTINCT e COUNT no Object Store
        • Entendendo o @@DGB_TRUNCATED@@ na Digibee Integration Platform
        • Como resolver nomes sem DNS - REST, SOAP, SAP (web protocols)
        • Como ler e escrever arquivos dentro de pastas
        • AuthToken Reuse para conector Salesforce
        • Como resolver o erro "Invalid payload" na integração de API
        • Bancos de dados suportados
          • Funções e utilidades para banco de dados
      • Implementação e exemplos de uso de conectores
        • Google Storage: Cenários de uso
        • DB V2: Cenários de uso
        • For Each: Exemplo de uso
        • Template e suas utilizações
        • Implementação do Digibee JWT
        • Email V1: Exemplos de uso (Descontinuado)
      • Aplicações do JOLT
        • Transformer: Conhecendo o JOLT
        • Transformer: Transformações com JOLT
        • Transformer: Adicionar valores aos elementos da lista
        • Transformer: Visão geral das operations
        • Transformer: Formatação de datas utilizando split e concat
        • Transformer: Lógica IF-ELSE simples com JOLT
      • Dicas de acesso e desempenho da Plataforma
        • Como resolver problemas para fazer o login na Digibee Integration Platform
        • Como receber atualizações da Status Page da Digibee
        • Como executar a limpeza de cache da Digibee Integration Platform
      • Orientações sobre governança e solução de problemas
        • Como consumir pipelines com Internal API usando ZTNA
        • Como usar a API Interna com ou sem uma VPN
        • Como gerar, converter e cadastrar SSH Keys
        • Autenticação mTLS
          • Como configurar o mTLS na Digibee Integration Platform
          • Perguntas frequentes: Certificados no mTLS
        • Como conectar a Digibee ao Oracle RAC
        • Como conectar a Digibee à SAP
        • Como conectar a Digibee ao MongoDB Atlas usando VPN
        • Como gerenciar IPs na Digibee Integration Platform
        • Configurando Account Dropbox
        • Como usar sua conta do Gmail com o componente de e-mail Digibee (SMTP)
        • Como utilizar a política CORS na Digibee Integration Platform
      • Cenários de implantação
        • Como solucionar erros de “Out of memory” na implantação
        • Aviso de conflito de rotas
    • Boas práticas
      • Boas práticas para a construção de um pipeline
      • Boas práticas ao validar mensagens em um pipeline consumer
      • Evitando loops e maximizando a eficiência dos pipelines
      • Nomenclatura: Global, Contas (Accounts) e Consumers (Chaves de API)
      • Tutorial de paginação
        • Tutorial de paginação - parte 1
        • Tutorial de paginação - parte 2
        • Tutorial de paginação - parte 3
        • Tutorial de paginação - parte 4
      • Exemplos de paginação
      • Arquitetura orientada a eventos
      • Modelo de notificação em integrações orientadas a eventos
      • Modelo de integração OAuth2 com a Digibee
      • Boas práticas para tratamento de erros em pipelines
    • Digibee Academy
      • Integration Developer Bootcamp
  • Guias de referência
    • Conectores
      • AWS
        • S3 Storage
        • SQS
        • AWS Secrets Manager
        • AWS Athena
        • AWS CloudWatch
        • AWS Elastic Container Service (ECS)
        • AWS Eventbridge
        • AWS Identity and Access Management (IAM)
        • AWS Kinesis
        • AWS Kinesis Firehose
        • AWS Key Management Service (KMS)
        • AWS Lambda
        • AWS MQ
        • AWS Simple Email Service (SES)
        • AWS Simple Notification System (SNS)
        • AWS Security Token Service (STS)
        • AWS Translate
      • Azure
        • Azure CosmosDB
        • Azure Event Hubs
        • Azure Key Vault
        • Azure ServiceBus
        • Azure Storage Datalake Service
        • Azure Storage Queue Service
      • Enterprise applications
        • SAP
        • Salesforce
        • Braintree
        • Facebook
        • GitHub
        • Jira
        • ServiceNow
        • Slack
        • Telegram
        • Twillio
        • WhatsApp
        • Wordpress
        • Workday
        • Zendesk
      • File storage
        • Blob Storage (Azure)
        • Digibee Storage
        • Dropbox
        • FTP
        • Google Drive
        • Google Storage
        • OneDrive
        • SFTP
        • WebDav V2
        • WebDav (Descontinuado)
      • Files
        • Append Files
        • Avro File Reader
        • Avro File Writer
        • CSV to Excel
        • Excel
        • File Reader
        • File Writer
        • GZIP V2
        • GZIP V1 (Descontinuado)
        • Parquet File Reader
        • Parquet File Writer
        • Stream Avro File Reader
        • Stream Excel
        • Stream File Reader
        • Stream File Reader Pattern
        • Stream JSON File Reader
        • Stream Parquet File Reader
        • Stream XML File Reader
        • XML Schema Validator
        • ZIP File
        • NFS
      • Flow
        • Delayer
      • Google/GCP
        • Google BigQuery
        • Google BigQuery Standard SQL
        • Google Calendar
        • Google Cloud Functions
        • Google Mail
        • Google PubSub
        • Google Secret Manager
        • Google Sheets
      • Industry solutions
        • FHIR (Beta)
        • Gupy Public API
        • HL7
        • HubSpot: Sales e CMS
        • Mailgun API
        • Oracle NetSuite (Beta)
        • Orderful
        • Protheus: Billing e Inventory of Cost
      • Logic
        • Block Execution
        • Choice
        • Do While
        • For Each
        • Retry
        • Parallel Execution
      • Queues and messaging
        • Event Publisher
        • JMS
        • Kafka
        • RabbitMQ
      • Security
        • AES Cryptography
        • Asymmetric Cryptography
        • CMS
        • Digital Signature
        • JWT (Descontinuado)
        • JWT V2
        • Google IAP Token
        • Hash
        • Digibee JWT (Generate and Decode)
        • LDAP
        • PBE Cryptography
        • PGP
        • RSA Cryptography
        • Symmetric Cryptography
      • Structured data
        • CassandraDB
        • DB V2
        • DB V1 (Descontinuado)
        • DynamoDB
        • Google Big Table
        • Memcached
        • MongoDB
        • Object Store
        • Relationship
        • Session Management
        • Stored Procedure
        • Stream DB V3
        • Stream DB V1 (Descontinuado)
        • ArangoDb
        • Caffeine Cache
        • Caffeine LoadCache
        • Couchbase
        • CouchDB
        • Ehcache
        • InfluxDB
      • Tools
        • Assert V2
        • Assert V1 (Descontinuado)
        • Base64
        • CSV to JSON V2
        • CSV to JSON V1 (Descontinuado)
        • HL7 Message Transformer (Beta)
        • HTML to PDF
        • Transformer (JOLT) V2
        • JSLT
        • JSON String to JSON Transformer
        • JSON to JSON String Transformer
        • JSON to XML Transformer
        • JSON to CSV V2
        • JSON to CSV Transformer (Descontinuado)
        • JSON Path Transformer V2
        • JSON Path Transformer
        • JSON Transformer
        • Log
        • Pipeline Executor
        • QuickFix (Beta)
        • SSH Remote Command
        • Script (JavaScript)
        • Secure PDF
        • Store Account
        • Template Transformer
        • Throw Error
        • Transformer (JOLT)
        • Validator V1 (Descontinuado)
        • Validator V2
        • XML to JSON Transformer
        • XML Transformer
        • JSON Generator (Mock)
      • Web protocols
        • Email V2
        • Email V1 (Descontinuado)
        • REST V2
        • REST V1 (Descontinuado)
        • SOAP V3
        • SOAP V2
        • SOAP V1 (Descontinuado)
        • WGet (Download HTTP)
        • gRPC
    • Triggers
      • Web Protocols
        • API Trigger
        • Email Trigger
        • Email Trigger V2
        • HTTP Trigger
        • HTTP File Trigger
          • HTTP File Trigger - Downloads
          • HTTP File Trigger - Uploads
        • REST Trigger
      • Scheduling
        • Scheduler Trigger
      • Messaging and Events
        • Event Trigger
        • JMS Trigger
        • Kafka Trigger
        • RabbitMQ Trigger
      • Others
        • DynamoDB Streams Trigger
        • HL7 Trigger
        • Salesforce Trigger - Events
    • Double Braces
      • Como referenciar dados usando Double Braces
      • Funções Double Braces
        • Funções matemáticas
        • Funções de utilidades
        • Funções numéricas
        • Funções de string
        • Funções de JSON
        • Funções de data
        • Funções de comparação
        • Funções de arquivo
        • Funções de condição
      • Preenchimento automático de expressões Double Braces
  • Ciclo de desenvolvimento
    • Build
      • Canvas
        • Assistente de IA
        • Smart Connector User Experience
        • Painel de execução
        • Modos de Design e Inspeção
        • Linter: Validação de construção do canvas
        • Mock de Conectores
      • Pipeline
        • Como criar um pipeline
        • Como criar um pipeline usando uma especificação OpenAPI
        • Como criar um projeto
        • Histórico de versões do pipeline
        • Versionamento de pipelines
        • Processamento de mensagens
        • Subpipelines
      • Cápsulas
        • Como usar Cápsulas
          • Como criar uma coleção de Cápsulas
            • Dimensões do cabeçalho da Cápsula
          • Como criar um grupo de Cápsulas
          • Como configurar uma Cápsula
          • Como construir uma Cápsula
          • Como testar uma Cápsula
          • Como salvar uma Cápsula
          • Como publicar uma Cápsula
          • Como mudar uma Cápsula de coleção ou grupo
          • Como arquivar e restaurar uma Cápsula
        • Versionamento de Cápsulas
        • Cápsulas públicas
          • SAP
          • Digibee Tools
          • Google Sheets
          • Gupy
          • Enviar alerta por email
          • Totvs Live
          • Canvas LMS
        • Assistente de IA para geração de documentação de cápsulas
    • Run
      • Conceitos de Run
        • Autoscalling
      • Implantação
        • Implantando um pipeline
        • Como reimplantar um pipeline
        • Como promover pipelines entre ambientes
        • Como verificar o Histórico de implantação do pipeline
        • Como fazer rollback de versão implantada
        • Como utilizar as funções avançadas do histórico de implantação
        • Status de implantação do pipeline
      • Como os alertas funcionam nos pipelines em Run
    • Monitor
      • Monitor Insights (Beta)
      • Execuções concluídas
        • Download dos logs de execução de pipeline
      • Pipeline logs
      • Pipeline Metrics
        • API de métricas de pipeline
          • Como configurar API de métricas Digibee com Datadog
          • Como configurar API de métricas Digibee com Prometheus
        • Latência de Conector
      • Alertas
        • Como criar um alerta
        • Como editar um alerta
        • Como ativar, desativar ou duplicar um alerta
        • Como excluir um alerta
        • Como configurar alertas no Slack
        • Como configurar alertas no Telegram
        • Como configurar alertas via webhook
        • Métricas disponíveis
        • Boas práticas para alertas
        • Casos de uso para alertas
      • Monitoramento de conexões de VPN
        • Alertas para métricas de VPN
  • Gerenciamento de conectividade
    • Conectividade
    • Zero Trust Network Access (ZTNA)
      • Pré-requisitos para usar o ZTNA
      • Como visualizar conexões (Edge Routers)
      • Como visualizar Network Mappings associados com um Edge Router
      • Como adicionar novas conexões em ZTNA (Edge Routers)
      • Como deletar conexões em ZTNA (Edge Routers)
      • Como visualizar rotas (Network mapping)
      • Como adicionar novas rotas (Network Mapping)
      • Como adicionar rotas em lote para ZTNA
      • Como editar rotas (Network Mapping)
      • Como deletar rotas (Network Mapping)
      • Como gerar novas chaves (Edge Router)
      • Como mudar o ambiente dos Edge Routers
      • Fluxo Inverso (Inverse Flow) de ZTNA
      • Grupos de ZTNA
    • Virtual Private Network (VPN)
  • Administração da plataforma
    • Administração
      • Auditoria
      • Controle de acesso
        • Usuários
        • Grupos
        • Papéis
          • Lista de permissões por serviço
          • Papéis e responsabilidades: Governança e identificação de pessoas-chave
      • Integração com provedores de identidades
        • Como integrar um provedor de identidade
        • Regras de autenticação
        • Integração de grupos IdP com grupos Digibee
          • Como criar uma integração de grupo
          • Como testar uma integração de grupo
          • Como habilitar uma integração de grupo
          • Como editar uma integração de grupo
          • Como remover uma integração de grupo
      • Autenticação e autorização de usuários
        • Como habilitar e desabilitar a autenticação de dois fatores
        • Fluxo de login
      • Grupos da organização
    • Configurações
      • Globals
        • Como criar Globals
        • Como editar ou excluir Globals
        • Como usar Globals
      • Contas (Accounts)
        • Configurando cada tipo de conta
        • Monitore alterações nas configurações da conta em pipelines implantados
        • Arquitetura OAuth2
          • Cadastro de novos provedores OAuth
      • Consumers (Chaves de API)
      • Modelos de Relacionamento
      • Multi-Instância
        • Implantando um pipeline de multi-instância
      • Transmissão de Logs
        • Como usar a Transmissão de Logs com o Datadog
    • Governança
      • Políticas
        • Segurança
          • Política de acesso à APIs internas
          • Política de acesso à APIs externas
          • Política de campos sensíveis
        • Transformação
          • Cabeçalho HTTP personalizado
          • Cabeçalho HTTP CORS
        • Política de Limite de réplicas
    • Licenciamento
      • Modelos de licenciamento
        • Modelo baseado em consumo
      • Capacidade e cotas
      • Consumo de licenças
    • Digibee APIs
      • Como criar credenciais de API
  • Conceitos da Digibee
    • Pipeline Engine
      • Digibee Integration Platform Pipeline Engine v2
      • Suporte a Credenciais Dinâmicas (Beta Restrito)
    • SaaS dedicado na Digibee Integration Platform
      • Arquitetura da Digibee Integration Platform no modelo Saas dedicado
      • Requisitos para o modelo SaaS dedicado da Digibee
      • Site-to-Site VPN para suporte de clientes SaaS dedicado
      • Responsabilidades dos cliente Saas dedicado
      • Política de Imagens dos Nodes Kubernetes Customizados
      • Instalação do Digibee Dedicated SaaS no AWS
        • Como instalar os requisitos antes da instalação da Digibee Integration Platform no EKS
        • Permissões para usar a Digibee Integration Platform no EKS
        • Como criar nós customizados para EKS (Golden Images)
    • Introdução ao ZTNA
  • Ajuda & FAQ
    • Suporte ao Cliente Digibee
    • Solicitar documentação, sugerir nova feature ou enviar feedback
    • Programa Beta
    • Segurança e conformidade
    • Sobre a Digibee
Fornecido por GitBook
Nesta página
  • LIST
  • IF/ELSE
  • TRIM
  • REPLACE
  • SLICE (SUBSTRING)
  • LOCALE
  • Customizado

Isto foi útil?

  1. Digibee em ação
  2. Solução de problemas
  3. Implementação e exemplos de uso de conectores

Template e suas utilizações

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

AnteriorFor Each: Exemplo de usoPróximoImplementação do Digibee JWT

Atualizado há 3 meses

Isto foi útil?

Conheça algumas validações e tratamentos que podem ser feitos com a linguagem Freemarker quando você utiliza o Template Transformer.

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

<#list SuaLista as elemento>
              bloco de informações que será iterado.
</#list>

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 é:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webservicex.net/">
<soap:Header/>
    <soap:Body>
        <web:pedido>
            <web:itens>
                <#list itens as item>
                    <web:item>
                        <web:nome>${item.nome}</web:nome>
                        <web:quantidade>${item.quantidade}</web:quantidade>
                    </web:item>
                </#list>
            </web:itens>
        </web:pedido>
    </soap:Body>
</soap:Envelope>

Saída do XML

<soap:Envelope 	xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\"	xmlns:web=\"http://www.webservicex.net/\">
 <soap:Header/>    
 <soap:Body>        
  <web:pedido>            
    <web:itens>                                    
     <web:item>                        
     	<web:nome>item 1</web:nome>                        
     	<web:quantidade>2</web:quantidade>                    
     </web:item>                    
     <web:item>                        
     	<web:nome>item 2</web:nome>                        
     	<web:quantidade>1</web:quantidade>                    
     </web:item>            
    </web:itens>        
  </web:pedido>    
 </soap:Body>
</soap:Envelope>

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

<#if condição>
             Bloco de informações caso a condição do if seja verdadeira.
<#elseif condição>
              Bloco de informações caso a condição do elseif seja verdadeira.
<#else>
              Bloco de informações caso nenhuma das condições seja tomadas.
</#if>

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 é:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webservicex.net/">

    <soap:Header/>  
    <so ap:Body> 
       <web:pedido> 
           <web:codigo><#if codigo &gt; 0 >${codigo}</#if></web:codigo>
       </web:pedido> 
    </soap:Body> 
</soap:Envelope>

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

<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:web=\"http://www.webservicex.net/\">

   <soap:Header/> 
       <soap:Body>     
          <web:pedido> 
              <web:codigo>213</web:codigo>  
          </web:pedido> 
       </soap:Body> 
</soap:Envelope>

Caso a condição seja falsa:

<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:web=\"http://www.webservicex.net/\"> 
   <soap:Header/> 
       <soap:Body>     
          <web:pedido> 
              <web:codigo></web:codigo>  
          </web:pedido> 
       </soap:Body> 
</soap:Envelope>

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

<#if seuCampo?? && seuCampo?has_content>
             Bloco de informações caso o campo exista e tenha conteúdo.
<#else>
              Bloco de informações caso nenhuma das condições seja tomadas.
</#if>

É 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 é:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webservicex.net/"> 
    <soap:Header/>  
    <so ap:Body> 
       <web:pedido>
          <#if codigo?? && codigo?has_content>
              <web:codigo><#if codigo gt 0 >${codigo}</#if></web:codigo>
          </#if>
       </web:pedido> 
    </soap:Body> 
</soap:Envelope>

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

<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:web=\"http://www.webservicex.net/\"> 
   <soap:Header/> 
       <soap:Body>     
          <web:pedido> 
              <web:codigo>213</web:codigo>  
          </web:pedido> 
       </soap:Body> 
</soap:Envelope>

Caso a condição seja falsa...

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

<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:web=\"http://www.webservicex.net/\"> 
   <soap:Header/> 
       <soap:Body>     
          <web:pedido> 
          </web:pedido> 
       </soap:Body> 
</soap:Envelope

TRIM

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

Sintaxe

${SeuCampo?trim}

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 é:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webservicex.net/">

    <soap:Header/>  
    <soap:Body> 
       <web:pedido> 
           <web:descricao>${descricao?trim}</web:descricao> 
       </web:pedido> 
    </soap:Body> 
</soap:Envelope>

Saída do XML

<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:web=\"http://www.webservicex.net/\"> 
    <soap:Header/> 
    <soap:Body>    
       <web:pedido> 
           <web:descricao>pedido teste</web:descricao>    
       </web:pedido> 
    </soap:Body> 
</soap:Envelope>

REPLACE

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

Sintaxe

${SeuCampo?replace}

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 é:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webservicex.net/"> 
    <soap:Header/>  
    <soap:Body> 
       <web:pedido> 
           <web:descricao>${descricao?replace("teste","prod")}</web:descricao> 
       </web:pedido> 
    </soap:Body> 
</soap:Envelope>

Saída do XML

<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:web=\"http://www.webservicex.net/\">
     <soap:Header/>
     <soap:Body>
	   <web:pedido>
	       <web:descricao>   pedido prod   </web:descricao>
	   </web:pedido>
     </soap:Body>
</soap:Envelope>

SLICE (SUBSTRING)

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

Sintaxe

${SeuCampo[0..9]} 0 = valor inicial9 = valor final

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 é:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webservicex.net/">
    <soap:Header/>
    <soap:Body>  
        <web:pedido>
            <#if descricao?length &lt; 10>       
                <web:descricao>${descricao}</web:descricao>
            <#else>
                <web:descricao>${descricao[0..9]}</web:descricao>
            </#if>
       </web:pedido>
    </soap:Body>
</soap:Envelope>

Saída do XML

<soap:Envelope
    xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\"
    xmlns:web=\"http://www.webservicex.net/\">   
    <soap:Header/>   
    <soap:Body>         
         <web:pedido>                           
             <web:descricao>   pedido </web:descricao>      
         </web:pedido>   
    </soap:Body>
</soap:Envelope>

LOCALE

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

Sintaxe

<#setting locale="en_US">${SeuCampo}<#setting locale="pt_BR">${SeuCampo}

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 é:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webservicex.net/">     
    <soap:Header/>
    <soap:Body>
        <web:pedido>
            <#setting locale="en_US">
            <web:valor_US>${valor}</web:valor_US>
            <#setting locale="pt_BR">
            <web:valor_BR>${valor}</web:valor_BR>
        </web:pedido>
    </soap:Body>
</soap:Envelope>

Saída do XML

<soap:Envelope
	xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\"
	xmlns:web=\"http://www.webservicex.net/\"> 
	<soap:Header/>
	<soap:Body>       
		<web:pedido>                        
			<web:valor_US>4,513,423.13</web:valor_US>
			<web:valor_BR>4.513.423,13</web:valor_BR>   
		</web:pedido>    
	</soap:Body>
</soap:Envelope>

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

<#setting number_format="0.##">
${seuCampo}

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 é:

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:web="http://www.webservicex.net/">     
    <soap:Header/>
    <soap:Body>
        <web:pedido>
            <#setting number_format="0.#">
            <web:valor_custom>${valor}</web:valor_custom>
            <#setting locale="pt_BR">
        </web:pedido>
    </soap:Body>
</soap:Envelope>

Saída do XML

<soap:Envelope  xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:web=\"http://www.webservicex.net/\">  
     <soap:Header/> 
     <soap:Body>     
          <web:pedido>                     
	       <web:valor_custom>4513423.1</web:valor_custom>     
	  </web:pedido> 
     </soap:Body> 
</soap:Envelope>
Para saber mais sobre esse componente, clique aqui e leia o artigo a respeito.