I have an XML file in IFS. It is wrapped. Is there any way to unwrap that file to a physical file?
Your help is appreciated
Thanks
Nanda
Your help is appreciated
Thanks
Nanda
<?xml version="1.0" encoding="UTF-8"?><orders vendor="ABC" version="1.1"> <order refnum="1234567" tax="0.0" total="50.0"><date>2011-03-20</date> <address><name>Patricia DiMascio</name><street1>6 Jamie Drive</street1> <street2/><street3/><city>Johnston</city> <state>RI</state><zip>02919</zip> <country>United States of America (U.S.A)</country><email/> <phone>(401)-942-2604</phone></address></order> <order refnum="1234568" tax="2.86" total="52.86">......
<?xml version="1.0" encoding="UTF-8"?> "?><orders vendor="ABC" version="1.1"> <order refnum="1234567" tax="0.0" total="50.0"> "><date>2011-03-20</date>
<?xml version="1.0" encoding="UTF-8"?> <orders vendor="ABC" version="1.1"> <order refnum="1234567" tax="0.0" total="50.0"> <date>2011-03-20</date> <address> <name>Patricia DiMascio</name> <street1>6 Jamie Drive</street1> [I][B]<street2>[/B][/I]</street2> [I][B]<street3>[/B][/I]</street3> <city>Johnston</city> <state>RI</state> <zip>02919</zip> <country>United States of America (U.S.A)</country> [I][B]<email>[/B][/I]</email> <phone>(401)-942-2604</phone> </address> </order> </orders>
d Options s 256a Varying d XmlData s 1024a Varying d X s 10i 0 d Y s 10i 0 d XmlDS ds Qualified Inz Dim( 100 ) d Vendor 20a d Version 5a d Order LikeDS( OrderDS ) Dim( 100 ) d OrderDS ds Qualified Inz d RefNum 7p 0 d Tax 9p 2 d Total 9p 2 d Address LikeDS( AddressDS ) d AddressDS ds Qualified Inz d Name 20a d Street1 20a d Street2 20a d Street3 20a d City 20a d State 2a d Zip 10a d Country 20a d Email 50a d Phone 20a /free options = 'case=any + path= orders + allowextra=yes + allowmissing=yes'; XmlData = '<?xml version="1.0" encoding="UTF-8"?>+ <orders vendor="ABC" version="1.1">+ <order refnum="1234567" tax="0.0" total="50.0">+ <date>2011-03-20</date>+ <address>+ <name>Patricia DiMascio</name>+ <street1>6 Jamie Drive</street1>+ <street2/>+ <street3/>+ <city>Johnston</city>+ <state>RI</state>+ <zip>02919</zip>+ <country>United States of America (U.S.A)</country>+ <email/>+ <phone>(401)-942-2604</phone>+ </address>+ </order>+ <order refnum="5555999" tax="13.79" total="155.99">+ <date>2011-03-30</date>+ <address>+ <name>Michael Catalani</name>+ <street1>6050 Poplar Ave</street1>+ <street2/>+ <street3/>+ <city>Memphis</city>+ <state>TN</state>+ <zip>38119</zip>+ <country>United States of America (U.S.A)</country>+ <email/>+ <phone>(901)-672-7572</phone>+ </address>+ </order>+ </orders>'; xml-into XmlDS %xml( XmlData : options ); x=1; y=1; dow XmlDS( x ).Vendor <> *blanks; dsply XmlDS( x ).Vendor; dow XmlDS( x ).Order( y ).refnum <> 0; dsply XmlDS( x ).Order( y ).RefNum; y += 1; enddo; y=1; x += 1; enddo; *inlr = *on;
d Options s 256a Varying d XmlData s 1024a Varying d X s 10i 0 d Y s 10i 0 d XmlDS ds Qualified Inz Dim( 100 ) d Vendor 20a d Version 5a d Order LikeDS( OrderDS ) Dim( 100 ) d OrderDS ds Qualified Inz d RefNum 7p 0 d Tax 9p 2 d Total 9p 2 d Address LikeDS( AddressDS ) d AddressDS ds Qualified Inz d Name 20a d Street1 20a d Street2 20a d Street3 20a d City 20a d State 2a d Zip 10a d Country 20a d Email 50a d Phone 20a /free options = 'case=any + path= orders + allowextra=yes + allowmissing=yes'; XmlData = '<?xml version="1.0" encoding="UTF-8"?>+ <orders vendor="ABC" version="1.1">+ <order refnum="1234567" tax="0.0" total="50.0">+ <date>2011-03-20</date>+ <address>+ <name>Patricia DiMascio</name>+ <street1>6 Jamie Drive</street1>+ <street2/>+ <street3/>+ <city>Johnston</city>+ <state>RI</state>+ <zip>02919</zip>+ <country>United States of America (U.S.A)</country>+ <email/>+ <phone>(401)-942-2604</phone>+ </address>+ </order>+ <order refnum="5555999" tax="13.79" total="155.99">+ <date>2011-03-30</date>+ <address>+ <name>Michael Catalani</name>+ <street1>6050 Poplar Ave</street1>+ <street2/>+ <street3/>+ <city>Memphis</city>+ <state>TN</state>+ <zip>38119</zip>+ <country>United States of America (U.S.A)</country>+ <email/>+ <phone>(901)-672-7572</phone>+ </address>+ </order>+ </orders>'; xml-into XmlDS %xml( XmlData : options ); x=1; y=1; dow XmlDS( x ).Vendor <> *blanks; dsply XmlDS( x ).Vendor; dow XmlDS( x ).Order( y ).refnum <> 0; dsply XmlDS( x ).Order( y ).RefNum; y += 1; enddo; y=1; x += 1; enddo; *inlr = *on;
xmlFile = '/order.xml'; qcmd('PXXMLXMLCM FILEIN(''' + xmlFile + ''') ' + 'FILEOUT(''' + xmlFile + ''')');
/copy qsrc,pxapihdr General H-Spec's * powerEXT Service Program Connector /copy qsrc,pxapicgicn Basic HTTP connecter & Productivity Services * Declare Internal Variables d vendor s 20a varying d version s 20a varying d refnum s 20a varying d store s 10i 0 d xmlFile s 256a varying d tmpFile s 256a varying // Clear powerEXT Service Program & Responce Object clearSrvPgm(); // Initialize the xmlReader clearSrvPgm(); xmlFromStmf(xmlFile); xmlReaderInz(xmlAddr:xmlSize:*off:*on); xmlReaderCase('L'); // Read the XML dow xmlReader = 0; select; // save variables when xmlGetNode = 'orders' and xmlGetAttr = 'vendor'; // save vendor vendor = xmlGetData; when xmlGetNode = 'orders' and xmlGetAttr = 'version'; // save version version = xmlGetData; when xmlGetNode = 'order' and xmlGetAttr = 'refnum'; // save order refnum refnum = xmlGetData; // at start of an order create a duplicate header when xmlGetNode = 'order' and xmlGetAttr = ''; store = storeNew(); storeInz(store); storeAppendText(store:'<?xml version="1.0" encoding="UTF-8"?>'); storeAppendText(store:nl); storeAppendText(store:'<orders vendor="'); storeAppendText(store:vendor); storeAppendText(store:'" version="'); storeAppendText(store:version); storeAppendText(store:'">'); storeAppendText(store:nl); // at end of each order append the order to the header and save it to IFS when xmlGetNode = '/order'; storeAppend(store:xmlAddrOuter:xmlSizeOuter); storeAppendText(store:nl); storeAppendText(store:'</orders>'); tmpFile = '/order' + refnum + '.xml'; storeToStmf(store:tmpFile:1208); storeFree(store); // copy the STMF order to a PF Member qcmd('ADDPFM FILE(QGPL/XML) ' + 'MBR(X' + refnum + ')'); qcmd('CPYFRMSTMF FROMSTMF(''' + tmpFile + ''') ' + 'TOMBR(''QSYS.LIB/QGPL.LIB/XML.FILE/X' + refnum + '.MBR'') ' + 'MBROPT(*REPLACE)'); qcmd('del (''' + tmpFile + ''')'); endsl; enddo; // Free XML storage xmlFree();
<?xml version="1.0" encoding="UTF-8"?> <orders vendor="ABC" version="1.1"> <order refnum="1234567" tax="0.0" total="50.0"> <date>2011-03-20</date> <address> <name>Patricia DiMascio</name> <street1>6 Jamie Drive</street1> <street2 /> <street3 /> <city>Johnston</city> <state>RI</state> <zip>02919</zip> <country>United States of America (U.S.A)</country> <email /> <phone>(401)-942-2604</phone> </address> </order> </orders>
<?xml version="1.0" encoding="UTF-8"?> <orders vendor="ABC" version="1.1"> <order refnum="5555999" tax="13.79" total="155.99"> <date>2011-03-30</date> <address> <name>Michael Catalani</name> <street1>6050 Poplar Ave</street1> <street2 /> <street3 /> <city>Memphis</city> <state>TN</state> <zip>38119</zip> <country>United States of America (U.S.A)</country> <email /> <phone>(901)-672-7572</phone> </address> </order> </orders>
Comment