Avalados por :
Estimados expertos,
Necesito reemplazar un par de elementos en el mensaje de entrada y para eso estoy utilizando el siguiente script. Pero sorprendentemente, solo la última función está dando la salida correcta. Por favor, sugieran si me estoy perdiendo algo aquí.
Solo obtengo el resultado correcto 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;
}
Saludos,
Arvik
Hola Arvik
Estás utilizando el objeto de cuerpo de cadena original de la primera declaración con cada función de reemplazo (la función setBody no está actualizando el objeto de cadena de la primera declaración).
En su lugar, utiliza algo como esto:
def body = message.getBody(String) as String;
body = body.replaceAll("TenantCode","ns2:TenantCode");
body = body.replaceAll("HierarchyCode","ns2:HierarchyCode");
body = body.replaceAll("HierarchyName","ns2:HierarchyName");
body = body.replaceAll("HierarchyLevel","ns2:HierarchyLevel");
message.setBody(body);
Gracias,
Marty
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute