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

Error rendering macro 'rw-search'

null

Versions Compared

Key

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

...

  • Report
  • Report category
  • Report subcategory
  • Data source
  • View
  • Dashboard
  • Transformation flow

Export Web Services

This process will help you navigate through the export web services, to get exportable information and reuse it for other services:

  1. Use the GETCONTENT function to retrieve all the Yellowfin content available to be exported. This will also be useful if you want to export everything.
  2. This function returns an array of ContentResource objects containing Yellowfin content details, that you can reuse in other calls to import, export, or validate details. Refer to the object definitions for more details on this object.
  3. You can also configure your own export list and place content definitions into the ContentResource object. The object definition will reveal what elements are required for each Yellowfin content.
  4. You need to know the object's resourceType value for each of the Yellowfin content types:

    Content typeContentResource resourceType

    Report category

    RPTCATEGORY

    Report subcategory

    RPTSUBCATEGORY

    Data source

    DATASOURCE

    View

    VIEW

    Dashboard

    GROUP

    Report

    REPORT

    Data Transformation

    ETLPROCESS



  5. Instead of manually searching for dependencies of all content types, use the GETEXPORTDEPENDENCIES function, specifying a content whose dependencies you need by storing its details in the ContentResource object.

  6. For instance, if you export one dashboard, you can include a single object into ContentResource, representing that particular dashboard. The function will return that dashboard's dependencies, including its reports, views, data sources, categories, and sub categories (these are returned in a ContentResource object array).
  7. To get an XML file with Yellowfin content, you can create an array of multiple ContentResource objects and call the EXPORTCONTENT function. You can proceed to import this file into another Yellowfin environment as well.

  8. Note:  The GETEXPORTDEPENDENCIES and EXPORTCONTENT web services do not work properly with Client Org resources. Only default org resources can be exported properly using these functions. 

 

 

Main Export Functions

 

Anchor
GetContent
GetContent

...

Expand
titleGETEXPORTDEPENDENCIES

This function returns all the dependencies of a specific content. The ContentResource object is used to specify the content with the help of the resource ID (which can be retrieved using the GETCONTENT call). For instance if a report is the defined content type, then the response will display its dependencies, such as the report category, sub category, data source, view, etc.

 

Request Parameters

The following parameters should be passed with this request:

Request Element

Data Type

Description

LoginId

String

An admin account to connect to Yellowfin web services. This can be the user ID or the email address, depending on the Logon ID method.

This account must have the “web services” role enabled, and must belong to the default (i.e. primary) org.

Password

String

Password of the above account.

OrgId

Integer

Default (i.e. primary) organization ID within Yellowfin. Always set this to 1.

Function

String

Web service function. Set this to "GETEXPORTDEPENDENCIES".

OrgRefStringThis optional parameter can be used to specify a client org. ID.
ContentResourcesContentResourceObject containing metadata of the content whose dependencies are to be retrieved. See table below.

 

The following parameters are specified in the ContentResource object to call this function:

ContentResource Element

Data Type

Description

ResourceIDIntegerMandatory parameter to provide internal ID of the content.
ResourceTypeString

Mandatory parameter to specify the content type. Could be one of:

  • RPTCATEGORY
  • RPTSUBCATEGORY
  • DATASOURCE
  • VIEW
  • GROUP
  • REPORT
  • ETLPROCESS
 ResourceUUIDString This optional parameter can be used to provide the UUID of the content. 

 

Request Example

Below is a SOAP XML example for this request:

Code Block
languagexml
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.web.mi.hof.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:remoteAdministrationCall>
         <arg0>
 		  <loginId>admin@yellowfin.com.au</loginId>
            <password>test</password>
            <orgId>1</orgId>
            <function>GETEXPORTDEPENDENCIES</function>
            <contentResources>
               <resourceId>56169</resourceId>
               <resourceType>VIEW</resourceType>
            </contentResources>          
         </arg0>
      </web:remoteAdministrationCall>
   </soapenv:Body>
</soapenv:Envelope> 

 

 

Response Parameters

The returned response will contain these parameters:

Response Element

Data Type

Description

StatusCode

String

Status of the web service call. Possible values include:

  • SUCCESS
  • FAILURE
ContentResourcesContentResource[]Object array containing metadata of the specified artifact's dependencies.

 

 

Response Example

The service will return the below response, according to our SOAP example:

Code Block
languagexml
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:remoteAdministrationCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/">
         <return>
            <contentResources>
               <resourceDescription/>
               <resourceId>54701</resourceId>
               <resourceName>Yellowfin Configuration Database</resourceName>
               <resourceOrgId>1</resourceOrgId>
               <resourceType>DATASOURCE</resourceType>
            </contentResources>
            <errorCode>0</errorCode>
            <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages>
            <messages>Web Service Request Complete</messages>
            <sessionId>97d7f893d787daf2806a13cdfa6f09d3</sessionId>
            <statusCode>SUCCESS</statusCode>
         </return>
      </ns2:remoteAdministrationCallResponse>
   </S:Body>
</S:Envelope>

 

 

Instructions

See below for step-by-step instructions on how to perform this call, using a Java example:

Expand
titleStep-by-step instructions
  • Define the request for this function, which includes logging in as the admin user and specifying the web service call to perform:

    Code Block
    languagejava
    themeConfluence
    rsr.setLoginId("admin@yellowfin.com.au"); 
    rsr.setPassword("test"); 
    rsr.setOrgId(1);
    rsr.setFunction("GETEXPORTDEPENDENCIES");
  • You may even identify a specific client organization:

    Code Block
    languagejava
    rsr.setOrgRef("org1");
    
  • Using a ContentResource object, specify details of the content whose dependencies are to be retrieved:

    Code Block
    languagejava
    ContentResource[] cr = new ContentResource[1];
     
    cr[0] = new ContentResource();
    cr[0].setResourceId(70307);
    cr[0].setResourceType("GROUP");
    cr[0].setResourceOrgId(1);



  • Then set this object in the request:

    Code Block
    languagejava
    rsr.setContentResources(cr);



  • Once the request is configured, perform the call:

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

    Initialize the Administration web service. Click here to learn how to do this. 

 

  • The response will contain the following elements: StatusCode and ContentResource. (See details in the Response Parameters table above.)

     

 

 

