cancel
Showing results for 
Search instead for 
Did you mean: 

Fault Message Mapping for SOAP Scenario

former_member10771
Active Participant
0 Kudos

Hi ,

I have configured a Proxy to SOAP synchronous scenario. The scenario is working fine. Now I need to map the fault message and display the message in SAP in case of any errors. I have used the standard Fault message. But I dont have any message from the WSDL which I can map to the standard fault message. Is it that we need to tell the wenservice team to modify the WSDL to include the fault message or is there any other way out to acheive the same.

Thanks

Amit

Accepted Solutions (1)

Accepted Solutions (1)

RaghuVamseedhar
Active Contributor
0 Kudos

Hi Amit,

Please ask the WebSerivce team (Sender system) to edit their web service (WSDL) so that it contains request, response and fault structures. Because in your scenario, Proxy to SOAP (Synchronous), sender proxy should be coded in such way that it can handle fault sent back from target system (SOAP).

If WebService team (Sender Proxy) is not in position to change their proxy, then ask the target team (SOAP) not to send fault message to PI. If something goes wrong then ask target system (SOAP) to send fault message in response message structure.

If above options are not possible, then it is not possible (I think) to handle fault message which is sent by target system and sender system (WSDL) is not ready to accept it.

Regards,

Raghu_Vamsee

Answers (4)

Answers (4)

baskar_gopalakrishnan2
Active Contributor
0 Kudos

>>> Is it that we need to tell the wenservice team to modify the WSDL to include the fault message or is there any other way out to acheive the same?

Fault message is to provide meaningful message to the other end if there is a validation error or business exceptions or so...

a) You are importing WSDL of the third party and using it in soap receiver target side.

b) Normally it is best practice to create a WSDL which contains request, response and fault message. if your wsdl has fault message type declared then you can map the wsdl fault message with your proxy side fault message(which you can create). Please note you rely on the third party wsdl. Third party WSDL must have application logic coded to support fault message in case of application error occurs. Example if there is a validation that does not go through then their application logic must populate data in the fault message of wsdl. Then only if we map the wsdl fault msg to our proxy fault msg, we get meaningful fault details.

If your target WSDL does not support fault mesg, it is not going to be helpful at all.

udo_martens
Active Contributor
0 Kudos

Hi Amit,

you can test the service (for example with SOAP UI) and send some strange (wrong) values to see how the system reacts. If you see something significant (for example certain empty fields) you can build a logic inside your mapping to fill the fault structure.

Regards,

Udo

former_member10771
Active Participant
0 Kudos

Hi,

Do you mean that I need to create one more additional data type / XSD and then use it to map it to the fault message. WSDL currently when I import it has request and response which I map to the corresponding request and response of the proxy.

I was under the impression that the WSDL would be changed to accomodate another fault message and then I could map the request response and fault accordingly.

Let me check if I can do as suggested.

Thanks

Amit

former_member10771
Active Participant
0 Kudos

Hi All,

I want to know how to get the structure of the SOAP fault message to build a XSD. If I execute the scenario for wrong values I am not able to get the desired structure of the Fault message from the SOAP response. Please can some one help me on this.

udo_martens
Active Contributor
0 Kudos

Hi Amit,

>Do you mean that I need to create one more additional data type / XSD and then use it to map it to the fault message

No

You are using an implemnented service (wsdl). You dont know who else is using it. Apparently it is not gonna be changed. My proposal was to test how the system reacts in case of appliction errors. It should not be too difficult to provoke application errors. If you identify that a certain field is emplty ONLY in case of such an application error, you can fill your fault message types with constants.

Regards,

Udo

RKothari
Contributor
0 Kudos

Hello,

I guess you just need to create a additional data type or XSD related to the exception thrown by proxy. You can use the same structure in message interface.

Have a look at the below mentioned blogs:

/people/venu.v5/blog/2009/08/05/rfcbapi-exceptions-handling-in-sap-netweaver-xi

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

-Rahul

markangelo_dihiansan
Active Contributor
0 Kudos

Hello,

Maybe you can try this:

1.) Add this module (soap) configuration into your soap receiver XMBWS.NoSOAPIgnoreStatusCode set to true. This should set all the responses as a payload.

2.) Use Java Mapping in parsing your error into the Soap Fault message.

Hope this helps,

Mark