Skip to Content
0

How to send Acknowledgement message from SAP PI (7.4 single stack) instead of ECC

Dec 18, 2017 at 12:58 PM

483

avatar image
Former Member

Hello All,

I am working on a SAOP to IDOC scenario using SAP PI. The requirement says that the sender system needs an acknowledgment from SAP PI itself and not from ECC.

To elaborate, the sender system wants a response message generating from SAP PI stating whether PI has received the message or not.

whereas, after sending the response back to the sender system(SOAP), SAP PI should process the IDOC further.

Request you all to kindly help me with a solution to achieve the above requirement.

Thanks in advance.

Regards,

Somesh Mohan

10 |10000 characters needed characters left characters exceeded
* Please Login or Register to Answer, Follow or Comment.

6 Answers

Best Answer
Manoj K Dec 19, 2017 at 05:13 AM
0

Anil,

You can build Sync-Async bridge using modules. But IDOC needs to be posted first then you can send the ack back to SOAP from PI with whatever message you want. But your requirement is to send Ack first and then post IDOC, however, this is also possible but it doesn't make sense.

Here is an overview of the design.

SOAP (with RR + Wait response bean)---->Split this into 2 interface using 2 inbound interface (One for SOAP and another for IDOC) --->IDOC to post IDOC with required mapping--->SOAP interface with required response to be sent ( This respective receiver channel should have notifiy bean). Don't forget to mark "Maintain order at Runtime"

Br,

Manoj

Show 3 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Hello Manoj,

Thanks for your response.

We have a specific wsdl with request and response message. Client wants the response message to be sent back from PI itself against the same request call.

I created one simple async scenario SOAP--PI--IDOC --ECC. Now for the response part, i create two async service interfaces(SI) in ESR where in for outbound SI, i have provided the request part of the wsdl and in the inbound SI, i have provided response part of wsdl and the related mapping.

In ICo, for the type of receiver determination, i have selected ''extended'' and added communication component for ECC and sender system both and their respective channels.

Kindly help.

Thanks & Regards,

Somesh

0

Anil,

Can you follow the approach which is suggested i.e building bridge ..you should be able to send response by that way.

Br,

Manoj

0
Former Member

Hi Manoj,

Thanks for your valuable help. I am now able to send back response message from PI successfully.

Whereas, i am getting one strange behavior in PI. Whenever a message is triggered, it gets a response but in PI monitoring i am seeing three transactions. Please find attached screenshot for reference.

Kindly help.

capture.jpg

capture.jpg (63.0 kB)
0
Anurag Gupta Dec 28, 2017 at 09:56 AM
1
Show 2 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Hi Anurag,

Thanks for the link. It helped.

Thanks & Regards,

Somesh Mohan

0

my pleasure

0
avatar image
Former Member Jan 09 at 02:22 PM
1

Hi Anil,

Check my blog for similar requirement.

Send Sync Response Immediately in Sync/Async Bridge

Regards,

Praveen.

Share
10 |10000 characters needed characters left characters exceeded
Raghuraman S Dec 19, 2017 at 05:01 AM
0

Hello Anil,

Is there any specific WSDL and endpoint for the ACK?

If yes, Split the scenario like below with two receivers. once PI receives the message both the flows will be triggered.

SOAP ---IDOC-----ECC

----SOAP------Source

Show 2 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Hello Raghuraman,

Thanks for your response.

We have a specific wsdl with request and response message. Client wants the response message to be sent back from PI itself against the same request call.

I created one simple async scenario SOAP--PI--IDOC --ECC. Now for the response part, i create two async service interfaces(SI) in ESR where in for outbound SI, i have provided the request part of the wsdl and in the inbound SI, i have provided response part of wsdl and the related mapping.

In ICo, for the type of receiver determination, i have selected ''extended'' and added communication component for ECC and sender system both and their respective channels.

Kindly help.

Thanks & Regards,

Somesh

0

Hello Anil,

I don't think you can achieve like dis.

You have to get reponse from ECC and handle it through beans..

You can refer Manoj approach else you have to use BPM.

0
Samir Lambe Dec 19, 2017 at 06:24 AM
0

Hi Anil,

As per your requirement, you need to get first ack from receiver end then IDOC needs to be triggered right!!.

1 You can create 1 interface for SOAP(SOAP to SOAP) synchronous call to target system.

2 Once you receive response from target, another interface(SOAP to SOAP) receiver SOAP channel will call IDOC (SOAP sender channel).

3 Based on response from target message you can create condition for calling IDOC(SOAP sender channel).

Regards,

Samir.

Show 1 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Thanks for your response but as per my requirement, i want to send the "Received'' message from PI back to SOAP sender as a response against the same request call. Client is not interested with the response message from receiver system but expects a response message from PI.

We have a specific wsdl with request and response message. Client wants the response message to be sent back from PI itself against the same request call.

I created one simple async scenario SOAP--PI--IDOC --ECC. Now for the response part, i create two async service interfaces(SI) in ESR where in for outbound SI, i have provided the request part of the wsdl and in the inbound SI, i have provided response part of wsdl and the related mapping.

In ICo, for the type of receiver determination, i have selected ''extended'' and added communication component for ECC and sender system both and their respective channels.

Kindly help.

Thanks & Regards,

Somesh

0
Evgeniy Kolmakov Dec 21, 2017 at 07:55 AM
0

Hi Anil!

There is another approach that could be used.

It's a kind of sync-async bridge variation (I tried it once before):

1. Create separate business component with interface having response message type for receiving acknowlegement.

2. In sender SOAP adapter use RequestOnewayBean along with WaitResponseBean (as it's used in standard Sync-Async bridge configuration).

3. Use two receivers in your iCo: your ECC system and newly created business component.

4. Delivery to ECC system goes by usual way, for second BC use separate OM to build desired response message (important: you should set correlation ID using source message ID like we do in response part of standard Sync-Async bridge configuration).

5. In receiver communication channel used by your second BC (SOAP, for example) add NotifyResponseBean module and remove standard module.

Thus, first part of your iCo sends message to receiving system (ECC) and the second - closes the bridge opened in sender SOAP adapter with response message.

Also you can use one receiving system and add additional interface to it. In this case you are able to use "Maintain Order at Runtime" option of Interface determination step. First you send response to sender system and if the operation is successful - send source message to ECC.

Regards, Evgeniy.

Show 3 Share
10 |10000 characters needed characters left characters exceeded
Former Member

Hello Evgeniy,

Thanks for your help.

While using the sync async approach, Operation mapping is throwing error which says source and target interface modes are different as it cannot take IDOC as sync interface alongwith synchronous SOAP RR for implementing the synch bridge.

Kindly help. For reference, please find attachment

Thanks in advance.

Regards. Somesh.

om-problem.jpg

om-problem.jpg (34.5 kB)
0

Hi Anil!

Simply change your sender interface to Async mode, activate the Operation Mapping and change interface back to Sync mode.

Regards, Evgeniy.

0
Former Member

Hi Evgeniy,

Thanks for your valuable input. Your approach helped me meet my requirement.

Whereas, i am experiencing one strange behavior in PI. Whenever a message is triggered, it gets a response but in PI monitoring i am seeing three transactions. Please find attached screenshot for reference.

capture.jpg

Kindly help.

Thanks & Regards,

Somesh Mohan

capture.jpg (63.0 kB)
0