Error communicating with Siebel onDemand using webservices

I am trying to invoke webservices on Siebel OnDemand system from webMethods and I get the following error message in the response soap message
SBL-ODU-01006Internal Error: Session is not available. Aborting.


In the webservices documentation gven by Siebel OnDemand it says:

The login request is an HTTPS request to instantiate a session and obtain a session ID.
A client invokes login by sending an HTTP GET request to a URL like the following:
https://server_name_here/Services/Integration?command=login

Login input.
The input to login is provided in the URL parameters and the HTTP headers, as follows:
■ The only URL parameter to be set is command. This parameter value is login.

■ Two HTTP headers, UserName and Password, must be set with the appropriate values for your
system. For example:
❏ UserName: name@email.com
❏ Password: password
■ Login output. The login command returns the following items:
■ A session cookie, jsessionid. The client must use this cookie when submitting subsequent requests, including logoff requests.
■ A status code of 200, if the session does not encounter any errors. This indicates that the request succeeded.

My Question:
I tried invoking pub.client.http service with the URL, userid and password.
The output status code of 200 is returned in the response but I dont see any sessionID in the output.
How do I get this session ID?
In fact I get the status code 200 even if i dont give userid and password in the pub.client.http request

Your help is very much appreciated.
Thanks,
Ravi

My suggestion is to get this working with a web services testing tool like SoapUI or SoapSonar that will allow you to populate the http header variables as well as the soap request itself. Work with the Siebel technical folks at your company or client to get help on their service if you need it.

Once you understand the Siebel On Demand web service, calling it from IS should be very straightforward.

Mark

Thank you… I will try that.

Mark, may be you can help me out with this.
I developed the wsd services in webMethods developer 6.1 and 7.1 using the same WSDL provided by SiebelOnDemand.

It gave me two different versions of the services and I dont understand why.
Attached are the services generated in 6.1 and 7.1 using the same WSDL.

here are the attachments
61.zip (8.59 KB)

service created in wm7.1
71.zip (12.9 KB)

Ravi,

Due to project commitments and timelines, I can’t review your code. Sorry.

Mark

Hi Mark,
I thank you very much for your suggestion to use SOAPUI tool.
Your suggestion helped me conclude that ‘I some how need to add the username and password in the HEADER’.
I will research on that or may be someone else can help me figure out if there is a way to add/edit header information to include (username and password) from webMethods.

By the way the attachments are not the code/packages they are just screenshots of the flow. Here I am attaching the screenshot again with more clarity of my question.

Once again thank you very much for your time.
Ravi
Issue.zip (18.6 KB)

The generated Flow is different because it was generated by two different versions of IS developed several years apart. The web services functionality in IS 7.1.x contains major improvements over prior versions.

The IS 7.1 release notes cover most of the changes, but to really understand the differences you’d have to expose and consume web services with support for WS-Security in both releases.

Mark

Mark,
Is there a way to add HTTP headers using pub.client.soapClient?
I did not find in the API.

What should be my next step?
Do you think opening a ticket for SoftwareAG would help?

Thanks,
Ravi

Ravi,
Currently, I face the same issue that you have. I have tried different ways in webMethods to get the session id from the login response session of Siebel on Demand. But, it never works. However, if I write a standlone java program based on Siebel on demand provided examaple, I can get it.
I wonder have you get the solution for this problem in webMethods ?
If you are, can you share your solution.
Thanks!
Thanh Ta


No. But, I am sure that the Siebel on demand should be able to provide the sessionID back in http header under variable ‘set-cookie’.
Please check with Siebel on demand folks.