Avalados por :

Como melhorar a eficácia de um script para substituir elementos em uma mensagem de entrada

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

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

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

2 Respuestas

0
Cargando...

Obrigado Marty.

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

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

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?