cancel
Showing results for 
Search instead for 
Did you mean: 

Idoc-XI-Idoc Scenario

Former Member
0 Kudos

Dear All,

I am working on Idoc-XI-Idoc scenario in which I am getting ORDRSP Idoc in input. In one of its segment I am getting value as either A or B. If value is coming as A in input then in the output we want PORDCR101 Idoc but if we have B as value in the source idoc then we should have multiple PORDCR102 Idocs ie for each line item there will be different idocs.

Please guide me on how we can implement BPM in this scenario as required two MM i have created and they are working fine.

Regards,

NJ

Accepted Solutions (1)

Accepted Solutions (1)

former_member200962
Active Contributor
0 Kudos

Hi,

If value is coming as A in input then in the output we want PORDCR101 Idoc but if we 
have B as value in the source idoc then we should have multiple PORDCR102 Idocs ie for 
each line item there will be different idocs.

For Source = A:

SourceField----
                      -----equalS ----ifwithoutElse ----then Constant(blank) ---> PORDCR101
Constant(A)---

Assuming that A in input then in the output we want PORDCR101 Idoc means that you need only one occurence of the IDOC

For Source = B:

SourceField----
                      -----equalS ----ifwithoutElse ----then LineItem ---> PORDCR102
Constant(B)---

Regards,

ABhishek.

Answers (4)

Answers (4)

Former Member
0 Kudos

Hi,

In your case only one IDOC is sent to Receiver at a time, based on some condition.

So no need of creating 2 Mapping Programs.

In Mapping program Source Structure is ORDRSP, and Target structure should have 2 IDocs PORDCR101 and PORDCR102.

Before adding the 2 receiver IDoc types in the Message tab of target message structure in mapping, change the occurence of PORDCR102 to 0..unbounded, as for each item this IDoc is determined.

Map the IDOC nodes of the 2 IDocs as follows.

condition field -


> Equals -


> 'A' -


> createIf -


> IDOC (node of PORDCR101)

In the same way for PORDCR102, but check with 'B'.

If Condition is TRUE, then only IDOC gets created. So at a time only one type of IDOC is created and sent to receiver.

Complete the mapping and all other development in ID.

If any issue, let me know.

Regards,

Ravi.

prasannakrishna_mynam
Contributor
0 Kudos

Hello,

You can do this with out using BPM, since we need to create multiple PORDCR102 Idocs based on each line item.

1) Set the occurences for target MessageType unbounded in MM.

2) In ID Configure the Interface determination and select Enhanced option.

this resoves your issue.

prasannakrishna_mynam
Contributor
0 Kudos

Hello,

I want to modify something to my above reply, since we can't directly go and change the occurence to unbound for standard IDOC , we have to change the XSD and import it back to IR.

Steps to follow:

1) Save the IDOC with xsd extension into your local disk.

2) Change the occurences to unbounded in xsd, manually and save.

3)Import the idoc back into IR.

The following links provide you indetails explanation of what i have mentioned, please go through it.

https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/changingtheOccurrencesofStandard+IDOC

https://www.sdn.sap.com/irj/scn/wiki?path=/display/xi/filetoMultipleIDOCSplittingwithoutBPM

former_member200962
Active Contributor
0 Kudos

Hi,

we have to change the XSD and import it back to IR.

I would recommend do not do this....instead go to the Signature Tab of Message Mapping and change the occurence of your message (initially it will 1..1; just change it to 0..unbounded or as per your need)

Regards,

Abhishek.

former_member581827
Participant
0 Kudos

Hi,

I think here there is no need of using BPM.

Based on source input value in one of the field we can specify condistion based recievers in reciever detetmination itself.

Please have look at the reciever determination where we can specify conditions and the recievers as well.

Regards,

Chandra.

Former Member
0 Kudos

Hi,

You need to you the map based on the condition. This condition you can specify in interface determination step. You just need to use '+' and add the other mapping and then give the condition at which you want to use this map.

If you have different receiver then you can put this condition in receiver determination step while configuring the receivers.

Regards,

Shweta.

former_member200962
Active Contributor
0 Kudos
If you have different receiver then you can put this condition in receiver determination
 step while configuring the receivers.

]

How specifying the condition in receiver determination help in creating multiple instances of IDOC??