on 09-03-2008 3:48 PM
Hello,
I got the following structure:
<ITEM_TAB>
<item>
<number>1</number>
</item>
<item>
<number>2</number>
</item>
</ITEM_TAB>
<ITEM_EXT>
<item>
<number>1</number>
<tax_name>TAX 1 FOR ITEM 1</tax_name>
</item>
<item>
<number>1</number>
<tax_name>TAX 2 FOR ITEM 1</tax_name>
</item>
<item>
<number>2</number>
<tax_name>TAX 1 FOR ITEM 2</tax_name>
</item>
<item>
<number>2</number>
<tax_name>TAX 2 FOR ITEM 2</tax_name>
</item>
</ITEM_EXT>
And I need to get the following XML:
<ITEM_OUT>
<item>
<number>1</number>
<tax_name1>TAX 1 FOR ITEM 1</tax_name1>
<tax_name2>TAX 2 FOR ITEM 1</tax_name2>
<item>
<item>
<number>2</number>
<tax_name1>TAX 1 FOR ITEM 2</tax_name1>
<tax_name2>TAX 2 FOR ITEM 2</tax_name2>
<item>
</ITEM_OUT>
It's possible to do this using message mapping ? If not what you suggest me?
Regards.
Hi !
Yes, it is possible with graphical message mapping.
You have plenty of examples in the TBIT41 under mapping concepts. Specially under context mapping examples.
Regards,
Matias.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi !
First of all, you will need to make a little change in the output format...
it should be something like:
<ITEM_OUT>
<item>
<number>1</number>
<tax_names>
<tax_name>tax 1 for 1</tax_name>
<tax_name>tax 2 for 1</tax_name>
<tax_name>tax 3 for 1</tax_name>
</tax_names>
</item>
<item>
<number>2</number>
<tax_names>
<tax_name>tax 1 for 2</tax_name>
<tax_name>tax 2 for 2</tax_name>
</tax_names>
</item>
</ITEM_OUT>
see that you are not able to generate "tax_name1" "tax_name2" dinamically, and for creating multiple tax_name items you need a complex-element (tax_names) to be the parent.
Then, the mapping could be like this:
/ns0:mt_items_target=/ns0:mt_items=
/ns0:mt_items_target/ITEM_OUT=/ns0:mt_items/ITEM_EXT=
/ns0:mt_items_target/ITEM_OUT/item=/ns0:mt_items/ITEM_TAB/item=
/ns0:mt_items_target/ITEM_OUT/item/number=/ns0:mt_items/ITEM_TAB/item/number=
/ns0:mt_items_target/ITEM_OUT/item/tax_names/tax_name=my_function(SplitByValue([type=Value changed]removeContexts(/ns0:mt_items/ITEM_EXT/item/number=)), removeContexts(/ns0:mt_items/ITEM_EXT/item/tax_name=))
where "my_function" is an advanced (queue) user defined function:
int h=0;
for (int i=0;i<a.length;i++){
if (a<i>.equals(ResultList.CC))
result.addValue(ResultList.CC);
else
{
result.addValue(b[h]);
h++;
}
}
This function receives 2 parameters ("a" and "b" string arrays), the number value queue (param "a") and the tax_name value queue (param "b"), and outputs the tax_name value queue using the context changes of the number value queue.
I've tried and it works.
Regards,
Matias.
Edited by: Matias Denker on Sep 3, 2008 5:57 PM
Hi David,
You can use Java Mapping.
rgds.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.