¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

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

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 0 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@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?