'Mirth Building xml object using channel map variables in transformer using Java script
I am trying to read xml file which has huge xml repeating nodes based on conditions I am iterating through the xml msg and storing mapped values as channel map variables. Now in the same iteration trying to constructing required xml object using channel map variables as reference. I don't know about the performance please assist below points:
- Is this java script implementation is effective to process my huge xml file? any suggestions for making it simpler and reliable for speed?
- How to insert my variable values in the constructing xml nodes? also, which variable reference should i use to insert values to my xml.. channel map/ normal variable?
Here is the code below in source transformer step
var xmlItmMsg = msg;
var j,c=0;
var item= '';
var row = '';
var reqMsg = '';
for(j=0;j<msgLen;j++){
var checkBU= xmlItmMsg['MASTER_ITEM'][j]['BU_ITM_INV']['BUSINESS_UNIT'].toString();
if(checkBU='RETAIL'){
$c('BUSINESS_UNIT',checkBU);
var INV_ITEM_ID = xmlItmMsg['MASTER_ITEM'][j]['INV_ITEM_ID'].toString();
$c('INV_ITEM_ID',INV_ITEM_ID);
var ITM_STATUS_EFFDT = xmlItmMsg['MASTER_ITEM'][j]['ITM_STATUS_EFFDT'].toString();
$c("ITM_STATUS_EFFDT",ITM_STATUS_EFFDT);
// Product Status value 1 is active and 0 is inactive..
var ITM_STATUS_CURRENT =xmlItmMsg['MASTER_ITEM'][j]['ITM_STATUS_CURRENT'].toString();
$c('ITM_STATUS_CURRENT',ITM_STATUS_CURRENT);
var DESCR = xmlItmMsg['MASTER_ITEM'][j]['DESCR'].toString();
$c('DESCR',DESCR);
var venCount = xmlItmMsg['MASTER_ITEM'][j]['ITM_VND'].length();
if(venCount > 0){
for (c=0;c<venCount;c++){
var prior = xmlItmMsg['MASTER_ITEM'][j]['ITM_VND'][c]['ITM_VNDR_PRIORITY'].toString();
if(prior==1){
$c('ITM_VNDR_PRIORITY',prior);
var VENDOR_ID = xmlItmMsg['MASTER_ITEM'][j]['ITM_VND'][c]['VENDOR_ID'].toString();
$c('VENDOR_ID',VENDOR_ID);
}
// constructing required xml
item = '<Item>' + '\n' +
'<INV_ITEM_ID>' + +'</INV_ITEM_ID>'+ '\n' +
'<ITM_STATUS_EFFDT>' + +'</ITM_STATUS_EFFDT>'+ '\n' +
'<ITM_STATUS_CURRENT>' + +'</ITM_STATUS_CURRENT>'+ '\n' +
'<DESCR>' + +'</DESCR>'+ '\n' +
'<VENDOR_ID>' + +'</VENDOR_ID>'+ '\n' +
'<ITM_VNDR_PRIORITY>' + +'</ITM_VNDR_PRIORITY>'+ '\n' +
'</Item>'
row= row + item;
reqMsg = '<?xml version="1.0"?>' + + '\n' + '<INV>' + row + '</INV>';
$c('reqMsg',reqMsg);
}
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
