Like what you see? Have a play with our trial version.

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tip

You need to have a Yellowfin user with role functionality to perform web services calls. Click here to learn how that is done.

...

You can use pre-built Java functions to call Yellowfin API. This makes development a little bit easier as you are using pre-built functions, rather than configuring each request manually.

Tip

The code samples regarding this method can be found in the development/examples/webservices folder. See the jsp files with ‘api’ in their names. A good starting point is copying files with ‘mobile’ in their names, into the Yellowfin ROOT folder and exploring.

 

Anchor
soapcalls
soapcalls

Performing SOAP Calls

You can perform direct SOAP calls using Java generated stubs off Yellowfin WSDL.

All the code samples in the Administration Service and Report Service sections are explained using SOAP calls in Java. All the web service examples included here are explained assuming that you will call Yellowfin API from a Yellowfin Tomcat server (that means you use JSP and all your files go to Yellowfin/appserver/webapps/ROOT folder). Using languages other than Java will not bring much complexity to the code.

 

Initializing Administration Web Services

Use this command to initialize the Administration web services:

Code Block
languagejava
AdministrationServiceService s_adm = new AdministrationServiceServiceLocator(<host>,<port>,<ServicePath>, <ssl>);        

AdministrationServiceSoapBindingStub adminService = (AdministrationServiceSoapBindingStub) s_adm.getAdministrationService();

 

Initializing Report Web Services

Use this command to initialize the Report web services:

Code Block
languagejava
ReportServiceService s_rpt = new ReportServiceServiceLocator(<host>, <port>, <ServicePath>, <ssl>);

ReportServiceSoapBindingStub reportService = (ReportServiceSoapBindingStub) s_rpt.getReportService();

 


The primary objects included in these parameters are (covered in detail in the Administration Object Definition section):

 

Storing Yellowfin Session IDs

Every web service response retrieves a Yellowfin session ID. Each time a call is made without specifying a session ID, Yellowfin opens a new session. This is not suitable for some cases (for instance, if trying to pass dashboard filters to dashboard reports, all the reports must be called within the same Yellowfin session) as there may be a memory issue with too many sessions being opened. To overcome this problem, you could store the response parameter, sessionId, and pass it to the next calls:

Code Block
languagejava
String savedSessionID = ssr.getSessionId();

...

AdministrationServiceRequest sr = new AdministrationServiceRequest();
sr.setSessionId(savedSessionID);

 

Code Samples for Administration Services

Assuming you have Yellowfin running on http port 8080 with SSL disabled, see the following example to initialize an Administration service:

Code Block
languagejava
AdministrationServiceService s_adm = new AdministrationServiceServiceLocator("localhost",8080,"/services/AdministrationService", false);

AdministrationServiceSoapBindingStub adminService = (AdministrationServiceSoapBindingStub) s_adm.getAdministrationService();

 

Once you configure the request, you can call Yellowfin using the remoteAdministrationCall() function of the AdministrationServiceSoapBindingStub object:

Code Block
languagejava
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);

 

Code Samples for Report Services

Assuming you have Yellowfin running on 8080 http port with SSL disabled, see the following example to initialize a Report service:

Code Block
languagejava
ReportServiceService s_rpt = new ReportServiceServiceLocator("localhost",8080,"/services/ReportService", false);        

ReportServiceSoapBindingStub reportService = (ReportServiceSoapBindingStub) s_rpt.getReportService();

 

Once you configure the request, you can call Yellowfin using the remoteReportCall() function of the ReportServiceSoapBindingStub object:

Code Block
languagejava
ReportServiceResponse rs = reportService.remoteReportCall(rsr);

 

 

Other Languages

When developing against Yellowfin web services, it is possible to generate functional stubs against the WSDL definitions. These definitions can be found at http://<yellowfin-server>:<port>/services, for instance, http://localhost:8080/services.

The functional stubs will allow developers to make standard function calls in their native programming language which will directly communicate with the Web Services provided by Yellowfin. The process of creating function stubs should also generate any objects required by the web service.

 

Microsoft .Net Integration

With .NET, we recommend generating stubs from JAX web services. You should be able to hit the JAX web services at: http://<yellowfin-host>/webservices/Hello. It will display a page with WSDL URLs:

Image RemovedImage Added

Connect your clients to the listed WSDL URLs.

 

Note

There may be issues where data types between Java and .Net are not compatible. For example, Integer types that send through zero, rather than null. You might need to manually change the References.cs file to update the datatypes.

 

 

PHP

You can use Axis generated WSDL (http://<yellowfin-server>:<port>/services) with PHP. 

 

 

 

Section


Column
width75

Previous topic: Enable web services


Column