on 11-19-2008 8:59 PM
Hi,
I have a IDOC to Soap Sync Scenario where I send the message to a Webservice. I have used a BPM since we need to catch the resposne of this message and map it to a RFC. For ex if I get a success resposne I need to map success if not than I need to catch the error and map it to the RFC. Now here in some cases like if the target system (webservice) is down than XI raises a sap application error:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <!-- Inbound Message
-->
- <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
<SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code area="MESSAGE">GENERAL</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Connection refused (errno:239)</SAP:AdditionalText>
<SAP:ApplicationFaultMessage namespace="" />
<SAP:Stack />
<SAP:Retry>M</SAP:Retry>
</SAP:Error>
Normally XI stops the process in these cases and does not proceed to the next step but I need to catch this message and map the content in the AdditionalText to the target RFC. Can anyone let me know how to catch this SAP Application Error in BPM and map it to the RFC.
Thanks,
Bhargav
Hi!
Define an exception in your ccBPM (step) and then handle it.
Regards,
Volker
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Bhargav!
Now I do not really understand your problem, because SAP: is nothing else than a namespace in the Fault Message as you can see here ...
<SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="1">
Maybe I'm too tired to understand your problem now, because here in Central Europe it's 11.30 p.m. ....
Regards,
Volker
Hi Bhargav
you can define fault messages for SOAP
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/
and use them when the target system down error. allow to raise exception. Define a container variable for fault message.
Thanks
Gaurav
Hi Gaurav,
As I have mentioned I need to catch the application error in the BPM. If you see the discussion that is mentioned after the blog you have mentioned it is stated that the fault messages or the application error cannot be caught in BPM.
In the blog that you stated we can catch the fault message and map it to a message structure but only to that extent after that it would stop the BPM process at that step but would not proceed further as shown in the screenshot given in the blog it would fail as "application error restart not possible".
I need to proceed further and capture this error to an RFC Structure and call a proxy.
Here after the error it does not proceed to the next step.
Thanks,
Bhargav
Hi Bhargav!
As far as I can see you should encapsulate the SOAP SEND step in a separate Processing Block defining the exception in your Send Step and defining a dedicated exception handling branch.
Currently it looks as if you have one exception branch and this is only called when the first step of your BPM throws an error.
Regards,
Volker
HI Bhargav
Basically after getting the fault message response you map it to trigger any exception. This can trigger the BPM to proceed furthur. More over if this doesnt work then you can write ABAP report to trigger the Workflow for some condition. Now when you get this fault message let the report based on the conditoon you set, trigger the BPM again to move the message furthur.
Give it a try
Thanks
Gaurav
User | Count |
---|---|
84 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
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.