Skip to Content
0
Former Member
Feb 04, 2009 at 11:33 AM

Context change problem

33 Views

Team,

I have a problem with context change in a peculiar mapping requirement.

Scenario is IDOC --> XML

There's an idoc field MRKN1 which carries all shipment unit numbers seperated by spaces.

MRKN1 : 50325 50326 50329 50321 50215

This field should be mapped to target XML as below:

<Package> <identifier>50325</identifier>

</Package>

<Package> <identifier>50326</identifier>

</Package>

<Package> <identifier>50329</identifier>

</Package>

<Package> <identifier>50321</identifier>

</Package>

<Package> <identifier>50215</identifier>

</Package>

I created a USD StringTokenizer to extract the values from MRKN1 & to populate it in the identier field:

import java.lang.*;

public void StringTokenizer(String[] input,ResultList result,Container container){

String x[] = new String[input.length];

for(int j=0; j<input.length;j++) {

x = input[j].split(" ");

}

for(int i=1;i<x.length;i++) {

result.addValue(x<i>);

}

and mapped liked below:

MRKN1 --> StringTokeniser --> identifier

But the output xml looks like this:

<Package> <identifier>50325</identifier> <identifier>50326</identifier> <identifier>50329</identifier> <identifier>50321</identifier>

<identifier>50215</identifier>

</Package>

Please help me how to create new Package tag for every new identifier tag.

I already tried adding result.addContextChange() just by returning empty value to the above code & mapped it to Package node. But it throws error.

Any immediate help is appreciated.

Thanks in advance,

Shanthi