cancel
Showing results for 
Search instead for 
Did you mean: 

XI generates own IDOC numbers in outbound IDOC

Former Member
0 Kudos

Hello, The scenario we have is R/3 --> XI --> 3'rd party (via IDOC rcvr adapter) AND then SYSTAT back from the 3'rd party to R/3 via XI.

Example: R/3 sends an IDOC with IDOC number 100. XI (by default) submits this IDOC to the 3'rd party system with IDOC number 200 (it's own internally generated number).

Accordingly, the 3'rd party responds back with a status IDOC, SYSTAT, containing IDOC 200 in the E1STATS ==>DOCNUM field.

This is now a problem since if XI submits the SYSTAT as received from the 3'rd party, it has 200 in the DOCNUM field and this fails in R/3 since there is no original IDOC with number 200.

This can be solved if XI is able to pass the original number 100 through to the 3'rd party system (since then when the 3'rd party responds it will send a SYSTAT with IDOCNUM as 100 back, which will setup correctly in R/3).

I have gone through the other pertinent posts and none of them have this specific problem / offer a solution. I'm hoping I have missed something as this seems to be a pretty basic requirement.

Thank you for the time.

Some additional details...

- 3'rd party is non SAP.

- In the IDOC rcvr adapter we have flags 'Apply Control Record Values from Payload', 'Take Sender from Payload' and 'Take Receiver from Payload' fields checked.

- We have not checked any flags in the Rcvr Agreement.

- We are not using BPM and do not have a way to correlate the inbound 200 with the original 100 that went out.

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Bhishma,

Just clarrification for you...when you said..

"R/3 sends an IDOC with IDOC number 100. XI (by default) submits this IDOC to the 3'rd party system with IDOC number 200 (it's own internally generated number)."

Here Idoc number 100 is outbound idoc from R/2 where as Idoc number 200 is inbound idoc...n they are totally different idocs..not same

I think there is work around...while mapping data from XI --> 3rd party assign / store outbound idoc in one of the unused field of inbound idoc...and while mapping back use this field to map it back...I think this will work.

Let us know the result.

Nilesh

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

I remember carrying out a similar exercise once with ALEAUDITS .The AleAduit Idoc's always contain a Field caleld ARCKEY and this contains the message id of XI.

Can you check if the SYSTAT Idoc contain this field called ARCKEY? If yes, then one possible solution would be to log down the Message ID and Idoc number in some table (Using some RFC or JDBC lookups) and then in the response from your Non SAP System you can read the Message Id from the ARCKEY field , get the Idoc number of the source and then send the corresponding Idoc to the target.

Regards

Bhavesh

Former Member
0 Kudos

Thank you all. The 3'rd party system cannot return the original IDOC number to us even if we send it to them in an unused field. Hence we are going to save the original number on our end cross referenced against the new IDOC number and look it up when the 3'rd party responds back to us.

Now, XI already does this for us via table IDXRCVPOR. It contains both the original # and the new #. So we are going to do a lookup against it.

Furthermore, we are going to use a standard RFC to carry out this lookup: RFC_READ_TABLE.

Ideally, XI will add this to the container/runtime/other parameters so that it can be retrieved without requiring a lookup.

Thanks again, Bhishma.