on 12-18-2017 12:58 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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.
Hi Anil,
Check my blog for similar requirement.
Send Sync Response Immediately in Sync/Async Bridge
Regards,
Praveen.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
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.
Kindly help.
Thanks & Regards,
Somesh Mohan
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
User | Count |
---|---|
101 | |
13 | |
13 | |
11 | |
11 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.