cancel
Showing results for 
Search instead for 
Did you mean: 

Idoc Tunneling - IDoc Numbers are changing

Former Member
0 Kudos

Hi guys,

i am doing IDoc-Tunneling and even though i have activated Apply Control Record Values from Payload AND Take Receiver from Payload in Receiver IDoc-CC the IDoc numbers are changing.

This means in SXMB_MONI in SOAP-Header/IDocInbound is a different IDoc-Number in Tag <SAP:DOCNUM> than in SOAP-Header/IDocOutbound.

Does anybody has a clue?! how to resolve this? Idoc-No. shouldn't change at all!

br

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

hi Carsten,

Sorry, it was my misunderstanding....

The Sender and Reciever values would be taken from the payload when we select Apply control record values from payload option in CC.

Regards,

Karan.

Former Member
0 Kudos

hi Carsten,

did you disable the DOCNUM field in your target structure of MM.

if not please right click on the DOCNUM field and select Disable Field and then test once again.

if my understanding is correct i think there is mapping to the field in your MM.

When you disable the field in the MM then it should take that value from the Payload only as per your settings in CC.

Regards,

Karan.

Message was edited by:

Chirumamilla Sukarna

Former Member
0 Kudos

Hi, well because it's about IDoc-Tunneling there is no MM. The only thing in IB R is that i imported the IDoc - that's all.

So how to handle this? IDoc is transfered in native without any conversion...

br

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

Is your requirement that the Idoc number in the source Idoc be used as the Idoc number in the Target SAP System? I wonder if this is possible.. As far as I know, the Idoc numbers are created in the respective SAP systems individually and they cannot be set / changed in XI.

Can you let us know the reason why you want to achieve this and alternately we can explore what options we have. Also, if you look up help.sap.com in the link Field of the Idoc control record , the Docnum field will not be included under Apply Control Records from Payload.

Regards

Bhavesh

Former Member
0 Kudos

Hi, well the need of the original IDoc-Number is because we send this IDoc to an EDI-Server in native IDoc-Format. Therefore because of having a consitant transfer we need this number. Also this value is used to being send from EDI to target client/customer as a reference to see between receiving customer and sending R/3. So XI is just the typical middleware....

no way to resolve this?!

Other question is that there is a Transaction-ID in EDI Server when receiving the IDoc. This ID is used when getting an STATUS.SYSTAT1 back for status issues in R/3. This ID u can find in send IDoc in SOAP-Header/RunTime under <SAP:EOReferenceOutbound type="TID"> - Tag. How can u manage to get this value to make sure which STATUS.SYSTAT1 belongs to which send IDoc?!

br

Former Member
0 Kudos

Hi, can somebody help me on with this issue?!

no one ever had the same problem and wants to <b>keep the original IDoc-Number</b>?!

br

bhavesh_kantilal
Active Contributor
0 Kudos

hmm.. one option worth giving a shot. Instead of using a RFC destination which is of type 3try using a Type T ( TCP IP Connection ) to post the Idoc to the target. We've done this to send the Idoc to a Non SAP system but now am wondering if this will work with a SAP system as well. Not sure if it iwll, but its worth a shot.

Regards

Bhavesh

Former Member
0 Kudos

Hi Bhavesh,

we already use TCP/IP because there is a daemon listening to IDoc-Interface of XI!

we have:

R/3 (Type 3) to XI (Type T) to EDISever (Daemon)

But just for my understanding: don't u ever have problem in making the message-exchange consistence through the IDoc-Number?! It's kind of hard to tell the client that this option does not exists because of getting a new IDoc-No. while sending data to EDIServer.

br

bhavesh_kantilal
Active Contributor
0 Kudos

Carsten,

We faced this issue but found a work around thankfully.

The problem was that we are sending a PO to a EDI system using the same TCP IP Connection as above. When the EDI system sends the SYSTAT, the Idoc number in the PO response is the Idoc Number created by XI.

What we found was that the mapping between the original Idoc number and the XI Idoc number is maintained in a table IDXRCVPOR on XI.

In the SYSTAT from EDI, we did a lookup to get the original Idoc number and then sent this in the actual SYSTAT to SAP.

Does this help?

Regards

Bhavesh

Former Member
0 Kudos

Ah ok, so u just compared the IDoc send from XI to EDI with the data given in SYSTAT?!

But we want to get the status given by SYSTAT to handle in R/3 which originally send the IDoc, so that we could handle the Status in R/3 saying everything is OK or not. Therefore we have to identify the original IDoc Number.

Therefore it is a must to keep the IDoc-Number send from R/3 to XI to EDI!

Did i get u right?!

br

Former Member
0 Kudos

Hi Carsten,

it is not possible to keep the idoc number unchanged, have a look at this link <a href="http://help.sap.com/saphelp_nw04/helpdata/en/13/95244269625633e10000000a155106/frameset.htm">Fields of the IDoc Control Record</a> and check the description for the docnum.

For uniqueness the docnum is changed via call to the function module NUMBER_GET_NEXT in function module IDX_XML_TO_IDOC (if you do not use idoc tunneling) or in method set_xml2itab_conv_data of class CL_IDX_IDOC_RESOURCE (if you use idoc tunneling).

We had a requirement similar to the one described by Bhavesh (more or less some kind of acknowledgment handling) and for this we used a similar solution, but no way to keep the original docnum through XI.

Kind Regards,

Sergio

Former Member
0 Kudos

hi Carsten,

could you paste soap header part of your payload in the thread( Request and Response)

Regards,

Karan.

Former Member
0 Kudos

Hi.

here is SOAP-Header IDocInbound:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Antwort

-->

- <SAP:IDocInbound xmlns:SAP="http://sap.com/xi/XI/Message/30">

<SAP:TABNAM>EDI_DC40</SAP:TABNAM>

<SAP:MANDT>010</SAP:MANDT>

<SAP:DOCREL>700</SAP:DOCREL>

<b><SAP:DOCNUM>0000000000031221</SAP:DOCNUM> </b>

<SAP:DIRECT>1</SAP:DIRECT>

<SAP:IDOCTYP>DELFOR02</SAP:IDOCTYP>

<SAP:CIMTYP />

<SAP:MESTYP>DELINS</SAP:MESTYP>

<SAP:MESCOD />

<SAP:MESFCT />

<SAP:SNDPOR>SAPQ01</SAP:SNDPOR>

[...]

This is SOAP-Header IDocOutbound:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

- <!-- Antwort

-->

- <SAP:IDocOutbound xmlns:SAP="http://sap.com/xi/XI/Message/30">

<SAP:TABNAM>EDI_DC40</SAP:TABNAM>

<SAP:MANDT>100</SAP:MANDT>

<SAP:DOCREL>700</SAP:DOCREL>

<b><SAP:DOCNUM>0000000000017054</SAP:DOCNUM> </b>

<SAP:DIRECT>2</SAP:DIRECT>

<SAP:IDOCTYP>DELFOR02</SAP:IDOCTYP>

<SAP:CIMTYP />

<SAP:MESTYP>DELINS</SAP:MESTYP>

<SAP:MESCOD />

<SAP:MESFCT />

<SAP:SNDPOR>SAPDX1</SAP:SNDPOR>

As u can see, IDoc-Number are different. the receiving system needs the original IDoc, otherwise the transfer of data is not consistent!

br

Former Member
0 Kudos

no one ever had this phenomenon?!