cancel
Showing results for 
Search instead for 
Did you mean: 

Handling Fault Messages

Former Member
0 Kudos

Hi,

I have this synchronous scenario : RFC > (XI without Integration Process) > SOAP.

Imagine that there is a problem with SOAP System and i get (don't worry about the error itself):

<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:
 invalid content type for SOAP: 
TEXT/PLAIN; HTTP 400 Bad Request</SAP:AdditionalText> 
  <SAP:ApplicationFaultMessage namespace="" /> 
  <SAP:Stack /> 
  <SAP:Retry>M</SAP:Retry> 
  </SAP:Error>

I tried to add ExchangeFaultData into SOAP Interface, and mapping it but it didn't work.

Can i get this exception mapped into RFC exception?

Accepted Solutions (1)

Accepted Solutions (1)

sunilchandra007
Active Contributor
0 Kudos

Did you check /people/jin.shin/blog/2007/05/21/handling-web-service-soap-fault-responses-in-sap-netweaver-xi .

Regards,

Sunil Chandra

Former Member
0 Kudos

Hi,

Yes, i'd read it.

I believe that in that article, WSDL defines an SOAP Exception that is used in mapping and message interface.

In my situation i'm simulating that system is unavailable and i get the default SAP:Error message.

Edited by: José Pinheiro Claudino das Neves on May 4, 2010 7:14 PM

sunilchandra007
Active Contributor
0 Kudos

> I believe that in that article, WSDL defines an SOAP Exception that is used in mapping and message interface.

Yes, SOAP exception must me defined with fault payload.

> In my situation i'm simulating that system is unavailable and i get the default SAP:Error message.

Fault payload should be generated from SOAP end. So I guess it is not possible to map the error to RFC in your case:(

Regards,

Sunil Chandra

Former Member
0 Kudos

Tks.

Maybe i'm not understanding, but it seems that fault Handling in SAP PI is really poor.

If i can't connect to a specific system (like timeout) SOAP Fault is useless, because that system won't answer me.

In those cases (like timeout) i can't catch that exception and return it to the Sender (In this case R3).

Former Member
0 Kudos

The usage of your fault message is not correct, since it is designed to handle application error, in your case, it is technical error, it should be handled by alert framework.

Liang

===========SAP Definition================

Fault message types are designed for application-specific errors that occur on the inbound side and that are reported back to the sender or persisted in monitoring.

u2022 In the synchronous case, when an application-specific error occurs on the inbound side, instead of sending a response message back to the sender, the application can send a fault message to handle the error.

u2022 The fault message of the application for an asynchronous ABAP server proxy is persisted for monitoring. In the case asynchronous of Java server proxies, the fault message is part of a negative application acknowledgement (see Acknowledgments).

Application-specific means that the application on the inbound side triggers the error itself because, for example, the request message did not contain sufficient information.

========= End of SAP Definition================

Answers (0)