cancel
Showing results for 
Search instead for 
Did you mean: 

No custom fault exception returned to SharePoint

guillaume_bouzebra
Participant
0 Kudos

As specified in the Developer Guide, if we add a message to the message container, specifying an error (E) and setting the result code to failed_permanent, it generates a StandardMessageFault.

So when I test the proxy (in SE80) I have the correct result:


<nm:StandardMessageFault xmlns:nm="http://mycompany.com/duet" xmlns:prx="urn:sap.com:proxy:DUT:/1SAI/TAS9B2825F673DBE6C48B46:702">
- <standard>
  <faultText>Proxy Class (generated)</faultText> 
- <faultDetail>
  <severity>error</severity> 
  <text>Non-Retriable Exception with message: Data not found. Reason : Test error</text> 
  <id>110(/IWFND/CM_COS)</id> 
  </faultDetail>
- <faultDetail>
  <severity>error</severity> 
  <text>Data not found. Reason : Test error</text> 
  <id>011(Z_ECIS)</id> 
  </faultDetail>
  </standard>
  </nm:StandardMessageFault>

But when I do the call from SharePoint (External List) we just received "Application exception occured!"

When I look into SRT_UTIL, I see that my fault contain also a CX_PROXY_INBOUND_APP_ERROR in addition to my custom fault:


- <ERROR_CONTEXT>
- <ERROR_INFO>
- <EXCEPTION_INFO>
  <TYPE>ZDREQ_CX_STANDARD_MSG_FAULT</TYPE> 
  <ERROR_TEXT>Application Error</ERROR_TEXT> 
- <CX_PROXY_INBOUND_APP_ERROR>
  <ERROR_PART href="#o696" /> 
  <ID>APPLICATION_ERROR</ID> 
  <RETRY_MODE>M</RETRY_MODE> 
  <ERROR_CLASS_NAME>ZDREQ_CX_STANDARD_MSG_FAULT</ERROR_CLASS_NAME> 
  </CX_PROXY_INBOUND_APP_ERROR>
- <ZDREQ_CX_STANDARD_MSG_FAULT>
  <AUTOMATIC_RETRY /> 
  <CONTROLLER /> 
  <NO_RETRY /> 
- <STANDARD>
  <FAULT_TEXT>Proxy Class (generated)</FAULT_TEXT> 
- <FAULT_DETAIL>
- <ZDREQ_EXCHANGE_LOG_DATA>
  <SEVERITY>error</SEVERITY> 
  <TEXT>Non-Retriable Exception with message: Data not found. Reason : Test error</TEXT> 
  <ID>110(/IWFND/CM_COS)</ID> 
  </ZDREQ_EXCHANGE_LOG_DATA>
- <ZDREQ_EXCHANGE_LOG_DATA>
  <SEVERITY>error</SEVERITY> 
  <TEXT>Data not found. Reason : Test error</TEXT> 
  <ID>011(Z_ECIS)</ID> 
  </ZDREQ_EXCHANGE_LOG_DATA>
  </FAULT_DETAIL>
  </STANDARD>
  <WF_TRIGGERED /> 
  </ZDREQ_CX_STANDARD_MSG_FAULT>
  </EXCEPTION_INFO>
  </ERROR_INFO>

So it's like an error saying that an error of type ZDREQ_CX_STANDARD_MSG_FAULT has occured.

And as it is before my custom fault (ZDREQ_CX_STANDARD_MSG_FAULT) it seems that only the "Application Error" is returned to SharePoint, instead of the "Data not found. Reason: Test Error".

How I could make the fault returned to SharePoint the same as the one I see when testing the server proxy?

Accepted Solutions (0)

Answers (2)

Answers (2)

guillaume_bouzebra
Participant
0 Kudos

Problem solved.

SharePoint was referencing a SOAP 1.1 binding.

Changing it to a SOAP 1.2 binding solved the problem.

Former Member
0 Kudos

Hi,Guillaume Bouzebra

Please tell me how to do.thanks

Former Member
0 Kudos

where place to change soap1.1 to soap1.2,in sap or sharepoint? my enviroument is sharepoint 2010.

guillaume_bouzebra
Participant
0 Kudos

At one point you give the WSDL of your service to the SharePoint guy for him to create the BCS.

I generate the WDSL to send him form SOAMANAGER, then when in the Details of your web service, expand WSDL Generation and check "Selected Binding Only" and "SOAP 1.2".

See attached screenshot

Former Member
0 Kudos

Thanks Guillaume Bouzebra,how to change soap version from soap1.1 to soap 1.2 in sharepoint?sap published as soap1.2。do you have facebook account or skype

guillaume_bouzebra
Participant
0 Kudos

I've created an additional endpoint for the service with no security (HTTP, User/password authentication) to be able to test it with soapUI (because the first endpoint is using SAML authentication).

In soapUI I have the soap fault displayed correctly.

The only difference I see between the SAML endpoint and the basic one I've created is that the SAML one contain the following parameter in the Security tab (SOAMANAGER):

SOAP Fault Security = No SOAP Faults

Is it possible this setting prevents the server from returning SOAP fault so it generates always a generic one? In this case, how to change it to make the endpoint behavior the same as in the Developer Guide?