Below code is working but taking 15+ hours to execute 6000 employee records, any improvements possible?
I have two employee record structures (employee data and employee benefits) for each of 6000 employees I have merged them into single xml using personnel number (to check the xml structure please check my previous question - https://stackoverflow.com/questions/65174244/multiple-different-xml-structures-to-one-using-xml-using-xsl).
Now I have to append a node/subnode in xml employee record when ID (personIdExternal in multimap:Message1 finds same ID / PERNR in multimap:Message2.
xml.'**'.findAll{it.name() == 'EmpEmployment'}.each{ p->
def perID = xml.'**'.find{it.personIdExternal.text() == p.personIdExternal.text()}
def pernr = xml.'**'.find{it.PERNR.text() == '000'+perID.personIdExternal.text()}
if(pernr != null)
{
perID.appendNode {
erpBenEligibility(pernr.PARDT.text()) }
}
}
message.setBody(groovy.xml.XmlUtil.serialize(xml))
Sample XML:
<?xml version='1.0' encoding='UTF-8'?>
<multimap:Messages xmlns:multimap="http://sap.com/xi/XI/SplitAndMerge">
<multimap:Message1>
<person>
<person>
<street>test_stree1</street>
<city>test_city1</city>
<state>test_state1</state>
<EmpEmployment>
<personIdExternal> 001 </personIdExternal>
</EmpEmployment>
</person>
<person>
<street>test_stree2</street>
<city>test_city2</city>
<state>test_state2</state>
<EmpEmployment>
<personIdExternal> 002 </personIdExternal>
</EmpEmployment>
</person>
<person>
<street>test_stree3</street>
<city>test_city3</city>
<state>test_state3</state>
<EmpEmployment>
<personIdExternal> 003</personIdExternal>
</EmpEmployment>
</person>
</person>
</multimap:Message1>
<multimap:Message2>
<rfc:ZHR_GET_EMP_BENEFIT_DETAILS.Response xmlns:rfc="urn:sap-
com:document:sap:rfc:functions">
<phone>
<home>
<phone>number1</phone>
</home>
<PERNR> 001 </PERNR>
<PARDT>#### 1 ####</PARDT>
<home>
<phone>number2</phone>
</home>
<PERNR> 002 </PERNR>
<PARDT>#### 2 ####</PARDT>
<home>
<phone>number3</phone>
</home>
<PERNR> 003 </PERNR>
<PARDT>#### 3 ####</PARDT>
</phone>
</rfc:ZHR_GET_EMP_BENEFIT_DETAILS.Response xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
</multimap:Message2>
</multimap:Messages>