We want to use Tidal Web-service adapter to scheduler SAP BO DS jobs (which are enabled as web-services). We are able to successfuly execute the jobs, without authentication (userid/password).
However once we enable authentication, SAP BODS requires following a 2 step process as below, which we are not able to figure out how to achieve :(
First Tidal adapter needs to invoke Logon web-service passing user-id, password information and receive a SOAP response message containing a SessionID
Tidal adapter needs to invoke the actual job web-service that needs to be scheduled/executed, by passing the SessionID value received in step1 call as an input to the this/2nd web-service call. However the SessionID needs to be passed in SOAPHeader instead of Request message in SOAP Body. (Below snipped for reference)
We are able to perform step 1, however not sure how to pass the value to step 2 call (note the field is in SOAP header). Any input/documentation will help.
We were NEVER able to get that 2-step process working on TES 5.3.1
There just doesn't seem to be a way to capture that SessionID value to a variable or anything where it can be reused for a parameter. We finally had to write a wrapper for the web service in .NET
Tidal calls the wrapper web service....passing it the parameters, and the wrapper talks to the target web service and handles the session ID stuff before passing on the parameters. It gets real sticky when you try to return the target SOAP faults all the way back to Tidal though.
Yeah, wrapper web service is an option however custom development, more failure points, require building HA etc. ... would have expected Tidal like enterprise tool to provide this out of box, else we loose value of using a ready scheduler product like Tidal.
Am pretty new to Tidal, so a novice and have some follow up questions :)
Is "Tidal Enterprise adapter for WS" part of TES OR these are two different components. If so not sure if adapter version has capability. I just came across below article on WS adapter and seems CISCO has indicated SOAP response can be fed as input to subsequent jobs. Not sure by using global variables.
Also assume TEO adapter (below) is different than TES or Tidal enterprise adapter for WS (bit confusing). And then there is CPO....
Complementary to REST, SOAP creates a predefined contract with the client that describes how the service will be called, what parameters it expects, and what data structures it returns. The SOAP/WSDL job instance is an invocation of a Web Services operation defined for the connection. When the job instance runs, the SOAP request― with the operation name and its arguments (WSDL) - is sent to the Web Services endpoint, and the output of the event is returned as a SOAP response. The response can be modified and passed on to subsequent jobs across the entire range of scheduled job types available.
I was able to implement something similar which may help you.
Our first webservice job uses a custom stylesheet to format the job output. The stylesheet returns just the token ID to the job output when the job was successful. if unsuccessful, the stylesheet returned the error message.
The next job, uses a parameter in the soap header, the parameter is set to the variable output from the first job.