cancel
Showing results for 
Search instead for 
Did you mean: 

Synchronous IDoc -> SOAP scenario

Former Member
0 Kudos

Hi all,

Our current scenario is like this: SAP (Idoc) -> XI -> SOAP (Idoc). The receiver system will reply with an ALEAUD Idoc as in: legacy (IDoc over SOAP) -> XI -> SAP IDoc).

We have a requirement to wait with sending the next IDoc from XI to receiver Web Service on legacy side until we get an ALEAUD IDoc back for the previous IDoc sent to the Web Service.

How can we implement this?

Is BPM necessary?

As far as I know you can only set the QoS for sender adapters, and the SAP Idoc scenarios are always asynchronous. But we can implement a synchronous send step in a BPM with ALEAUD as response message. This will solve our problem, correct?

Any other way? We would like to avoid using BPM.

Any help with this is highly appreciated!

Br,

Kenneth

Accepted Solutions (0)

Answers (2)

Answers (2)

udo_martens
Active Contributor
0 Kudos

Hi Kenneth,

You are right:

your message from BPM to SOAP is <b>NOT</b> a IDoc message; it looks like - may be - the IDoc XML. It is a SOAP message and you can send it synchronous.

In my point of view BPM is reqired, if you want to implement the wait logic at XI:

IDoc->BP

BP<->SOAP

BP->ALEAUD

Regards,

Udo

Former Member
0 Kudos

Thanks for your reply, Udo:)

I am currently building the BPM now.

So, you are saying that I cannot create an inbound sync MI with input message IDOC and response message ALEAUD?

We want to send ACC_GL_POSTING IDoc (or identical structure) to a Web Service and receive the ALEAUD from the legacy system through a Web Service published on XI. We want to relate these two so that the BPM finishes when it receives the ALEAUD, and can then send the next ACC_GL_POSTING IDoc.

I have created the following objects in repository:

MI_ACCGLPOSTING_ASY_ABS (in receive step in BPM)

MI_ACCGLPOSTING_ALEAUD_SYN_ABS (in send step in BPM)

MI_ACCGLPOSTING_ALEAUD_SYN_IN (used for receiver interface towards legacy SOAP adapter)

MI_ALEAUD_ASY_ABS (used for send step in BPM)

I believe no mappings are necessary since we are not doing any conversions.

Can you please confirm that this looks correct, and also provide what settings I need in Directory?

Thanks a bunch!

-Kenneth

udo_martens
Active Contributor
0 Kudos

Hi Kenneth,

IDoc -> BP: 1 asynchr Outbound IF (imported IDoc), 1 asynchr abstr IF (Msgtype IDoc), Rec Det, IF Det

BP<->SOAP: 1 synchr abstr IF (Msgtype ALEAUD and Msgtype IDoc), 1 synchr Inbound IF (Msgtype ALEAUDand Msgtype IDoc), Rec Det, IF Det, Rec Agr, SOAP Rec Channel

BP->ALEAUD: 1 asynchr abstr Outbound IF, 1 Inbound IF (imported ALEAUD), Rec Det, IF Det, Rec Agr, IDoc Channel

Regards,

Udo

Former Member
0 Kudos

how you resove you problem ?

use the bmp?

but for this solutions how do you do it?

MichalKrawczyk
Active Contributor
0 Kudos

hi Kenneth,

>>>>How can we implement this?

- crete a table in r3 with status (0, 1)

- put all idocs in collect mode

- create a report that will output

idoc with the smallest idoc number

when the status is 1 and the reset it to 0

- create an extension for aleaud to change the status

from 0 to 1

just an idea:)

probably there are many other ways

but this would require checking the subjest deeper

>>>>As far as I know you can only set the QoS for sender adapters, and the SAP Idoc scenarios are always asynchronous

you can set EOIO for idoc if you have ERP on was 6.40

Regards,

michal