cancel
Showing results for 
Search instead for 
Did you mean: 

Sync scenario SOAP fault msg handling

Former Member
0 Kudos

the scenario is SAP ECC proxy - SAP PO 7.4 - SOAP webservice third party system and the scenario is synchronous.

when i use SOAP UI, and provide a request message, then in SOAP UI on running this data, the response shows:

<soapenv:Body>

      <soapenv:Fault>

         <faultcode>soapenv:Client</faultcode>

         <faultstring xml:lang="en">Error</faultstring>

         <detail>

            <ns:ErrorMessage>Input data does not exist</ns:ErrorMessage>

            <ns:InputRequest>

               <ns:Node1>9137634283913766681</ns:Node1>

            </ns:InputRequest>

         </detail>

      </soapenv:Fault>

   </soapenv:Body>

But the problem is the WSDL of the above service, when i import as an external definition in ESB, then in messages i can only see a Request message and a Response message, with no fault message defined.

On testing with the same input data through SAP PO, in the message log, i can see:

SOAP: Request message entering the adapter processing with user Guest

SOAP: Target url: <the target web-service url is specified here>

SOAP: Processing completed

SOAP: Continuing to response message <response message id>

Error SOAP: Response message contains an errorXIAdapter/HTTP/ADAPTER.HTTP_EXCEPTION - HTTP 500 Internal Server Error

I even copied the payload from the message monitor and pasted it in SOAP UI and run the data in it and i can still see the above fault message data in SOAP UI.

The questions are:

1. why is in PO, the error HTTP 500 is shown but in SOAP UI, it is giving the fault message? i guess, since a proper response msg is not being formed, so HTTP 500 is returned and also because the third party system has not defined a fault message type in their wsdl.

2. how to handle this scenario because since it is a synchronous scenario, we can see a system error in sxmb_moni in ecc system for the proxy message, with the error Mapping Exception: Could not determine mapping steps for message - but i guess this is due to no proper response message coming from the webservice, as the input data does not exist in third party system as the above fault message shows.

All helpful replies will be appreciated. Thx.

Accepted Solutions (0)

Answers (1)

Answers (1)

iaki_vila
Active Contributor
0 Kudos

Hi Stewart.

With this kind of issue i usually use the SOAP receiver adapter with the checkbox Do not Use SOAP envelope. Then i make the SOAP envelope request with an XSLT. Therefore you can deal with the response with a XSLT as well, mapping the correct XML or the SOAP:FAULT tags to my scenario outbound response.

Regards.