Avalados por :
Caros especialistas,
Preciso substituir alguns elementos na mensagem de entrada e para isso estou usando o seguinte script. No entanto, surpreendentemente, apenas a última função está fornecendo a saída correta. Por favor, sugiram se estou perdendo algo aqui.
Apenas obtenho o resultado correto para - HierarchyLevel.
Entrada
<Records>
<TenantCode>900</TenantCode>
<HierarchyCode>7</HierarchyCode>
<HierarchyName>Test</HierarchyName>
<HierarchyLevel>1</HierarchyLevel>
</Records>
<Records>
<TenantCode>901</TenantCode>
<HierarchyCode>6</HierarchyCode>
<HierarchyName>Test</HierarchyName>
<HierarchyLevel>0</HierarchyLevel>
</Records>
Script
import com.sap.gateway.ip.core.customdev.util.Message;
import java.util.HashMap;
def Message processData(Message message) {
def body = message.getBody(String) as String;
message.setBody(body.replaceAll("TenantCode","ns2:TenantCode"))
message.setBody(body.replaceAll("HierarchyCode","ns2:HierarchyCode"))
message.setBody(body.replaceAll("HierarchyName","ns2:HierarchyName"))
message.setBody(body.replaceAll("HierarchyLevel","ns2:HierarchyLevel"))
return message;
}
Saudações,
Arvik
Olá Arvik
Você está usando o objeto de corpo de string original da primeira declaração com cada função de substituição (a função setBody não está atualizando o objeto de string da primeira declaração).
Em vez disso, use algo assim:
def corpo = mensagem.getBody(String) como String;
corpo = corpo.replaceAll("TenantCode","ns2:TenantCode");
corpo = corpo.replaceAll("HierarchyCode","ns2:HierarchyCode");
corpo = corpo.replaceAll("HierarchyName","ns2:HierarchyName");
corpo = corpo.replaceAll("HierarchyLevel","ns2:HierarchyLevel");
mensagem.setBody(corpo);
Obrigado,
Marty
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute