'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:

  1. Is this java script implementation is effective to process my huge xml file? any suggestions for making it simpler and reliable for speed?
  2. 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