cancel
Showing results for 
Search instead for 
Did you mean: 

Mapping for Order Split

shweta_walaskar2
Contributor
0 Kudos

Hello,

We have a requirement that we would receive IDocs from a third party and we would send them back.

But the condition is,if these ORDERS IDocs contain materials belonging to different distribution channel then IDoc has to be split in two (10 or 20 DC) having materials belonging to same DC.

So at the max,we can have 2 IDocs created for 1 IDoc.

How can we achieve this?

Regards,

Shweta

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Shweta,

We have a requirement that we would receive IDocs from a third party and we would send them back.

Through which adapter are you communicating to III party?

Is it a Asynch scenario?

As per my understanding, you need to split the incoming IDOCs based on the Distribution channel.

I suggest you to use Multi Message mapping > then right click on Messages1 and select duplicate structure.

Now provide the mapping for the first messages to execute for DC = 10 similary provide mapping for second message to execute for DC = 20.

Enhanced interface determination if you want to send each one as different message.

Regards,

Venkat.

Former Member
0 Kudos

Hi Shweta,

I also think that multi mapping sould be the wright approach to solve this iusse.

You have to maintain the occurrency (1 to 2 or unbounded) of the messages on the messages tab in message mapping.

The XI creates an envelope in this case

<Messages>

<Message1>

fields of the idoc

</Message1>

<Message2>

fields of the idoc

</Message2>

....

<MessageN>

fields of the idoc

</MessageN>

</Messages>

Kind reards

Jochen

Answers (3)

Answers (3)

shweta_walaskar2
Contributor
0 Kudos

Problem resolved

Former Member
0 Kudos

I think ur requirement matches with this thread [; so kindly request u to see the answer provided by me(kubra Fatima)

shweta_walaskar2
Contributor
0 Kudos

Hello,

Thanks a lot to all of you for the suggestions which are really useful.

I would try to implement this,and would update the thread once it is done.

Regards,

Shweta

shweta_walaskar2
Contributor
0 Kudos

Hi All,

The problem is resolved.

I have created an external definition with IDoc xsd having occurence 0..unbounded for IDOC node and used this as target structure.

Duplicated subtree for entire IDOC and mapped input field for both.

On root IDOC elements,applied logic,that create first if DC 10 exists and create second if DC 20 exists.

Thanks again to all who have helped in achieving this.

Best Regards,

Shweta

prasannakrishna_mynam
Contributor
0 Kudos

Hello Shweta,

Use the MessageSplit to achive this, For the ORDERS IDOC (target) in Message Maping change the occurences to 0..unbound in Messages Tab.

In mapping Sort your material based on DC and splitByValue(ValueChanged) . You will have two taget messages based on DC.

In ID, use Enhanced InterfaceDetermination, thats resolves your issue.

Regards,

Prasanna