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.

This section covers the overall administrative report web services.

 

 

Main Functions

 

Expand
titleTEST

This function is used to test whether or not the report web services is working.

 

Request Elements

The following elements will be passed with this request:

Request Element

Data Type

Description

LoginId

String

Yellowfin web services administrator user Id. This can be the user ID or the email address, depending on the Logon ID method.

This Yellowfin 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.

ReportRequest

String

Web services function. Set this to "TEST".

OrgRef

String

Client Org Internal Reference Id (optional).

 

 

Request Example

The following SOAP example shows the parameters that you can pass to this call:

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:remoteReportCall>
        <arg0>
            <loginId>admin@yellowfin.com.au</loginId>
            <password>test</password>
            <orgId>1</orgId>
            <reportRequest>TEST</reportRequest>           
         </arg0>
      </web:remoteReportCall>
   </soapenv:Body>
</soapenv:Envelope>

 

 

Response Elements

The response returned will contain these parameters:

Response Element

Data Type

Description

StatusCode

String

Status of the web service call. Possible values include:

  • SUCCESS
  • FAILURE

 

 

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:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/">
         <return>
            <canDrill>false</canDrill>
            <dashboardEnabled>false</dashboardEnabled>
            <errorCode>0</errorCode>
            <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages>
            <messages>Connection Tested Successfully</messages>
            <messages>Unknown Or Unsupported Request: TEST</messages>
            <messages>Web Service Request Complete</messages>
            <private>false</private>
            <sessionId>f78fe29edb19bbfe45626c2203249f4b</sessionId>
            <statusCode>SUCCESS</statusCode>
         </return>
      </ns2:remoteReportCallResponse>
   </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
  • Here's a basic request to perform this call, which includes logging in as the admin user and specifying the web service call to perform:

    Code Block
    languagejava
    ReportServiceRequest rsr = new ReportServiceRequest();
    
    rsr.setLoginId("admin@yellowfin.com.au");
    rsr.setPassword("test");
    rsr.setOrgId(new Integer(1));
    
    rsr.setReportRequest("TEST");
  • If you need to specify a particular client org:

    Code Block
    languagejava
    rsr.setOrgRef("org1");      // search for the report in this client org
  • Once the request is configured, carry out the call:

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

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

 

  • The response returned will contain the StatusCode parameter. Refer to the Response Parameter table for details.

 


Complete Example

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

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

 

