How to pass SOAP_FAULT along Web Service chain

Hi,

I’m converting a lot of old Tibco projects into webMethods and the current task at hand is to convert a Tibco project that acts as a provider to Siebel and a consumer of MfgPro.

So Siebel will call webMethods Provider Web Service that in turn is calling an MfgPro Consumer Web Service.

If the MfgPro Consumer Web Service fails (ie. it’s offline), how do I pass the the SOAP_FAULT data from the MfgPro Web Service back to the Siebel Consumer.

Constraints are that the only changes permissable to Siebel side is importing the new webMethods WSDL for endpoint URL only. Data returned back to Siebel MUST be in same format as current Tibco process.

Current Tibco project has SOAPSendReply to return successful response data from MfgPro. This is easy enough.

If a Fault occurs with MfgPro Web Service, Tibco has a SOAPSendFault process to return the SOAP_FAULT data back to Siebel. Does anyone have any idea of how I can replicate the Tibco SOAPSendFault process in webMethods ??

Cheers,
David

Did you check “Web Services Developer’s Guide”?
check the section: Adding SOAP Fault Processing to an Operation

Hi Tongwang,

Yes, I have read the Web Services Developer’s Guide (the pertinent sections several times), but, am still none the wiser as to how to populate the specific FaultDocument for the Provider Service so that this particular data is returned to the Siebel Consumer.

Just to restate my scenario: Siebel calls webMethods Provider Web Service, which in turn calls a MfgPro Consumer Web Service. A fault occurs in the MfgPro WebService. How do I ensure that the correct information is passed back to Siebel in the defined fault document ??? Do I use pub.soap.utils:addBodyEntry ??

Cheers,
David

You can still follow the steps in the documentation (you may need to try-and-error with the instructions, it’s not very easy to understand), or

You can trigger exception in the flow service, IS will generate fault automatically:

  1. use the EXIT flow step: set it Signal “FAILURE”, add your error message (from MfgPro) to “Failure Message field”.
  2. call pub.flow:throwExceptionForRetry to trigger exception, you can put the error message in the “message” parameter, so you client you see it.