Hello,
i have some problems handling soap-fault-messages in a proxy-to-soap-scenario.
I have searched the web for about 3 days now and after hours and hours of try-and-error i am running out of ideas.
That's why i hope, somebody has got some advice for me...
Informations about the webservice
The webservice is provided by the european community (Documentation, WSDL) and can be used to validate VAT-Numbers.
The request- & response-message-types are defined within the wsdl, but the fault-message-type is not part of the wsdl.
If e.g. a wrong requester-VAT-Number is used, the server does not send a response, but a SOAP-Fault, that is defined within the namespace http://schemas.xmlsoap.org/soap/envelope/.
What i have done so far
I have written a program, that runs on our SAP-Systems. This program is used to check the VAT-Numbers in our system.
The communication between our SAP-Server and the server of the european community has to be routed through our PI-System.
The PI should simply forward the webservice-calls of the SAP-System to the EC-Server: No mapping is required.
That's why i tried to implement an outside-in-scenario on our PI 7.0.
I imported the WSDL and the XSD-File as external definitions, created 2 message interfaces (sender sync & receiver sync), 3 dummy message mappings (request, response, fault) and an interface mapping (sender->receiver) and set up a configuration scenario.
The proxy on our SAP-System was generated from the ESR-data of the PI-Sender-Message-Interface.
The problem
As long as the EC-server replies to our request with an response, everything works fine.
But in some situations, the EC-server sends a SOAP-Fault instead (e.g. when we are sending inconsistent data).
These SOAP-Fauls are not forwarded to the SAP-System.
PI is not able to handle the Fault-messages and the proxy on the SAP-System throws an exception of the type cx_ai_system_fault, that has the text "PARSING.ADAPTER.SOAP_EXCEPTION".
I need the details of the SOAP-Fault in the SAP-System, that's why i want a SOAPFault to result in an exception of type ZCX_FAULT.
The message-interfaces and the proxy are looking fine to me, but it simply does not work.
If anybody has a clue about how to achieve the desired behaviour, any advice would be highly appreciated.
What i found out so far
Using SXMB_MONI, i found out, that PI is trying to handle a SOAPFault as a request
- The payload shows, that we received a Fault-Message
- The trace shows, that the mapping of the request is executed
I hope i provided enough information about the problem. If not, just ask and i will add it.
Regards,
Jörg Neumann