on 08-10-2016 9:03 AM
Hi Experts ,
I have a requirement where I need to split XML data into multiple CSV file and send to SFTP locations based on column value in the XML tag.
Below is an example of what I am looking for . Please note that the file needs to be split based on the first column value .Can you suggest how to do the same as I am new to PI . Please note that the column values will be dynamic.
Input XML file ( ignoring tags )
The expected output should be
CSV1:
CSV2:
Can anyone suggest some code for this using Java Mapping ( DOM method ) ?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Input sample XML payload data is below . Filename is shown in previous comments .
<?xml version="1.0" encoding="utf-8"?>
<ns:MT_Inventory xmlns:ns="http://test.com/xi/TEST">
<row>
<SELLER_ID>Seller ID</SELLER_ID>
<SKU>SKU</SKU>
<SLAVE_CODE>Slave Code</SLAVE_CODE>
<QUANTITY>Quantity</QUANTITY>
<MRP>MRP</MRP>
<MOP>MOP</MOP>
</row>
<row>
<SELLER_ID>100117</SELLER_ID>
<SKU>1001371001</SKU>
<SLAVE_CODE>1501</SLAVE_CODE>
<QUANTITY>27.000</QUANTITY>
<MRP>4645</MRP>
<MOP>4645</MOP>
</row>
<row>
<SELLER_ID>100117</SELLER_ID>
<SKU>1015817001</SKU>
<SLAVE_CODE>1501</SLAVE_CODE>
<QUANTITY>3.000</QUANTITY>
<MRP>3495</MRP>
<MOP>3495</MOP>
</row>
<row>
<SELLER_ID>100117</SELLER_ID>
<SKU>1015817005</SKU>
<SLAVE_CODE>1501</SLAVE_CODE>
<QUANTITY>11.000</QUANTITY>
<MRP>3495</MRP>
<MOP>3495</MOP>
</row>
<row>
<SELLER_ID>100117</SELLER_ID>
<SKU>1032548012</SKU>
<SLAVE_CODE>1501</SLAVE_CODE>
<QUANTITY>2.000</QUANTITY>
<MRP>895</MRP>
<MOP>895</MOP>
</row>
<row>
<SELLER_ID>Seller ID</SELLER_ID>
<SKU>SKU</SKU>
<SLAVE_CODE>Slave Code</SLAVE_CODE>
<QUANTITY>Quantity</QUANTITY>
<MRP>MRP</MRP>
<MOP>MOP</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1001371001</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>551.000</QUANTITY>
<MRP>4645</MRP>
<MOP>4645</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1001371901</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP></MRP>
<MOP></MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1004509223</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1004509224</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1004509227</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1015817001</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>27.000</QUANTITY>
<MRP>3495</MRP>
<MOP>3495</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1015817002</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>97.000</QUANTITY>
<MRP>3495</MRP>
<MOP>3495</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1015817003</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>44.000</QUANTITY>
<MRP>3495</MRP>
<MOP>3495</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1015817004</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>48.000</QUANTITY>
<MRP>3495</MRP>
<MOP>3495</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1015817005</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>64.000</QUANTITY>
<MRP>3495</MRP>
<MOP>3495</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1015817006</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>17.000</QUANTITY>
<MRP>3495</MRP>
<MOP>3495</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1015817007</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>5005.000</QUANTITY>
<MRP>3495</MRP>
<MOP>3495</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1015817049</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>15.000</QUANTITY>
<MRP>3495</MRP>
<MOP>3495</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1032548012</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>128.000</QUANTITY>
<MRP>895</MRP>
<MOP>895</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1183252001</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP>3395</MRP>
<MOP>3395</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1183252002</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP>3395</MRP>
<MOP>3395</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1183252005</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP>3395</MRP>
<MOP>3395</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1539899008</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP>1095</MRP>
<MOP>1095</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1572797001</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>9.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1572797005</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>29.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1572797008</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>30.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1573193004</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>9.000</QUANTITY>
<MRP>995</MRP>
<MOP>995</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1574348004</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>10.000</QUANTITY>
<MRP>695</MRP>
<MOP>695</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1574511010</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>5.000</QUANTITY>
<MRP>1695</MRP>
<MOP>1695</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1574791001</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>2.000</QUANTITY>
<MRP>1695</MRP>
<MOP>1695</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1574791002</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>2.000</QUANTITY>
<MRP>1695</MRP>
<MOP>1695</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1687187002</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>2.000</QUANTITY>
<MRP>500</MRP>
<MOP>500</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1740631003</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP></MRP>
<MOP></MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1806148001</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>20.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1806148002</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>19.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1806148003</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>9.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1806148004</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>9.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100116</SELLER_ID>
<SKU>1811171001</SKU>
<SLAVE_CODE>1508</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>Seller ID</SELLER_ID>
<SKU>SKU</SKU>
<SLAVE_CODE>Slave Code</SLAVE_CODE>
<QUANTITY>Quantity</QUANTITY>
<MRP>MRP</MRP>
<MOP>MOP</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1032548012</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>19.000</QUANTITY>
<MRP>895</MRP>
<MOP>895</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1572797001</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>208.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1572797002</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>10.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1572797004</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>8.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1573083002</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP>1695</MRP>
<MOP>1695</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1573083003</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>10.000</QUANTITY>
<MRP>1695</MRP>
<MOP>1695</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1573083005</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>1.000</QUANTITY>
<MRP>1695</MRP>
<MOP>1695</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1574511010</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>500.000</QUANTITY>
<MRP>1695</MRP>
<MOP>1695</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1623087001</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>10.000</QUANTITY>
<MRP>2595</MRP>
<MOP>2595</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1623087002</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>8.000</QUANTITY>
<MRP>2595</MRP>
<MOP>2595</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1806148001</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>12031.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1806148002</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>1009.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1806148003</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>1022.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1806148004</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>1000.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
<row>
<SELLER_ID>100118</SELLER_ID>
<SKU>1806148005</SKU>
<SLAVE_CODE>DC36</SLAVE_CODE>
<QUANTITY>20.000</QUANTITY>
<MRP>100</MRP>
<MOP>100</MOP>
</row>
</ns:MT_Inventory>
Hi Abshishek,
Please try with the below mapping.
Seller_ID-->RemoveContext-->Sort-->CollapseContext-->Concat with Date-->MT_Inventory_Test
---Priyanka
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Abhishek!
Just use split mapping to create separate message for each of your unique keys. Each of your messages will be put to separate file at the receiver side.
Regards, Evgeniy.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yes , I understood this part . I am attaching my Message Mapping .
Issue is now I am not able to generate separate File names . Its taking the first unique value ( say ,Seller ID) in the file name and hence everytime it is replacing the files . Screen shots attached . Please suggest where the issue can be in the File Name part
FileName mapping -
Overall structure
User | Count |
---|---|
88 | |
10 | |
10 | |
9 | |
7 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.