quarta-feira, maio 14, 2025
HomeSalesforce DXApexSalesforce Apex: DataWeave

Salesforce Apex: DataWeave

DataWeave é a linguagem de expressão do MuleSoft para acessar, analisar e transformar dados que trafegam por um aplicativo Mule.

O DataWeave no Apex complementa o suporte nativo do Apex para processamento JSON e XML, e torna a transformação de dados mais fácil de codificar, mais escalável e eficiente. Ele usa a biblioteca Mulesoft DataWeave para ler e analisar dados de um formato, transformá-los e exportá-los em um formato diferente.

Você pode criar scripts DataWeave como metadados e invocá-los diretamente do Apex. Assim como o Apex, os scripts DataWeave são executados dentro dos servidores de aplicativos Salesforce, aplicando os mesmos limites de heap e CPU no código em execução.

Vamos ver um exemplo para analisar json e criar registros de contato usando scripts DataWeave.

  1. Criar scripts DataWeave

Crie um arquivo de origem do script DataWeave: json2Contacts.dwl.

%dw  2.0 registros 
de entrada  application/json aplicativo de saída /apex --- registros map(record) -> { FirstName: record.first_name , LastName: record.last_name , Email: record.email } como Objeto { class: "Contact" } 

Crie o arquivo de metadados associado: json2Contacts.dwl-meta.xml.

<?xml version= "1.0" encoding= "UTF-8" ?> 
< DataWeaveResource  xmlns = "http://soap.sforce.com/2006/04/metadata"  xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" > 
    < content  xsi:nil = "true" /> 
    < apiVersion > 59.0 </ apiVersion > 
    < isGlobal > false </ isGlobal > 
    < isProtected > false </ isProtected > 
</ DataWeaveResource >

Você pode implantar este arquivo usando o VSCode ou o Salesforce CLI.

2. Invoque o script DataWeave do Apex e verifique os resultados do Apex anônimo

Mapa < String , Objeto > parâmetros = novo  Mapa < String , Objeto >(); 
parâmetros. put ( 'registros' , '[{"primeiro_nome":"TestFN", "sobrenome":"TestLN", "email":"teste@gmail.com"}]' ); 
DataWeave . Script script = novo  DataWeaveScriptResource . json2Contacts (); 
DataWeave . Resultado resultado = script. execute (parâmetros); 
Lista < Contato > contatos = ( Lista < Contato >)result. getValue (); 
Sistema . debug (contatos);

Você pode ver o resultado abaixo nos logs

Notas:

  1. O namespace DataWeave fornece classes e métodos para dar suporte à invocação de scripts DataWeave do Apex.
  2. Para cada script DataWeave, uma classe interna do tipo DataWeaveScriptResource.<ScriptName> é gerada.

Recursos:

  1. https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/DataWeaveInApex_UseCase.htm?_ga=2.258491788.748266058.1731253467-599394452.1731251836
  2. https://github.com/developerforce/DataWeaveInApex/blob/main/force-app/main/default/dw/json2sObjects.dwl

Fonte: https://medium.com/@sfdcpulse

RELATED ARTICLES

Mais acessados