Output responses from Web Service

Post questions here relative to DataStage Enterprise/PX Edition for such areas as Parallel job design, Parallel datasets, BuildOps, Wrappers, etc.

Moderators: chulett, rschirm, roy

Post Reply
olgc
Participant
Posts: 145
Joined: Tue Nov 18, 2003 9:00 am

Output responses from Web Service

Post by olgc »

Hi there,

Can you point out where I can find the message about web service stage output resonpse from a web service? I have a job with web service stage invoking Oracle Siebel web service with xml records. Sometimes the web service stage outputs responses with the data issue, sometimes doesn't. It outputs success responses; but for error data, it does not always output responses, even it always logs issues in the job log. I would like to know exactly what kind of errors it outputs error responses, what kind of errors it doesn't.

The web stage has one input link and one output link for outputing response from web service.

Thanks,
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

Hard to say, but it's likely that it is getting "no" response, or else is sending back a soap fault that is not being captured in the log.

...a couple of things to consider:

a) write and test the web service as a server job in a development environment where you can turn on the "tracing" when you run the JOb (it is an option on the tab of the run dialog). Check your WS stage on the left and all four boxes on the right. Server Jobs with ws stages will place their entire soap envelopes (sent/received) into the log, in the middle of a long list of log messages.

Review the xml envelopes in those cases when it fails. ...see what you have to prepare for.

b) once you know when/why, you can possibly handle it by parsing the problematic response on your own. This is done by having a single column on the output link of the ws transformer with a single large varchar in it.......with a long length....put a single "/" in the Description property of the output link with this single column....the entire SOAP payload will be dumped into that column for you to work with downstream....in an xmlInput Stage, or other process.....

c) Find the owner of the web service....determine what the error conditions are....determine what they send back (or nothing) if the input arguments aren't correct --- determine everything that you can about that service and how it behaves based on what is sent into it...

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
olgc
Participant
Posts: 145
Joined: Tue Nov 18, 2003 9:00 am

Post by olgc »

All messages are logged in the job log, but it's not outputed.

such as below is logged in the job log, but is not outputed in Output link. Thanks,

Server:xx
Project:xx
Job No:574
Job name:jb_call_services
Invocation:group1
Event Number:73712
Event type:Info
User:xx
Timestamp:09-Apr-2014 3:52:00 PM
Message Id:IIS-XXXX-XXXX-00000
Message:
Web_services,0: Info: jb_call_services.Ws_getid: com.ascentialsoftware.wsclient.ServiceInvocationException: Service invocation exception: <Fault xmlns="http://schemas.xmlsoap.org/soap/envelope/"><faultcode xmlns="">SOAP-ENV:Server</faultcode><faultstring xmlns="">Error running sub-process &apos;DT Error Handler Process&apos; at step &apos;SP:Error Handler&apos;.(SBL-BPR-00183)</faultstring><detail xmlns=""><siebdetail xmlns:siebelf="http://www.siebel.com/ws/fault" xmlns="http://www.siebel.com/ws/fault"><logfilename xmlns="http://www.siebel.com/ws/fault">EAIObjM ... errorstack xmlns="http://www.siebel.com/ws/fault"><error xmlns="http://www.siebel.com/ws/fault"><errorcode xmlns="http://www.siebel.com/ws/fault">SBL-BPR ... rrorsymbol xmlns="http://www.siebel.com/ws/fault"/><errormsg xmlns="http://www.siebel.com/ws/fault">Error running sub-process &apos;DT Error Handler Process&apos; at step &apos;SP:Error Handler&apos;.(SBL-BPR-00183)</errormsg></error><error xmlns="http://www.siebel.com/ws/fault"><errorcode xmlns="http://www.siebel.com/ws/fault">SBL-BPR ... rrorsymbol xmlns="http://www.siebel.com/ws/fault">WF_ERR_ ... ><errormsg xmlns="http://www.siebel.com/ws/fault">|| System Error ||Error invoking service &apos;EAI Siebel Adapter&apos;, method &apos;Upsert&apos; at step &apos;BS: Upsert&apos;.(SBL-BPR-00162)
--
Method &apos;SetFieldValue&apos; of business component &apos;PUB Contact Identity&apos; (integration component &apos;PUB Contact Identity&apos;) for record with search specification &apos;[Identity Number] = "1-NIGRO"&apos; returned the following error:"The value entered in field OLG Province of Issuance of buscomp PUB Contact Identity does not match any value in the bounded pick list PickList State.(SBL-DAT-00225)"(SBL-EAI-04451)|| User Defined || The Message received could not be processed, for additional details check SysErrCode and SysErrMessage in the response.(SBL-BPR-00131)</errormsg></error></errorstack></siebdetail></detail></Fault>
at com.ascentialsoftware.wsclient.OperationCall.handleRemoteException(OperationCall.java:388)
at com.ascentialsoftware.wsclient.OperationCall.invoke(OperationCall.java:293)
at com.ascentialsoftware.wsclient.WebService.callServiceInternal(WebService.java:1685)
at com.ascentialsoftware.wsclient.WebService.callService(WebService.java:1591)
at com.ascentialsoftware.wsclient.WebService.callService(WebService.java:1544)
at com.ascentialsoftware.wspack.Transformer.process(Transformer.java:105)
at com.ascentialsoftware.jds.StageFactory.runStage(StageFactory.java:544)
at com.ascentialsoftware.jds.StageFactory.runTransformer(StageFactory.java:361)
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

Excellent!

Good work! It's all there...you are receiving a soap fault...it is coming from the server --- hopefully you now have all you need. Show this to the author of the service and perhaps they can explain what is causing the fault or maybe they have an error in the application.

...hard to say exactly, but I see various Siebel error codes in there....a SBL-BPR-00183, a 131 and a 162.....

...also, follow my steps above and you may also be able to do things to prepare for it, instead of having it abort the Job....but you need to be prepared for "what?"....if you were to receive this from the service, you'd probably want to abort anyway.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
olgc
Participant
Posts: 145
Joined: Tue Nov 18, 2003 9:00 am

Post by olgc »

I know what's wrong in the data. That's not the issue here. The issue here is that this response is not outputed. What's the criteria for the web service stage outputing error responses?

Thanks,
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

Not sure what you mean by "output".

You have a choice....let the job abort when it receives a fault, or capture the entire payload always, and parse it on your own, determining yourself with downstram xml stages whether it has a fault in it or not. This is not particularly easy, but it can be done.

I haven't tried it in years....it is "possible" that you won't be able to intercept the fault....

But if you can (via the instructions above), start by determining how to parse the fault xml on its own, and then how to parse the "correct" return on its own.....up above I described how to capture the entire response and send it downstream.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
Post Reply