on 08-25-2009 3:30 AM
Hi,
I am trying to build a Async/Sync Bridge in BPM. However the difference is that I need the response to be sent to a different third party to the one which sent it.
The complete scenario is as follows: A third party sends an XML file - this is picked up with the file adapter. PI then does the appropriate mapping and calls a BAPI on ECC. The response is then sent back to PI and sent to a different third parties WebService.
I have followed the document "Demonstrating How to Use Async/Sync Bridge in BPM" by Leela Ratna Morampudi.
Sending the response back to the original sender is straight forward engough. However Im not sure how to send it back to a different third party? Is this possible? Any help would be appreciated
Also, Is it possible to build this scenario using a JMS Async/Sync bridge and avoid using a BPM?
Rg,
Krishneel
Hi,
This should work without BPM by using Adapter Modules similar to JMS. (Instead of receiver file adapter for response use SOAP receiver for webservice)
Sending it back to same system is based on the corelation ID and you can try with the different communication channel with matching the same ID.
In BPM steps as well, you should be able to use the different location to pass the response.
Thanks
Swarup
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 reply Swarup.
I have already started with BPM so I will probably stick with this. Just wandering if you could provide a bit more detail on how I can send the BAPI response to a third party system which did not generate the intial request.
I am able to get the scenario to work by sending the response back to the original sender but am unsure how to send it to a different third party (i.e. communication channel).
Thanks,
Krishneel.
Hi Lela,
What I want to do is send the response from the BAPI to a system which is different to the original sender.
i.e. the request should be as follows:
File --> PI --> RFC
And the response it should be:
RFC --> PI --> SOAP
So basically I am sending the response from the BAPI back to a different adapter (not the original file adapter).
Rg,
Krishneel
Hi,
You have already given the answer of your question. See you have successfully created Sync/Async bridge with BPM.
It means on ID part you've created 3 channels,
file Sender to read data and send it to RFC,
RFC receiver channel to get request and response back
File Receiver to send the RFC response back.
So instead of File receiver create SOAP receiver and provide the End point url where you need to send the XML data.
Refer : Sync.Async Bridge SAP document for further reference
Thanks
Swarup
Edited by: Swarup Sawant on Aug 25, 2009 7:45 AM
Hi Swarup,
Sorry, I wasn't entirley clear before. When I got it working before only two adapters were being used, SOAP and RFC.
i.e:
Request: SOAP>PI>RFC
Response: RFC>PI>SOAP
This scenario was simply to test the BPM sync/async bridge. However, now I need to introduce a third adapter. This is what I am stuck on!
i.e. Request: File>PI>RFC
Response: RFC>PI>SOAP
Rg,
Krishneel
Hi,
For above scenario you don't need BPM. Its straight forward Synchronous scenario. For testing purpose its fine..:-))
Also refer the steps given in Wiki --
https://wiki.sdn.sap.com/wiki/display/XI/FILETORFCTOFILEwithBPM
Here the scenario is File --> RFC & RFC response --> file
so instead of File, create SOAP Receiver.
Follow the steps mentioned in the above wiki and just one change would be to have SOAP channel instead of File receiver.
Thanks
Swarup
Hi Swarup,
Thanks for your posts.
I have built everything, however I'm facing some problems with the RFC receiver. In the communication channel monitor I see this error:
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: com.sap.aii.adapter.rfc.afcommunication.RfcAFWException: error while processing message to remote system:com.sap.aii.adapter.rfc.core.client.RfcClientException: could not get functionname from XML requst: com.sap.aii.adapter.rfc.RfcAdapterException: failed to read funtionname from XML document: missing namespace declaration(2)
Do you know what could be wrong?
I have already tried reimporting the BAPI and refreshing the caches without any luck.
Thanks,
Krishneel
Your BPM design:
Receive(Async) --->Transformation(if Any) ---> Send(Sync, to RFC) ---> Transformation (if Any) ---> Send(Async, to 3rd party)
Ensure that the Graphical mapping that you have defined is producing the required RFC (structurewise).
You can get the RFC payload from SXMB_MONI.....you will have an entry for BPM_to_SAP system (synchronous RFC send).
For the Message processing entry for BPM_to_SAP check what is the payload that you get after the Request Message Mapping step. This is the payload that is send to the SAP system. I hope that the SAP system from which the RFC is imported and the one to which the RFC is send is the same.
Regards,
Abhishek.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.