Code Block
languagejava
themeEclipse
<%           
/*              ws_test_reportservices.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="javax.xml.bind.JAXBContext" %>
<%@ page import="javax.xml.bind.Marshaller" %>
<%@ page import="java.io.StringWriter" %>
<%@ page import="javax.xml.bind.JAXBElement" %>
<%@ page import="javax.xml.namespace.QName" %>
<%
	

	ReportService rsc = new ReportService();   //("localhost", 8080, "admin@yellowfin.com.au", "test", "/services/ReportService");
	ReportServiceRequest rsr = new ReportServiceRequest();
	rsr.setLoginId("admin@yellowfin.com.au");
	rsr.setPassword("test");
	rsr.setOrgId(new Integer(1));
	rsr.setReportRequest("TEST");
	rsr.setOrgRef("1");
	
	
	ReportServiceResponse rs=rsc.remoteReportCall(rsr);
	if ("SUCCESS".equals(rs.getStatusCode())) {
		  JAXBContext context = JAXBContext.newInstance(ReportServiceResponse.class);
	        Marshaller m = context.createMarshaller();
	        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML
	        JAXBElement<ReportServiceResponse> rootElement = new JAXBElement<ReportServiceResponse>(new QName("ReportServiceResponse"), ReportServiceResponse.class, rs);
	        m.marshal(rootElement,out);
		//out.write("Success");
	} else {
		out.write("Failure");
		out.write(" Code: " + rs.getErrorCode());
	} 
%>

 


 

...

Expand
titleSCHEMA

This web service returns schematic information of a specified report, which includes metadata for report columns and filters as well.

 

Request Elements

The following elements will be passed with this request:

Request Element

Data Type

Description

LoginId

String

Yellowfin web services administrator user Id. This can be the user ID or the email address, depending on the Logon ID method.

This Yellowfin 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.

ReportRequest

String

Web services function. Set this to "SCHEMA".

OrgRef

String

Client Org internal reference ID (optional).

ReportIdIntegerYou can provide a report ID to search for a particular report.
ObjectNameString(Optional) The web service name of the report. This is not needed if the report ID is provided.


 

Request Example

The following SOAP example shows the parameters that you can pass to this call:

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:remoteReportCall>
         <arg0>
            <loginId>admin@yellowfin.com.au</loginId>
            <password>test</password>
            <orgId>1</orgId>
            <reportRequest>SCHEMA</reportRequest>
            <reportId>60712</reportId>
            </arg0>
      </web:remoteReportCall>
   </soapenv:Body>
</soapenv:Envelope>

 

 

Response Elements

The response returned will contain these main parameters:

Response Element

Data Type

Description

Retrieval Code

ReportId

Integer

ID of the specified report

getReportId()

StatusCode

String

Status of the web service request

getStatusCode()

FormatCode

String

Format code of the specified report

getFormatCode()

ReportType

String

Report type of the specified report

getReportType()

LastRunStatus

String

Status code of last report run

getLastRunStatus()

LastRunTime

Decimal

Last report run time in the format of YYYYMMDDHHMMSS

getLastRunTime()

ReportName

String

Name of the specified report

getReportName()

BinaryData

String

Base64 encoded binary chunk of image, HTML, CSV, or PDF

getBinaryData()

ViewName

String

Name of view that the report depends on

getViewName()

HitCount

Integer

Number of times the specified report has been accessed

getHitCount()

DrillCode

String

Drill type if available on the report

getDrillCode()

Private

 

Determines if the report is a private or a public one

getPrivate()

Results

ReportRow

Array of ReportRow objects that contain results in the report result set (see Main Report Services)

getResults()

ContentType

String

MIME ContentType of the returned object. Possible values include:

  • “text/html”
  • “text/comma-separated-values”
  • “image/png”
  • “application/pdf”

getContentType()

Messages

String[]

Array of Strings that show debug information as the report is run on the server. Used for debugging and tracing errors

getMessages()

Charts

ReportChart[]

Array of ReportChart objects that contains multiple chart bitmaps when attached to a HTML report response.

getCharts()

Columns

ReportSchema[]

Array of ReportSchema objects that contain information on each column in the report result set, and whether the report requires user prompt filter data to be passed to it.

getColumns()

 

 

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:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/">
         <return>
            <author>System Administrator</author>
            <authoringMode>JAVA</authoringMode>
            <averageRunTime>1</averageRunTime>
            <canDrill>false</canDrill>
            <category>Tutorial</category>
            <columns>
               <columnName>TopN</columnName>
               <dataType>TEXT</dataType>
               <displayName>Top N</displayName>
               <fieldId>3</fieldId>
               <hidden>false</hidden>
               <numberOfDecimals>0</numberOfDecimals>
               <outputLocation>COLUMN</outputLocation>
               <prompt>false</prompt>
               <sortOrder>0</sortOrder>
            </columns>
            <columns>
               <columnName>AGENCYNAME</columnName>
               <dataType>TEXT</dataType>
               <displayName>Company Name</displayName>
               <fieldId>4</fieldId>
               <hidden>false</hidden>
               <numberOfDecimals>0</numberOfDecimals>
               <outputLocation>COLUMN</outputLocation>
               <prompt>false</prompt>
               <sortOrder>1</sortOrder>
            </columns>
            <columns>
               <columnName>DEMOGRAPHIC</columnName>
               <dataType>TEXT</dataType>
               <displayName>Demographic</displayName>
               <fieldId>1</fieldId>
               <hidden>false</hidden>
               <numberOfDecimals>0</numberOfDecimals>
               <outputLocation>COLUMN</outputLocation>
               <prompt>false</prompt>
               <sortOrder>2</sortOrder>
            </columns>
            <columns>
               <columnName>FormulaBuilderMetric</columnName>
               <dataType>NUMERIC</dataType>
               <displayName>Sum Invoiced (Pref Currency)</displayName>
               <fieldId>2</fieldId>
               <hidden>false</hidden>
               <numberOfDecimals>0</numberOfDecimals>
               <outputLocation>COLUMN</outputLocation>
               <prompt>false</prompt>
               <sortOrder>3</sortOrder>
            </columns>
            <columns>
               <allowPrompt>true</allowPrompt>
               <cachedValues>false</cachedValues>
               <columnName>AGENCYNAME</columnName>
               <dataType>TEXT</dataType>
               <displayName>Company Name</displayName>
               <filterDisplayType>TEXT</filterDisplayType>
               <filterId>60723</filterId>
               <filterOmittable>true</filterOmittable>
               <filterType>INLIST</filterType>
               <filterTypeCode>FILTER</filterTypeCode>
               <filterUUID>d3aaf0e4-4b67-4118-9871-7dc98933e4e3</filterUUID>
               <numberOfDecimals>0</numberOfDecimals>
               <prompt>true</prompt>
               <sortOrder>1</sortOrder>
            </columns>
            <dashboardEnabled>true</dashboardEnabled>
            <dataOutput>COLUMN</dataOutput>
            <datasource>Ski Team</datasource>
            <drillCode>NODRILL</drillCode>
            <errorCode>0</errorCode>
            <formatCode>REPORTANDCHART</formatCode>
            <hitCount>2</hitCount>
            <lastModifiedDate>2017-06-26</lastModifiedDate>
            <lastRunDuration>0</lastRunDuration>
            <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages>
            <messages>Loaded Report: 60712 Successfully</messages>
            <messages>Collating Schema Information</messages>
            <messages>Web Service Request Complete</messages>
            <preRunFilterString><![CDATA[<div class="rptFilterLogicText">
<span class="rptFilterLogicIdentifier">Company Name</span>
In List
<span class="rptFilterLogicIdentifier">[User Prompt]</span>
</div>]]></preRunFilterString>
            <private>false</private>
            <reportDescription>Top N Agencies compared to all other Agencies by demographic</reportDescription>
            <reportId>60712</reportId>
            <reportName>Agency Benchmark</reportName>
            <reportTemplate>REPORTANDCHART</reportTemplate>
            <reportUUID>c83357db-8aef-4ec7-ab72-fce34de9ee77</reportUUID>
            <reportUsage>9</reportUsage>
            <sessionId>da57441eaf7852ad59888e95775735fd</sessionId>
            <statusCode>SUCCESS</statusCode>
            <subCategory>Marketing &amp; Booking</subCategory>
            <tags>No tags</tags>
            <viewName>Ski Team</viewName>
         </return>
      </ns2:remoteReportCallResponse>
   </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
  • Here's a basic request to perform this call, which includes logging in as the admin user and specifying the web service call to perform:

    Code Block
    languagejava
    ReportServiceRequest rsr = new ReportServiceRequest();
    
    rsr.setLoginId("admin@yellowfin.com.au");
    rsr.setPassword("test");
    rsr.setOrgId(new Integer(1));
    
    rsr.setReportRequest("INFO");
  • If you need to specify the client org where the report exists, add this to your code:

    Code Block
    languagejava
    rsr.setOrgRef("org1");      // search for the report in this client org
  • You can even specify which report's comment to change the status of:

    Code Block
    languagejava
    rsr.setReportId(60712);



  • You may even specify the report client Reference ID or session ID:

    Code Block
    languagejava
    rsr.setReportClientReferenceId("1");
    rsr.setSessionId("18607a5670842650d512976b5d7ccddd");
  • Once the request is configured, carry out the call:

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

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

 

  • The response returned will contain the StatusCode parameter, along with other report specific parameters. Refer to the Response Parameter table above for details.

 


Complete Example

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

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

 

Code Block
languagejava
themeEclipse
<%           
/*              ws_reportschema.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="javax.xml.bind.JAXBContext" %>
<%@ page import="javax.xml.bind.Marshaller" %>
<%@ page import="java.io.StringWriter" %>
<%@ page import="javax.xml.bind.JAXBElement" %>
<%@ page import="javax.xml.namespace.QName" %>
<%

ReportService rsc = new ReportService();   //("localhost", 8080, "admin@yellowfin.com.au", "test", "/services/ReportService");
	ReportServiceRequest rsr = new ReportServiceRequest();
	rsr.setLoginId("admin@yellowfin.com.au");
	rsr.setPassword("test");
	rsr.setOrgId(new Integer(1));
	rsr.setOrgRef("1");
	rsr.setReportRequest("SCHEMA");
	rsr.setReportId(60712);
	rsr.setReportClientReferenceId("1");
	ReportServiceResponse rs=rsc.remoteReportCall(rsr);
	if ("SUCCESS".equals(rs.getStatusCode())) {
		
		  JAXBContext context = JAXBContext.newInstance(ReportServiceResponse.class);
	        Marshaller m = context.createMarshaller();
	        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML
	        JAXBElement<ReportServiceResponse> rootElement = new JAXBElement<ReportServiceResponse>(new QName("ReportServiceResponse"), ReportServiceResponse.class, rs);
	        m.marshal(rootElement,out);    
		//out.write("Success");
	} else {
		out.write("Failure");
		out.write(" Code: " + rs.getErrorCode());
	}  
%>

 

 

 


 


Report Result Set Functions

...

Expand
titleLOADPARENTDASHBOARDTAB

This function retrieves a specific dashboard's parent tab's definition or metadata.

 

Request Elements

The following elements will be passed with this request:

Request Element

Data Type

Description

LoginId

String

Yellowfin web services administrator user Id. This can be the user ID or the email address, depending on the Logon ID method.

This Yellowfin 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.

ReportRequest

String

Web services function. Set this to "LOADPARENTDASHBOARDTAB".

OrgRef

String

Optional parameter to specify an internal reference ID of a Client Org.

DashboardTabIdIntegerAn internal ID to specify the dashboard that is to be loaded.
SessionIdInteger(Optional) To specify a previous session by its ID.
LanguageCode (Optional) To specify a language.
ReportsOption (Optional) A list of email addresses to send the report to.


 

Request Example

The following SOAP example shows the parameters that you can pass to this call:

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:remoteReportCall>
        <arg0>
            <loginId>admin@yellowfin.com.au</loginId>
            <password>test</password>
            <orgId>1</orgId>
            <reportRequest>LOADPARENTDASHBOARDTAB</reportRequest>
            <dashboardTabId>61251</dashboardTabId>
         </arg0>
      </web:remoteReportCall>
   </soapenv:Body>
</soapenv:Envelope>

 

 

Response Elements

The response returned will contain these parameters:

Response ElementData TypeDescription
StatusCodeStringStatus of the web service call. Possible values include:
  • SUCCESS
  • FAILURE
DashboardDashboardDefinitionObject containing metadata of the specified dashboard and its subtabs.

 

 

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:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/">
         <return>
            <canDrill>false</canDrill>
            <dashboard>
               <accessCode>UNSECURE</accessCode>
               <categoryCode>TUTORIAL</categoryCode>
               <elements>
                  <columnNumber>1</columnNumber>
                  <entityId>60947</entityId>
                  <entityTypeCode>REPORT</entityTypeCode>
                  <portletHeight>448</portletHeight>
                  <portletStatus>RESTORED</portletStatus>
                  <rowNumber>3</rowNumber>
                  <sequenceNumber>1</sequenceNumber>
                  <startDate>2017-06-26T00:00:00+10:00</startDate>
                  <tabId>61251</tabId>
               </elements>
               <elements>
                  <columnNumber>1</columnNumber>
                  <entityId>61001</entityId>
                  <entityTypeCode>REPORT</entityTypeCode>
                  <portletHeight>363</portletHeight>
                  <portletStatus>RESTORED</portletStatus>
                  <rowNumber>1</rowNumber>
                  <sequenceNumber>1</sequenceNumber>
                  <startDate>2017-06-26T00:00:00+10:00</startDate>
                  <tabId>61251</tabId>
               </elements>
               <elements>
                  <columnNumber>1</columnNumber>
                  <entityId>61097</entityId>
                  <entityTypeCode>REPORT</entityTypeCode>
                  <portletHeight>374</portletHeight>
                  <portletStatus>RESTORED</portletStatus>
                  <rowNumber>2</rowNumber>
                  <sequenceNumber>1</sequenceNumber>
                  <startDate>2017-06-26T00:00:00+10:00</startDate>
                  <tabId>61251</tabId>
               </elements>
               <elements>
                  <columnNumber>1</columnNumber>
                  <entityId>61046</entityId>
                  <entityTypeCode>REPORT</entityTypeCode>
                  <portletHeight>331</portletHeight>
                  <portletStatus>RESTORED</portletStatus>
                  <rowNumber>3</rowNumber>
                  <sequenceNumber>2</sequenceNumber>
                  <startDate>2017-06-26T00:00:00+10:00</startDate>
                  <tabId>61251</tabId>
               </elements>
               <elements>
                  <columnNumber>1</columnNumber>
                  <entityId>61067</entityId>
                  <entityTypeCode>REPORT</entityTypeCode>
                  <portletHeight>225</portletHeight>
                  <portletStatus>RESTORED</portletStatus>
                  <rowNumber>3</rowNumber>
                  <sequenceNumber>3</sequenceNumber>
                  <startDate>2017-06-26T00:00:00+10:00</startDate>
                  <tabId>61251</tabId>
               </elements>
               <elements>
                  <columnNumber>2</columnNumber>
                  <entityId>61035</entityId>
                  <entityTypeCode>REPORT</entityTypeCode>
                  <portletHeight>373</portletHeight>
                  <portletStatus>RESTORED</portletStatus>
                  <rowNumber>2</rowNumber>
                  <sequenceNumber>1</sequenceNumber>
                  <startDate>2017-06-26T00:00:00+10:00</startDate>
                  <tabId>61251</tabId>
               </elements>
               <endDate>9999-12-31T00:00:00+11:00</endDate>
               <filters>
                  <componentId>0</componentId>
                  <componentTypeCode>REPORT</componentTypeCode>
                  <entityId>0</entityId>
                  <entityTypeCode>REPORTGROUP</entityTypeCode>
                  <formatKey>DEFAULTDISPLAY</formatKey>
                  <formatValue>SUMMARYCHART</formatValue>
                  <groupId>61250</groupId>
               </filters>
               <filters>
                  <componentId>0</componentId>
                  <componentTypeCode>REPORT</componentTypeCode>
                  <entityId>0</entityId>
                  <entityTypeCode>REPORTGROUP</entityTypeCode>
                  <formatKey>DEFAULTDISPLAY</formatKey>
                  <formatValue>SUMMARYCHART</formatValue>
                  <groupId>61250</groupId>
               </filters>
               <filters>
                  <componentId>0</componentId>
                  <componentTypeCode>REPORT</componentTypeCode>
                  <entityId>0</entityId>
                  <entityTypeCode>REPORTGROUP</entityTypeCode>
                  <formatKey>DEFAULTDISPLAY</formatKey>
                  <formatValue>SUMMARYCHART</formatValue>
                  <groupId>61250</groupId>
               </filters>
               <filters>
                  <componentId>61035</componentId>
                  <componentTypeCode>REPORT</componentTypeCode>
                  <entityId>0</entityId>
                  <entityTypeCode>REPORTGROUP</entityTypeCode>
                  <formatKey>DEFAULTDISPLAY</formatKey>
                  <formatValue>CHART</formatValue>
                  <groupId>61250</groupId>
               </filters>
               <filters>
                  <componentId>61067</componentId>
                  <componentTypeCode>REPORT</componentTypeCode>
                  <entityId>0</entityId>
                  <entityTypeCode>REPORTGROUP</entityTypeCode>
                  <formatKey>DEFAULTDISPLAY</formatKey>
                  <formatValue>SUMMARYCHART</formatValue>
                  <groupId>61250</groupId>
               </filters>
               <filters>
                  <componentId>61097</componentId>
                  <componentTypeCode>REPORT</componentTypeCode>
                  <entityId>0</entityId>
                  <entityTypeCode>REPORTGROUP</entityTypeCode>
                  <formatKey>DEFAULTDISPLAY</formatKey>
                  <formatValue>REPORT</formatValue>
                  <groupId>61250</groupId>
               </filters>
               <filters>
                  <componentId>0</componentId>
                  <entityId>61250</entityId>
                  <entityTypeCode>REPORTGROUP</entityTypeCode>
                  <formatKey>HELPON</formatKey>
                  <formatValue>true</formatValue>
                  <groupId>61250</groupId>
               </filters>
               <filters>
                  <componentId>0</componentId>
                  <entityId>61250</entityId>
                  <entityTypeCode>REPORTGROUP</entityTypeCode>
                  <formatKey>SUBTABS</formatKey>
                  <formatValue>OFF</formatValue>
                  <groupId>61250</groupId>
               </filters>
               <filters>
                  <componentId>0</componentId>
                  <entityId>61250</entityId>
                  <entityTypeCode>REPORTGROUP</entityTypeCode>
                  <formatKey>UNITSELECTION</formatKey>
                  <formatValue>OFF</formatValue>
                  <groupId>61250</groupId>
               </filters>
               <groupTypeCode>ANALYTIC</groupTypeCode>
               <languageCode>EN</languageCode>
               <longDescription/>
               <owner>1</owner>
               <ownerTypeCode>ORGANISATION</ownerTypeCode>
               <parentGroupId>0</parentGroupId>
               <shortDescription>Sales Performance</shortDescription>
               <startDate>2017-06-26T00:00:00+10:00</startDate>
               <statusCode>OPEN</statusCode>
               <subCategoryCode>ATHLETES</subCategoryCode>
               <subtabs>
                  <elements>
                     <columnNumber>1</columnNumber>
                     <entityId>60947</entityId>
                     <entityTypeCode>REPORT</entityTypeCode>
                     <portletHeight>448</portletHeight>
                     <portletStatus>RESTORED</portletStatus>
                     <rowNumber>3</rowNumber>
                     <sequenceNumber>1</sequenceNumber>
                     <startDate>2017-06-26T00:00:00+10:00</startDate>
                     <tabId>61251</tabId>
                  </elements>
                  <elements>
                     <columnNumber>1</columnNumber>
                     <entityId>61001</entityId>
                     <entityTypeCode>REPORT</entityTypeCode>
                     <portletHeight>363</portletHeight>
                     <portletStatus>RESTORED</portletStatus>
                     <rowNumber>1</rowNumber>
                     <sequenceNumber>1</sequenceNumber>
                     <startDate>2017-06-26T00:00:00+10:00</startDate>
                     <tabId>61251</tabId>
                  </elements>
                  <elements>
                     <columnNumber>1</columnNumber>
                     <entityId>61097</entityId>
                     <entityTypeCode>REPORT</entityTypeCode>
                     <portletHeight>374</portletHeight>
                     <portletStatus>RESTORED</portletStatus>
                     <rowNumber>2</rowNumber>
                     <sequenceNumber>1</sequenceNumber>
                     <startDate>2017-06-26T00:00:00+10:00</startDate>
                     <tabId>61251</tabId>
                  </elements>
                  <elements>
                     <columnNumber>1</columnNumber>
                     <entityId>61046</entityId>
                     <entityTypeCode>REPORT</entityTypeCode>
                     <portletHeight>331</portletHeight>
                     <portletStatus>RESTORED</portletStatus>
                     <rowNumber>3</rowNumber>
                     <sequenceNumber>2</sequenceNumber>
                     <startDate>2017-06-26T00:00:00+10:00</startDate>
                     <tabId>61251</tabId>
                  </elements>
                  <elements>
                     <columnNumber>1</columnNumber>
                     <entityId>61067</entityId>
                     <entityTypeCode>REPORT</entityTypeCode>
                     <portletHeight>225</portletHeight>
                     <portletStatus>RESTORED</portletStatus>
                     <rowNumber>3</rowNumber>
                     <sequenceNumber>3</sequenceNumber>
                     <startDate>2017-06-26T00:00:00+10:00</startDate>
                     <tabId>61251</tabId>
                  </elements>
                  <elements>
                     <columnNumber>2</columnNumber>
                     <entityId>61035</entityId>
                     <entityTypeCode>REPORT</entityTypeCode>
                     <portletHeight>373</portletHeight>
                     <portletStatus>RESTORED</portletStatus>
                     <rowNumber>2</rowNumber>
                     <sequenceNumber>1</sequenceNumber>
                     <startDate>2017-06-26T00:00:00+10:00</startDate>
                     <tabId>61251</tabId>
                  </elements>
                  <endDate>9999-12-31T00:00:00+11:00</endDate>
                  <filters>
                     <componentId>0</componentId>
                     <componentTypeCode>REPORT</componentTypeCode>
                     <entityId>0</entityId>
                     <entityTypeCode>REPORTGROUP</entityTypeCode>
                     <formatKey>DEFAULTDISPLAY</formatKey>
                     <formatValue>SUMMARYCHART</formatValue>
                     <groupId>61250</groupId>
                  </filters>
                  <filters>
                     <componentId>0</componentId>
                     <componentTypeCode>REPORT</componentTypeCode>
                     <entityId>0</entityId>
                     <entityTypeCode>REPORTGROUP</entityTypeCode>
                     <formatKey>DEFAULTDISPLAY</formatKey>
                     <formatValue>SUMMARYCHART</formatValue>
                     <groupId>61250</groupId>
                  </filters>
                  <filters>
                     <componentId>0</componentId>
                     <componentTypeCode>REPORT</componentTypeCode>
                     <entityId>0</entityId>
                     <entityTypeCode>REPORTGROUP</entityTypeCode>
                     <formatKey>DEFAULTDISPLAY</formatKey>
                     <formatValue>SUMMARYCHART</formatValue>
                     <groupId>61250</groupId>
                  </filters>
                  <filters>
                     <componentId>61035</componentId>
                     <componentTypeCode>REPORT</componentTypeCode>
                     <entityId>0</entityId>
                     <entityTypeCode>REPORTGROUP</entityTypeCode>
                     <formatKey>DEFAULTDISPLAY</formatKey>
                     <formatValue>CHART</formatValue>
                     <groupId>61250</groupId>
                  </filters>
                  <filters>
                     <componentId>61067</componentId>
                     <componentTypeCode>REPORT</componentTypeCode>
                     <entityId>0</entityId>
                     <entityTypeCode>REPORTGROUP</entityTypeCode>
                     <formatKey>DEFAULTDISPLAY</formatKey>
                     <formatValue>SUMMARYCHART</formatValue>
                     <groupId>61250</groupId>
                  </filters>
                  <filters>
                     <componentId>61097</componentId>
                     <componentTypeCode>REPORT</componentTypeCode>
                     <entityId>0</entityId>
                     <entityTypeCode>REPORTGROUP</entityTypeCode>
                     <formatKey>DEFAULTDISPLAY</formatKey>
                     <formatValue>REPORT</formatValue>
                     <groupId>61250</groupId>
                  </filters>
                  <filters>
                     <componentId>0</componentId>
                     <entityId>61250</entityId>
                     <entityTypeCode>REPORTGROUP</entityTypeCode>
                     <formatKey>HELPON</formatKey>
                     <formatValue>true</formatValue>
                     <groupId>61250</groupId>
                  </filters>
                  <filters>
                     <componentId>0</componentId>
                     <entityId>61250</entityId>
                     <entityTypeCode>REPORTGROUP</entityTypeCode>
                     <formatKey>SUBTABS</formatKey>
                     <formatValue>OFF</formatValue>
                     <groupId>61250</groupId>
                  </filters>
                  <filters>
                     <componentId>0</componentId>
                     <entityId>61250</entityId>
                     <entityTypeCode>REPORTGROUP</entityTypeCode>
                     <formatKey>UNITSELECTION</formatKey>
                     <formatValue>OFF</formatValue>
                     <groupId>61250</groupId>
                  </filters>
                  <groupTypeCode>SUBTAB</groupTypeCode>
                  <languageCode>EN</languageCode>
                  <owner>0</owner>
                  <parentGroupId>0</parentGroupId>
                  <shortDescription>New Tab</shortDescription>
                  <startDate>2017-06-26T00:00:00+10:00</startDate>
                  <statusCode>OPEN</statusCode>
                  <styleCode>TWO</styleCode>
                  <tabId>61251</tabId>
               </subtabs>
               <tabId>61250</tabId>
            </dashboard>
            <dashboardEnabled>false</dashboardEnabled>
            <errorCode>0</errorCode>
            <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages>
            <messages>Attempting to Load Dashboard Tab: 61251</messages>
            <messages>Web Service Request Complete</messages>
            <private>false</private>
            <sessionId>af433c1d0f0cffa9d3a7e1ef8c72abf6</sessionId>
            <statusCode>SUCCESS</statusCode>
         </return>
      </ns2:remoteReportCallResponse>
   </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
  • Here's a basic request to perform this call, which includes logging in as the admin user and specifying the web service call to perform:

    Code Block
    languagejava
    ReportServiceRequest rsr = new ReportServiceRequest();
     
    rsr.setLoginId("admin@yellowfin.com.au");
    rsr.setPassword("test");
    rsr.setOrgId(new Integer(1));
    
    rsr.setReportRequest("LOADPARENTDASHBOARDTAB");
  • If you need to specify the client org where the report exists, add this to your code:

    Code Block
    languagejava
    rsr.setOrgRef("org1");      // search for the report in this client org



  • Specify which dashboard tab's details to fetch:

    Code Block
    languagejava
    rsr.setDashboardTabId(70080);



  • Once the request is configured, carry out the call:

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

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

 

  • The response returned will contain the following parameters: StatusCode, Dashboard, Subtabs. (See the Response Parameters table above for more details.)


Complete Example

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

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

 

Code Block
languagejava
themeEclipse
/*				ws_loadparentdashboardtab.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="javax.xml.bind.JAXBContext" %>
<%@ page import="javax.xml.bind.Marshaller" %>
<%@ page import="java.io.StringWriter" %>
<%@ page import="javax.xml.bind.JAXBElement" %>
<%@ page import="javax.xml.namespace.QName" %>
<%
	

	ReportService rsc = new ReportService();   //("localhost", 8080, "admin@yellowfin.com.au", "test", "/services/ReportService");
	ReportServiceRequest rsr = new ReportServiceRequest();
	rsr.setLoginId("admin@yellowfin.com.au");
	rsr.setPassword("test");
	rsr.setOrgId(new Integer(1));
	rsr.setReportRequest("LOADPARENTDASHBOARDTAB");
	rsr.setOrgRef("1");
	rsr.setReportId(60712);
	rsr.setAlterationCommand("drill-down|60712");
	rsr.setReportClientReferenceId("1");
	rsr.setDashboardTabId(70080);
	
	ReportServiceResponse rs=rsc.remoteReportCall(rsr);
	if ("SUCCESS".equals(rs.getStatusCode())) {
		  JAXBContext context = JAXBContext.newInstance(ReportServiceResponse.class);
	        Marshaller m = context.createMarshaller();
	        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML
	        JAXBElement<ReportServiceResponse> rootElement = new JAXBElement<ReportServiceResponse>(new QName("ReportServiceResponse"), ReportServiceResponse.class, rs);
	        m.marshal(rootElement,out);
		//out.write("Success");
	} else {
		out.write("Failure");
		out.write(" Code: " + rs.getErrorCode());
	} 
%>

 


 

 

 

Miscellaneous

 

Expand
titleSENDTOEMAIL

This function sends a report to a recipient's email address.

 

Request Elements

The following elements will be passed with this request:

Request Element

Data Type

Description

LoginId

String

Yellowfin web services administrator user Id. This can be the user ID or the email address, depending on the Logon ID method.

This Yellowfin 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.

ReportRequest

String

Web services function. Set this to "SENDTOEMAIL".

OrgRef

String

Optional parameter to specify an internal reference ID of a Client Org.

ReportIdIntegerAn internal ID to of the report that is to be emailed.
ReportsOptionString[]A list of email addresses to send the report to.
AlterationCommand  
SessionIdInteger(Optional) To specify a previous session by its ID.
LanguageCode (Optional) To specify a language.


 

Request Example

The following SOAP example shows the parameters that you can pass to this call:

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:remoteReportCall>
         <arg0>
            <loginId>admin@yellowfin.com.au</loginId>
            <password>test</password>
            <orgId>1</orgId>
            <reportRequest>SENDTOEMAIL</reportRequest>
            <reportId>70012</reportId>
            <alterationCommand>drill-down|70012</alterationCommand>
            <reportOptions>
            	<string>binish.sheikh@yellowfin.com.au</string>
            </reportOptions>
            </arg0>
      </web:remoteReportCall>
   </soapenv:Body>
</soapenv:Envelope>

 

 

Response Elements

The response will contain these main parameters:

Response ElementData TypeDescription
StatusCodeStringStatus of the web service call. Possible values include:
  • SUCCESS
  • FAILURE

 

 

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:remoteReportCallResponse xmlns:ns2="http://webservices.web.mi.hof.com/">
         <return>
            <author>System Administrator</author>
            <authoringMode>JAVA</authoringMode>
            <averageRunTime>0</averageRunTime>
            <canDrill>false</canDrill>
            <category>Tutorial</category>
            <dashboardEnabled>true</dashboardEnabled>
            <dataOutput>COLUMN</dataOutput>
            <datasource>Ski Team</datasource>
            <errorCode>0</errorCode>
            <formatCode>CHART</formatCode>
            <hitCount>3</hitCount>
            <lastModifiedDate>2018-03-07</lastModifiedDate>
            <lastRunDuration>0</lastRunDuration>
            <messages>Successfully Authenticated User: admin@yellowfin.com.au</messages>
            <messages>Loaded Report: 70012 Successfully</messages>
            <messages>Web Service Request Complete</messages>
            <preRunFilterString><![CDATA[<div class="rptFilterLogicText">
<span class="rptFilterLogicIdentifier">Invoiced Date</span>
Between
<span class="rptFilterLogicIdentifier">Current Date - 6 Years And Current Date</span>
</div>
.
.
.
]]></preRunFilterString>
            <private>false</private>
            <reportDescription>This report provides a high level summary of campaigns</reportDescription>
            <reportId>70012</reportId>
            <reportName>Campaign Summary</reportName>
            <reportTemplate>CHART</reportTemplate>
            <reportUUID>3e842fae-02f7-4ad3-a632-ca267e0078da</reportUUID>
            <reportUsage>100</reportUsage>
            <sessionId>fa0cc79a9ea229bd5df85b4a7f50c878</sessionId>
            <statusCode>SUCCESS</statusCode>
            <subCategory>Marketing &amp; Booking</subCategory>
            <tags>No tags</tags>
            <viewName>New View</viewName>
         </return>
      </ns2:remoteReportCallResponse>
   </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
  • Here's a basic request to perform this call, which includes logging in as the admin user and specifying the web service call to perform:

    Code Block
    languagejava
    ReportServiceRequest rsr = new ReportServiceRequest();
     
    rsr.setLoginId("admin@yellowfin.com.au");
    rsr.setPassword("test");
    rsr.setOrgId(new Integer(1));
    
    rsr.setReportRequest("SENDTOEMAIL");
  • If you need to specify the client org where the report exists, add this to your code:

    Code Block
    languagejava
    rsr.setOrgRef("org1");      // search for the report in this client org



  • Specify the report that is to be emailed, and its alteration command:

    Code Block
    languagejava
    rsr.setReportId(60712);
    rsr.setAlterationCommand("drill-down|60712");



  • Then provide the email address(es) to send the report to:

    Code Block
    languagejava
    rsr.setReportOptions(new String[]{ "dummy@dummy.com"});



  • Once the request is configured, carry out the call:

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

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

 

  • The response returned will contain the following parameters: StatusCode, Dashboard, Subtabs. (See the Response Parameters table above for more details.)


Complete Example

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

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

 

Code Block
languagejava
themeEclipse
/*				ws_sendtoemail  			   */
 
