Forum

This content is now out of date.

Visit Our Community

example webservice use SOAP UI

Hi,

I am testing webservices integration for a customer, new to the YF webservices not new to SOAP webservices in general.

What I normally do is set up SOAP UI to browse the wsdl and make some tests.
I have a multi tenant YF installation which I want to use for testing the YF webservices.

Steps so far:
- checked login type (=email)
- setup SOAP UI project, use wsdl from YF server. cleared all question marks
- want to test the GETUSER function (simpelest example?)
- according to documentation it needs
- LoginID (admin email address)
- Password
- OrgID = 1 (not sure is this true in a multi tenant envr.?)
- person = AdministrationPerson
- in the AdministraionPerson:UserID = email adres of arbitrary user

SOAP UI response:



soapenv:Server.userException
java.lang.NullPointerException

bi-dikwservices





Now I am stuck... tried a lot of things...

Questions:
- Is the yfws.jar installed by default? how can I verify it is installed correctly? I presume that if the wsdl is present on the server the service is up and running? Please confirm.
- Can I increase logging so that I can see the webservice connection attempt in the logs?
- Am I missing something trivial? Like admin cannot use the webservice by default settings of any kind?

Any response much appreciated

hugo
Hi Hugo,

I have tried this out using SoapUI 5.

Request:

[code]




GETUSER
admin
1
test

admin




[/code]


It seems to work, I get a correct response:


[code]











0





Successfully Authenticated User: admin
Getting user information...
Getting user information...
Web Service Request Complete











6561537bd59a83cb31378f7205843c45
SUCCESS


admin@yellowfin.com.au
System
F
5
EN
Administrator

YFADMIN
DR
AUSTRALIA/SYDNEY
admin



[/code]


Answers to your other questions:

Is the yfws.jar installed by default? how can I verify it is installed correctly? I presume that if the wsdl is present on the server the service is up and running?

yfws.jar is only required if you are using Java and want to use the pre-generated stubs, with some helper functions. The file does not need to be installed on the server. The webservices will be working out-of-the box, available at: http:///services. Navigating to this URL will verify that the Axis services are running.

Can I increase logging so that I can see the webservice connection attempt in the logs?

Yes, see http://www.yellowfinbi.com/YFForum-Debug-logging-?thread=90436.

However the log lines that are output may be difficult to comprehend.


Am I missing something trivial? Like admin cannot use the webservice by default settings of any kind?

You need to make sure that the user you are using has the webservice function enabled. The default admin user will have this turned on by default.



ok thx,

so indeed mij axis services are not running...

http://bi.dikwservices.nl:8090/services/

gives

AXIS error

No service is available at this URL

Now how to validate the axis services...?

thx
hugo
Ha ok

http://bi.dikwservices.nl:8090/services (without the trailing slash)

works ok.

Your SOAP request also works, seems an issue with sending over the complete SOAP message with empty elements instead of leaving out the elements we do not need ...?

thx

hugo
Hi - I just started decifering YF's web services with SOAPUI. I'm posting this to share what I've learned and maybe generate some more examples in the forum. We're using the Qt framework for our application which has a nice set of web service classes. This soap message returns all report objects for a user. Also, could someone clarify the tag? Looks like it may tie to organisation.iporg. Along that lines, is there a data dictionary of sorts that maps the wsdl to the underlying views/tables?

Here's an example soap message for GETALLUSERREPORTS:

[code]





GETALLUSERREPORTS
mike@test.com
1
myPassword

mike@test.com





[/code]
With regards to Hugo's question on empty elements - I used the web service wiki examples as a base for the soap message. I only sent over the elements that were referenced in the demo code. This seems to work, so far.