cancel
Showing results for 
Search instead for 
Did you mean: 

Idoc inbound / EOIO

Former Member
0 Kudos

Hi once again,

We try to set up a Http to IDoc scenarion with QOS = EOIO. On the sender side we already set up the url with QOS=EOIO & queueid=myqueue. In SMQ2 we can see that the system make use of the queue and also in the message header under ReliableMessaging in the sending step we have both entries:

<SAP:QualityOfService>ExactlyOnceInOrder</SAP:QualityOfService>

<SAP:QueueId>MYQUEUE</SAP:QueueId>

The message witch is send by the plain http sender is a Idoc structure and we are only doing a one to one mapping.

In sm58 (transactional RFC) we can see that the xi is make use of function module IDOC_INBOUND_ASYNCHRONOUS.

With regard to the help (http://help.sap.com/saphelp_nw04/helpdata/en/b9/c5b13bbeb0cb37e10000000a11402f/frameset.htm) we expecting the function module IDOC_INBOUND_IN_QUEUE.

Obviously the system switches back to QOS=EO.

Das anybody know why?

Additionaly the Idoc is processed immediately on the receiver side. It make use of the Process code “BAPI” (BAPI_IDOC_INPUT1) Could it be possible that EOIO is not possible for this scenario?

Any help is appreciated.

Regards Oliver

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Oliver !

Check this blog:

/people/sap.user72/blog/2005/01/28/setting-up-inbound-qrfc-queues-for-serializing-idocs-using-the-idoc-adapter

Regards,

Matias

ps: please award points if helpful

Former Member
0 Kudos

Hi Matias

First thanks for your answere. Of course I know this thread and the only thing I see if I make use of table IDXQUEUE is that the system uses a Queue name like XBTOMYQUEUE instead of XBTO___MYQUEUE.

What is the difference? We cannot see any queue processing in the receiving system under WEINBQUEUE.

The only thing we want is that the receiving ECC6 is processing the incomming idocs one by one. A Serialization Object cannot be provided. Is this necessary?

Regards Oliver

Former Member
0 Kudos

Hi Matias

First thanks for your answere. Of course I know this thread and the only thing I see if I make use of table IDXQUEUE is that the system uses a Queue name like XBTOMYQUEUE instead of XBTO___MYQUEUE.

What is the difference? We cannot see any queue processing in the receiving system under WEINBQUEUE.

The only thing we want is that the receiving ECC6 is processing the incomming idocs one by one. A Serialization Object cannot be provided. Is this necessary?

Regards Oliver

Former Member
0 Kudos

Hi Oliver !

Did you also followed the steps of :

http://help.sap.com/saphelp_erp2004/helpdata/en/bd/277264c3ddd44ea429af5e7d2c6e69/content.htm

Is your "Queue processing" checlk box checked?

Regards,

Matias.

Former Member
0 Kudos

Hi Matias

Sorry, I forgot to mention it. Yes, I flaged "Queue Processing" in the receiver communication channel.

Regards Oliver

Former Member
0 Kudos

Hi Oliver !

You said that receiving system is ECC 6.0, I assume WAS >6.40 is in use. Did you activate the "queue processing" for message type in question at the WE20 (partner profile transaction) on receiving SAP system. I think you must also define the rules for the queue name in WE85 and refer to a FM that return the name of the queue when it is called. Then use WEINBQUEUE to monitor individual queues.

Also:

/people/community.user/blog/2006/11/04/how-to-serialize-idoc-xml-messages-fed-into-xi

Regards,

Matias

ps:please award points if helpful

Edited by: Matias Denker on Jan 22, 2008 12:57 PM

Former Member
0 Kudos

Hi Matias

first of all thanks that you spend so much time on it.

May be I am wrong but is this blog not dealing with outbound queueing? In WE20 I am not able to set the flag "Queue Processing" for the inbound parameters and if I understood correct the function module is used for the outbound processing. Did I overview something?

Thanks in advance

Oliver

Former Member
0 Kudos

Hi Oliver !

No problem. You're right, the steps are for outbound processing not inbound. In inbound there is not a checkbox for queue processing.

It's very strange. You IDOC receiver comm channel has interface version SAP 4.0 or higher? "SAP Release" field accordingly? as it states in SAP documentation if the IDOC_INBOUND_IN_QUEUE fm is not available, it uses the IDOC_INBOUND_ASYNCHRONOUS. ..

regards,

Matias

Former Member
0 Kudos

Hi !

Just an idea, please test the HTTP sender with a queue name of exactly 16 capital characters (for EOIO abap proxy, exactly 16 chars are needed). Also with 8.

Regards,

Matias.

Edited by: Matias Denker on Jan 22, 2008 2:02 PM

Former Member
0 Kudos

One more thing...how do you exactly know that the idocs are not coming in order to ECC 6? did you test to send some different size messages (not sorted by size or message length) via HTTP to see in which order are they received in ECC?

Regards,

Matias

Former Member
0 Kudos

Hi Oliver !

After reading some more...how about applying this blog (previously mentioned) :

/people/sap.user72/blog/2005/01/28/setting-up-inbound-qrfc-queues-for-serializing-idocs-using-the-idoc-adapter

in ECC 6.0 ? and then using the same queue name registered in IDXQUEUE as queueid in the http post ?

regards,

Matias.

Former Member
0 Kudos

Hi Matias

Whow! A lot of suggestions you did! Thanks.

This morning I tested them all. So, let me summarize my results.

I tested the 16 an 8 character variant, but it looks independent of it. Unfortunately no success!

Regarding you sequence question, its not that important to have the same order. We only want to avoid that Idocs are blocked in processing because a former Idoc sets locks on e.g. materials. Therefore we want only to process the Idocs in queue (one after the other, fist in first to be processed). I also will check if we can collect the Idocs and process them in a queue.

Finally I set up the table IDXQUEUE on the ECC6 as described in the blog. I created several combinations of Ports, because I was not really sure about the port used. In the Idoc itself and in the message monitor under outbound binding it uses SAPXID. I created the following entries but no success:

PORT CLIENT MESTYP QUEUEID

A000000025 010 MBGMCR 12345678

SAPLSQ 040 MBGMCR 12345678

SAPXID 010 MBGMCR 12345678

SAPLSQ: ECC6

SAPXID: XI

A000000025 : port in ECC6 / WE21

If you have not further ideas or of course anybody else, I will open a OSS Call.

Regards Oliver

Former Member
0 Kudos

Hi Oliver !

At the moment, I'm out of ideas. If you can find anything, please post it. A last one...do you have any other ECC in your landscape (QA?) to test?, just check the "queue processing" checkbox in idoc receiver adapter and try to see if it works..

regards,

Matias.

Answers (2)

Answers (2)

Former Member
0 Kudos

The problem was, that I did not entered the correct SAP Release in the communication channel. SAP answered on request the following:

...

You set the SAP-Release as "4.0", but this is an application release.

You must specify an basis release such as "45B", "640", "700" and so

on. To use IDoc queueing, the release must be greater or equal "640".

You set "4.0" and the system thinks you are using a release 4.00

where the queue functionality is not available.

...

Thanks all of you for your help.

Regards Oliver

Former Member
0 Kudos

Hi Oliver!

Are u using serialization? Are you filling the serialization number tag of Idoc header?

Peter