cancel
Showing results for 
Search instead for 
Did you mean: 

ORders05 mapping problem

Former Member
0 Kudos

ORDERS05, E1EDK1 segment has path /ORDERS05/IDOC/E1EDKA1,with occurance 0..99 and all the fields underneath

Nam1, Addrs etc.

My target file requires output_Dt/contactadd with occurance as 1 and all the samilar fields underneath like

Name1, addrs1 etc

payload comes as path /ORDERS05/IDOC/E1EDKA1,path /ORDERS05/IDOC/E1EDKA1,path /ORDERS05/IDOC/E1EDKA1 and Name1 is empty in first few segments of E1EDK1 occurances.

How do i map to target with having output_Dt/contactadd as one occurance and Name1 which is 1.1 cordinality. ?

Any help greatly appreciated.

Thanks

Accepted Solutions (0)

Answers (2)

Answers (2)

claus_wallacher
Active Participant
0 Kudos

Hi Kumar,

the ORDERS05 IDoc can have multiple E1EDKA1 segments for the different partner roles available. Typically you want to map one specific partner role to your target structure. The partner roles in the IDoc are determined by a qualifier (E1EDKA1-PARVW). Here you find entries such as

WE for ship-to party

LF for vendor

etc.

If you know which role you want to map to your target, you can use the <b>createIf</b> feature in your graphical mapping to create your target field if the value of E1EDKA1-PARVW is the correct one. Make sure you set the context to level IDOC.

Hope this helps,

Claus

Former Member
0 Kudos

Hi All,

It is working with if codition, i have another scenario -

frieghtcharge should be mapped from orders05, i was advised to map /ORDERS05/IDOC/E1EDK05/UPRBS to target field lineitem/frieghtcharge(1-1).

i am getting error as

1. e1edk05 is in another segment at header level

2. e1edk05 is not sent in the payload

Any input greatly appreciated

sam_raju
Contributor
0 Kudos

Hi Kumar,

1) Change the context of the field 'UPRBS' in your mapping to one level higher from "E1EDK05"

2) Make sure the E1EDK05 exists in the payload. you can use "exists" in your mapping function to determine if E1EDK05 exists in the payload.

Rgds,

Sam Raju

Former Member
0 Kudos

thanks for reply, i do not understand completely on how to do that

first do i need to map

e1edk05 to exists - uprbs - if not empty - Frieght charge(target)?

thanks

sam_raju
Contributor
0 Kudos

Hi Kumar,

You have to use the following logic:

If e1edk05 exists(standard function) then e1edk05 --> lineitem.

You can use the same logic at the lower lever. If uprbs exists(standard function) then uprbs>lineitem/Freight charge else constant>lineitem/freight charge.

Rgds,

Sam Raju

Former Member
0 Kudos

but the same line item (other fields ) are mapped to another segments e1edkp01 fields.

So may be i try if uprbs exists, and not empty map to frieghtcharge.

thanks

sam_raju
Contributor
0 Kudos

Hi Kumar,

E1EDKA1 in ORDERS05 has fields like PARVW and PARTN in addition to NAME1. The PARVW will have values like AG,WE,RG,RE(partner Roles) and so on. You can use this field value as condition in your mapping. Even though there are many E1EDKA1 segments, each segment will have a unique PARVW value.

You can use "if" function or "if without else" function using the value in PARVW and map the Name1 field to the Target based on that condition.

Rgds,

Sam Raju