cancel
Showing results for 
Search instead for 
Did you mean: 

[Mapping] Nodes not in order

Former Member
0 Kudos

Hey,

still trying a mapping. Problem: It seems that the mapping does not take the nodes in order.

Source:

<?xml version="1.0" encoding="UTF-8"?>

<ns0:MT_IDOC_Input xmlns:ns0="http://test.com">

<recordset>

<MEDTD1>

<feld1>a11</feld1>

</MEDTD1>

<MEDTD2>

<field2>a21</field2>

</MEDTD2>

<MEDTD3>

<field3>a31</field3>

</MEDTD3>

<MEDTD3>

<field3>a32</field3>

</MEDTD3>

<b> <MEDTD2>

<field2>a22</field2>

</MEDTD2></b>

<MEDTD3>

<field3>a33</field3>

</MEDTD3>

</recordset>

</ns0:MT_IDOC_Input>

The MEDTD2 should create a new node, where MEDTD3 nodes should be insert as subnode.

Mapping:

/ns0:MT_IDOC_Output=/ns0:MT_IDOC_Input= /ns0:MT_IDOC_Output/IDOC=SplitByValue([type=Value changed]removeContexts(/ns0:MT_IDOC_Input/recordset/MEDTD1=)) /ns0:MT_IDOC_Output/IDOC/MEDTD1/field1=/ns0:MT_IDOC_Input/recordset/MEDTD1/feld1= /ns0:MT_IDOC_Output/IDOC/MEDTD1/MEDTD2=SplitByValue([type=Each value]/ns0:MT_IDOC_Input/recordset/MEDTD2/field2=) /ns0:MT_IDOC_Output/IDOC/MEDTD1/MEDTD2/field2=/ns0:MT_IDOC_Input/recordset/MEDTD2/field2= /ns0:MT_IDOC_Output/IDOC/MEDTD1/MEDTD2/MEDTD3=/ns0:MT_IDOC_Input/recordset/MEDTD3= /ns0:MT_IDOC_Output/IDOC/MEDTD1/MEDTD2/MEDTD3/field3=/ns0:MT_IDOC_Input/recordset/MEDTD3/field3=

When I doing a mapping test he ignore the node MEDTD2 with value a22. Why?


Document start
Start tag [ns0:MT_IDOC_Output]
Add raw attribute [ xmlns:ns0="http://test.com"]
Start tag [IDOC]
Start tag [MEDTD1]
Start tag [field1]
Put value [a11]
Close tag [field1]
Start tag [MEDTD2]
Start tag [field2]
Put value [a21]
Close tag [field2]
Start tag [MEDTD3]
Start tag [field3]
Put value [a31]
Close tag [field3]
Close tag [MEDTD3]
Start tag [MEDTD3]
Start tag [field3]
Put value [a32]
Close tag [field3]
Close tag [MEDTD3]
Start tag [MEDTD3]    ---> Here he should take MEDTD2 as the orde in the source structure
Start tag [field3]
Put value [a33]
Close tag [field3]
Close tag [MEDTD3]
Close tag [MEDTD2]
Close tag [MEDTD1]
Close tag [IDOC]

thanks

chris

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

HI,

Just try this,

a.Check MEDTD2= a22 pass this to exist->creatif node functions and mapp to target node to be created.

b.directly map MEDTD3 to the required traget child node.

This will solve your problem.

Regards,

Akshay.

    • Reward points if find useful.

Former Member
0 Kudos

Hi,

you mean:

a) field2 -> exist -> createif -> MEDTD2

b) MEDTD3 -> MEDTD3 (already doing this. did you mean MEDTD2 -> MEDTD2?)

Doing this, he still ignore the second MEDTD2

thx

Message was edited by:

Christian Riekenberg