cancel
Showing results for 
Search instead for 
Did you mean: 

Convert from RDI IDOC to EDI data structure

Former Member
0 Kudos

Hello colleagues,

for some reasons the mapping i hoped will work well does not do it.

I have following source structure (sample):

<E1RDI_BODY>

<E1RDIC/>

<E1RDID

<SYMNAME>G_UMVAB_RESO_E_ST_BETR_STDZ</SYMNAME>

<SYMVALUE>ST_BETR_STDZ</SYMVALUE>

</E1RDID>

<E1RDID/>

<E1RDID

<SYMNAME>ITEM_POS</SYMNAME>

<SYMVALUE> 1</SYMVALUE>

</E1RDID>

<E1RDID

<SYMNAME>ITEM-AB</SYMNAME>

<SYMVALUE>22.01.07</SYMVALUE>

</E1RDID>

<E1RDID/>

<E1RDID>

<SYMNAME>ITEM-BIS</SYMNAME>

<SYMVALUE>31.01.07</SYMVALUE>

</E1RDID>

<E1RDID

<SYMNAME>ITEM_POS</SYMNAME>

<SYMVALUE> 2</SYMVALUE>

</E1RDID>

<E1RDID>

<SYMNAME>ITEM-AB</SYMNAME>

<SYMVALUE>22.03.07</SYMVALUE>

</E1RDID>

<E1RDID/>

<E1RDID>

<SYMNAME>ITEM-BIS</SYMNAME>

<SYMVALUE>31.03.07</SYMVALUE>

</E1RDID>

</E1RDI_BODY>

E1RDI_BODY has cardinality 0..999999

E1RDID has cardinality 0..999999

SYMNAME and SYMVALUE have cardinality 0..1

As a target I have a part of EANCON_INVOIC_D96A date structure, looks like

/ns0:MT_EANCOM_INVOIC_D96A/S_UNB/S_UNH/G_SSG25 Element 0..999999

/ns0:MT_EANCOM_INVOIC_D96A/S_UNB/S_UNH/G_SSG25/S_LIN Element 1..1

/ns0:MT_EANCOM_INVOIC_D96A/S_UNB/S_UNH/G_SSG25/S_LIN/D_1229 String 0..1

I should map SYMVALUE to D_1229 for every occurence of "ITEM_POS" in SYMNAME

As i supposed, i was able to create a given number of G_SSG25 with

createIf(stringEquals(removeContexts(SplitByValue([type=Valuechanged]/E1RDI_BODY/E1RDID/SYMNAME=)), const([value=ITEM_POS])))

But for D_1229 I can not apply such mapping again, like

ifWithoutElse([keepss=false]stringEquals(collapseContexts(SplitByValue([type=Valuechanged]/E1RDI_BODY/E1RDID/SYMNAME=)), const([value=_POS])), collapseContexts(SplitByValue([type=Valuechanged]/E1RDI_BODY/E1RDID/SYMVALUE=)))

I can see the values the using "Show queue" function, but the attributes then are simply opposed in the target document!

Only constants can be mapped, but i don't need them

I have read about some UDF in similar cases, is it definitly the case for it? Can't I use grafical mapping only to create a target document?

Best regards

Sergej Naimark

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

If you don't know how to do the with the graphical mapping and little bit confuse then it is better to go to create UDF why because you won't get any difference related to performance if you use the UDF.

UDF is the better option for such type of complex issues.

Warm Regards,

Vijay

Former Member
0 Kudos

Hello Vijay,

thank fou for propmt reply,

what such a UDF can looks like?

Best regards

Sergej