Skip to Content
1
Former Member
Jan 11, 2012 at 08:10 AM

Remove dulicates in mapping

386 Views

Hi gurus!

My input structure is

<IN_MT>
 <SHIPMENT>
         <SHIPMENT></SHIPMENT>
         <DELIVERY></DELIVERY>
 </SHIPMENT>
</IN_MT>

I need to remove duplicates like this.

INPUT:

<IN_MT>
 <SHIPMENT>
         <SHIPMENT>11</SHIPMENT>
         <DELIVERY>123</DELIVERY>
 </SHIPMENT>

 <SHIPMENT>
         <SHIPMENT>11</SHIPMENT>
         <DELIVERY>456</DELIVERY>
 </SHIPMENT>

 <SHIPMENT>
         <SHIPMENT>33</SHIPMENT>
         <DELIVERY>678</DELIVERY>
 </SHIPMENT>
</IN_MT>

OUTPUT:

<OUT_MT>
 <SHIPMENT>
         <SHIPMENT>11</SHIPMENT>
         <DELIVERY>123</DELIVERY>
         <DELIVERY>456</DELIVERY>
 </SHIPMENT>

 <SHIPMENT>
         <SHIPMENT>33</SHIPMENT>
         <DELIVERY>678</DELIVERY>
 </SHIPMENT>
</OUT_MT>

Here is my UDF RemoveDuplicates:

Vector vProd = new Vector();

int i;
for (i =0;i < var1.length;i++)
if(!vProd.contains(var1<i>)) 
vProd.add(var1<i>);

Collections.sort(vProd);
for(i=0;i<vProd.size();i++)
result.addValue((String)vProd.get(i));

Here is my mapping:

IN_MT -


> OUT_MT

SHIPMENT -


> SHIPMENT

SHIPMENT -


> RemoveContext ---> RemoveDuplicates -


> SplitByValue -


> SHIPMENT

DELIVERY -


> DELIVERY

DELIVERY -


> DELIVERY

I got:

 <OUT_MT>
   <SHIPMENT>
      <SHIPMENT>11</SHIPMENT>
      <DELIVERY>
         <DELIVERY>123</DELIVERY>
      </DELIVERY>
   </SHIPMENT>
   <SHIPMENT>
      <SHIPMENT>22</SHIPMENT>
      <DELIVERY>
         <DELIVERY>456</DELIVERY>
      </DELIVERY>
   </SHIPMENT>
   <SHIPMENT>
      <DELIVERY>
         <DELIVERY>678</DELIVERY>
      </DELIVERY>
   </SHIPMENT>
</OUT_MT>

What's wrong?