Complete Example

Below is a full example of this web service call. To use it for yourself, carry out the following the steps:

  1. Copy the code and save it as ws_ getexportdependencies.jsp.
  2. Put the file in the root folder: Yellowfin/appserver/webapps/ROOT.
  3. Adjust the host, port, and admin user details according to your environment.
  4. Run http://<host>:<port>/ws_ getexportdependencies.jsp from your Internet browser.

 

Code Block
languagejava
themeEclipse
<%   	
/*    	ws_getexportdependecies.jsp           	*/
%>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="com.hof.util.*, java.util.*, java.text.*" %>
<%@ page import="com.hof.web.form.*" %>
<%@ page import="com.hof.mi.web.service.*" %>
<%@ page import="java.nio.file.Files" %>
<%@ page import="java.io.PrintWriter" %>
<%
AdministrationServiceService s_adm = new AdministrationServiceServiceLocator("localhost",8080, "/services/AdministrationService", false);    	// adjust host and port number
AdministrationServiceSoapBindingStub adminService = (AdministrationServiceSoapBindingStub) s_adm.getAdministrationService();
AdministrationServiceRequest rsr = new AdministrationServiceRequest();
 
rsr.setLoginId("admin@yellowfin.com.au"); 				// provide your Yellowfin webservices admin account
rsr.setPassword("test");                                // set to the password of the account above
rsr.setOrgId(1);
rsr.setFunction("GETEXPORTDEPENDENCIES");
 
ContentResource[] cr = new ContentResource[1];
 
cr[0] = new ContentResource();
cr[0].setResourceId(70307);
cr[0].setResourceType("GROUP");
cr[0].setResourceOrgId(1);
 
rsr.setContentResources(cr);
 
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);
 
if ("SUCCESS".equals(rs.getStatusCode()) ) {
        	out.write("<br>Success");
        	ContentResource[] crs = rs.getContentResources();
        	out.write("<table>");
        	out.write("<tr><td> id </td><td> type </td><td> UUID </td></tr>");
        	for (ContentResource c: crs) {
                    	out.write("<tr>");
                    	out.write("<td>" + c.getResourceId() + "</td><td>" + c.getResourceType() + "</td><td>" + c.getResourceUUID() + "</td>");
                    	out.write("</tr>");
   }
} else {
        	out.write("Failure");
        	out.write(" Code: " + rs.getErrorCode());
}
%>

 


 

 

 

...

Import

...

Web Services

The following tips will enable you to navigate through Yellowfin's import web services:

...

Expand
titleSetting up the ImportContent object

To set up the ImportContent object to specify which content to be imported, you need to define the optionKey parameter by providing its optionValue. Here are some combinations that you can use:

 

optionKeyoptionValue
SKIP"true" or "false".
OPTION"REPLACE" or "ADD".
EXISTING

UUID of the existing item in the target Yellowfin instance.

This workds with optionKey=OPTION and optionValue=REPLACE.

PASSWORD1Data source password if you want the content to be encrypted during import.

 

For instance, if you exported one Yellowfin report with its dependencies (data source, view, category, sub category), your ContentResource object (which you get with GETIMPORTCONTENT call) will display the following:

ResourceIdResourceTypeResourceNameResourceUUID

70031

DATASOURCE

CSV

null

70209

VIEW

months

b974f55a-269b-4a4b-b1c6-bf9b968be723

null

RPTCATEGORY

Tutorial

a23c2ec6-a2fa-45c7-b5da-dcf3f02e6633

null

RPTSUBCATEGORY

Reports

58834ae1-2f65-44c0-b6c3-7c9cd2f91bd5

70279

REPORT

My Report

fd3794b3-62c0-4cf8-bac0-755e68d9c41e

 

Now you need to define import options for all 5 items. ImportOption's itemIndex parameter will correspond to the index number of each of the ContentResource items so that for the ContentResource array example above the following will be displayed:

ResourceId

ResourceType

importOption itemIndex

70031

DATASOURCE

0

70209

VIEW

1

null

RPTCATEGORY

2

null

RPTSUBCATEGORY

3

70279

REPORT

4

 

But if you want to replace the report with another existing report in our example, and skip the rest of the content from being imported, here is how you wll configure the ImportOption object:

itemIndex

optionKey

optionValue

Note

0

SKIP

true

The data source will be skipped.

1

SKIP

true

The view will be skipped.

2

SKIP

true

The category will be skipped.

3

SKIP

true

The subcategory will be skipped.

4

SKIP

false

The report will be imported.

4

OPTION

REPLACE

The existing report will be replaced with the imported one.

4

EXISTING

70287

This is the report ID of the report existing in the target Yellowfin that will be replaced with the imported report.

 

Note, however, that if trying to import content as 'new', you must specify its dependencies in the ImportOption object. Therefore, a new report cannot be imported without importing its required dependencies (that is, view, category, and sub category). (Note: You can choose to REPLACE the dependencies of a report with those existing in the target environment, instead of using the ones retrieved from the export file.) See below for the required dependencies of the main content types:

ContentRequired Dependencies

Report

View, category, subcategory

View

Data source

Dashboard

Category, subcategory

 

 

Main Import Functions

 

Anchor
GetImportContent
GetImportContent

...