on 02-02-2012 5:58 PM
Hello,
we use SOAP Adapter to connect some external Web Services in our integration sceanrio (One Sync Interface: Sender System A -> SAPPI -> External WS), unfortunately in case of application error the soap fault header is missing.
For Exmaple we get following SOAP Fault from external Service:
I find this original SOAP Fault Message form External WS in PI defaulttrace file.
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
<SOAP-ENV:Fault>
<faultcode xmlns:xxx="http://xxx.de/interfaces/business-error">xxx:UnknownSSS</faultcode>
<faultstring>The XXX is unknown on MyServer</faultstring> <faultactor/>
<detail>
<xxx-msg:errorDetail xmlns:xxx-msg="http://xxx.de/interfaces/msg/1.0">
<xxx-msg:errormessages>
<xxx-msg:message language=""/>
</xxx-msg:errormessages>
<xxx-msg:errorparameter>
<xxx-msg:parameter>
<xxx-msg:key/>
<xxx-msg:value/>
</xxx-msg:parameter>
</xxx-msg:errorparameter>
</xxx-msg:errorDetail>
</detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The Info from SOAP Header is missing in SAP PI after SOAP Adapter, this cause huge problem for Sender System. Is there any easy way to fix this problem? How could I pass the original soap fault back to the Sender System. At least to get the info back to sender system for further analyse in case of error.
best regards,
Hai
This is the rule. You are consuming third party webservice using soap receiver adapter. That means you use the third party wsdl. Check in WSDL whether you have fault message inaddition to request and response for that service operation. If you see it, use that fault message as target system's response and create your own fault message at the source. This way you can map the third party(target) fault message response(WSDL) to your sender response at the time of application error or exception situation. If the third party does not support fault message you cannot retrieve their response for sending back to sender system for sure.
Hope that helps.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The problem is SAP PI SOAP Adapter does not pass all information from the soap fault for further processing. The SOAP Fault Header is somehow overwritten by SAP. Instead of meanful message in the SOAP Fault Header, you will always get something like:
<faultcode>SOAP:Server</faultcode>
<faultstring>Server Error</faultstring>
We do need the original SOAP Fault from Server.
Hello,
What happens when you tick the Do Not Use SOAP Envelope option and add this in your module configuration?
ModuleKey ParameterName Value
soap XMBWS.NoSOAPIgnoreStatusCode true
This would also mean that you need to provide the whole SOAP Envelope in your request and remove it in your response though.
Hope this helps,
Mark
Edited by: Mark Dihiansan on Feb 10, 2012 3:55 AM
User | Count |
---|---|
84 | |
24 | |
12 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.