¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¡Acceso SAP S/4HANA desde $100!

Acceso a SAP

Cómo mejorar la eficacia de un script para reemplazar elementos en un mensaje de entrada

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 4 Vistas
0
Cargando...

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

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

2 Respuestas

0
Cargando...

Gracias Marty.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

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

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeconsultor.com

+1 (305) 285-8622

© 2025 Todos los derechos reservados.

Desarrollado por Prime Consultor

¡Hola! Soy Diana, asesora académica de Prime Consultor, indícame en que Academia SAP estás interesado, saludos!
Hola ¿Buscas Academias SAP?