<%@ 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="javax.xml.bind.JAXBContext" %>
<%@ page import="javax.xml.bind.Marshaller" %>
<%@ page import="java.io.StringWriter" %>
<%@ page import="javax.xml.bind.JAXBElement" %>
<%@ page import="javax.xml.namespace.QName" %>
<%
	

	ReportService rsc = new ReportService();   //("localhost", 8080, "admin@yellowfin.com.au", "test", "/services/ReportService");
	ReportServiceRequest rsr = new ReportServiceRequest();
	rsr.setLoginId("admin@yellowfin.com.au");
	rsr.setPassword("test");
	rsr.setOrgId(new Integer(1));
	rsr.setReportRequest("SENDTOEMAIL");
	rsr.setOrgRef("1");
	rsr.setReportId(60712);
	rsr.setAlterationCommand("drill-down|60712");
	rsr.setReportOptions(new String[]{ "dummy@dummy.com"});
	rsr.setReportClientReferenceId("1");
	rsr.setDashboardTabId(70080);
	
	ReportServiceResponse rs=rsc.remoteReportCall(rsr);
	if ("SUCCESS".equals(rs.getStatusCode())) {
		
		%> <xmp> <% 
		  JAXBContext context = JAXBContext.newInstance(ReportServiceResponse.class);
	        Marshaller m = context.createMarshaller();
	        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); // To format XML
	        JAXBElement<ReportServiceResponse> rootElement = new JAXBElement<ReportServiceResponse>(new QName("ReportServiceResponse"), ReportServiceResponse.class, rs);
	        m.marshal(rootElement,out);    
	        %></xmp><%
		//out.write("Success");
	} else {
		out.write("Failure");
		out.write(" Code: " + rs.getErrorCode());
	} 
%>