Skip to Content
0
Dec 11, 2022 at 04:44 AM

Issue with CPI ReplaceAll function in Groovy !

1079 Views

Dear Experts,

I need to replace couple of elements in the input message and for that I am using following script. But surprisingly only the last function is giving the correct output. Please suggest if I am missing anything here.

I am getting correct result for only - HierarchyLevel .

Input

<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;
}


Br,

Arvik