WS Transformer Output

Dedicated to DataStage and DataStage TX editions featuring IBM<sup>®</sup> Service-Oriented Architectures.

Moderators: chulett, rschirm

Post Reply
WBlaustein
Premium Member
Premium Member
Posts: 24
Joined: Fri Oct 28, 2011 10:55 am

WS Transformer Output

Post by WBlaustein »

Hi,
I am facing an Issue with WS Transformer, Acutally what my job does is searching Name operation from WSDL job is running successfully, but when i open my sequential file all the columns are with NULL values.

When i see in TCP protocol, for each Input Record WSDL is passing Multiple Records as output, but the rowcount on link is matching to input link(1st transfomer count) count and the output is NULLs

job design
DB2 --> transformer --> WS Transformer --> tranformer --> sequential file

I am using DataStage 8.7
chulett
Charter Member
Charter Member
Posts: 43085
Joined: Tue Nov 12, 2002 4:34 pm
Location: Denver, CO

Post by chulett »

Moving this down to the Whizzdel World forum. :wink:
-craig

"You can never have too many knives" -- Logan Nine Fingers
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

The WSTransformer can only handle one row in and one row out by default.

Run this desired web service from some other testing tool, such as SOAP UI......

If it returns multiple rows then you will have to unpack them yourself. Put one giant column on your output link, such as "soapOutput" (there is a SOAPBody table def in the Built-in folder for this)...give it a longvarchar data type and a long length, and then put a single '/' in the Description. Also, in the message tab, select "user defined message" and pick this column in the pull down.

It should be the ONLY column on the output link.

If you are still getting nulls, there might be additional issues, but if you get the array, this is the technique to use --- you then need to send that column to an xmlInput Stage to more fully parse the exact rows from your array.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
WBlaustein
Premium Member
Premium Member
Posts: 24
Joined: Fri Oct 28, 2011 10:55 am

Post by WBlaustein »

I am getting Nulls for all the records.
But, if i hardcode some value that exists on Webservices then it giving me the output, if the same message is sending from database its giving NULLS.
eostic
Premium Member
Premium Member
Posts: 3838
Joined: Mon Oct 17, 2005 9:34 am

Post by eostic »

then something must different about the values as they are being passed when you hard code them vs the db....maybe leading or trailing spaces, the datatypes, etc.....

One thing you might want to try...

use the trace function (you may have to write it as a server job to try this)......go to the trace tab of the run dialog box and check your ws transformer stage and then also the other boxes and in your ds log at the very middle of a lengthy trace you will see the soap envelope going out and the one coming back. Compare those for values that work and values that don't;.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
WBlaustein
Premium Member
Premium Member
Posts: 24
Joined: Fri Oct 28, 2011 10:55 am

Post by WBlaustein »

Thanks for your reply
Its working now, but the problem is, when I supply 2 records to WS Transformer then the job is running good, when i supply full data to the WS Tansformer stage the job is aborting with the following message

The message is
Web_Services_Transformer_116,0: Fatal Error: Fatal: 0026`:`com.ascentialsoftware.wsclient.ServiceInvocationException: Service invocation exception: <ns1:Fault xmlns:ns1="http://schemas.xmlsoap.org/soap/envelop ... g>BIP3113E: Exception detected in message flow MDMServices_SPX_MF.MDMWebservices (broker EDR_SBX1_1_BRK) </faultstring><detail><Text>BIP3001I: Exception thrown by throw node &apos;MDMServices_SPX_MF.COM_ERROR.Throw&apos;; text is &apos;&apos;&apos;&apos;.
The throw node &apos;MDMServices_SPX_MF.COM_ERROR.Throw&apos; has received a message and thus has thrown an exception as this is its normal behavior. The message text associated with this exception is &apos;&apos;&apos;&apos;.
Since this is application generated (by message flow behavior), the user action is determined by the message flow and the type of exception generated. : /build/S700_P/src/DataFlowEngine/BasicNodes/ImbThrowNode.cpp: 265: ImbThrowNode::evaluate: ComIbmThrowNode: MDMServices_SPX_MF#FCMComposite_1_15.COM_ERROR#FCMComposite_1_2</Text></detail></ns1:Fault>
at com.ascentialsoftware.wsclient.OperationCall.handleRemoteException(OperationCall.java:369)
at com.ascentialsoftware.wsclient.OperationCall.invoke(OperationCall.java:274)
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 »

It's hard to tell exactly (suggest you do a trace like suggested up above), but it looks like it is working perfectly!! Odds are that the error in workflow is coming back from the web service that you are calling......it obviously isn't displaying any error in a nice way, but something is dying inside of that service, either because of the payload (data) that you are sending to it, or something internally to it.........

The trace will help, as it will show you exactly what you are sending up and exactly what it is sending back.

Ernie
Ernie Ostic

blogit!
<a href="https://dsrealtime.wordpress.com/2015/0 ... ere/">Open IGC is Here!</a>
WBlaustein
Premium Member
Premium Member
Posts: 24
Joined: Fri Oct 28, 2011 10:55 am

Post by WBlaustein »

Thanks for you reply, The job is getting aborted because of Schema Validation, When i checked in the Broker Queue i got the exact Error Message.

Thanks for your Reply's once again.
Post Reply