when a Natural client does a CALLNAT to a web service, the XMM maps the IN and OUT parameters and provides an InErr and OutErr mapping (that is not automatically generated). With this configuration, if a fault document is received, the Natural client throws an error and the fault document is logged by the xmlrpcserver runtime. Is there a way for the InErr and/or OutErr to be configured to call a different Natural subprogram or otherwise handle the error, to report the SOAP FAULT to the client?
I’m not sure if I understand your question. Who should call a different Natural subprogram in the error case ?
If the Webservice returns a SOAP fault to the XML RPC Server, the XML RPC Server returns an error indication to the RPC Client. If this is a Natural RPC Client the Natural program gets an error which can be handled in a ON ERROR statement.
All the ON ERROR can report is that there was an error in the SOAP request. The actual error cause is inside the fault document. In some cases, it would be helpful to have the error message from the SOAP Fault document available to the end user.
The Java Tester returned:
Error 2000 0086: Receive fault document.(Faultcode:my faultcode, Faultstring:my faultstring, Details:error detail, Faultactor:this actor)
If you have a newer version of Natural RPC you should be able to get the same information.