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.

...

Expand
titleSAVEROLE

This function creates a new role and/or updates the role functions. The request must contain an AdministrationRole object to specify the role details, and an array of AdministrationFunction for the role. Whether this function is used to update a role, or create a new one, it should be noted that every Yellowfin role requires a mandatory function, Report Access (function code: MIREPORT), MIREPORT access level code must be at least R (read). Each time this function is called, the security functions will be overwritten.

 

  • Displayed below is a basic request for this function:

    Code Block
    languagejava
    AdministrationServiceRequest rsr = new AdministrationServiceRequest();
    
    rsr.setLoginId("admin@yellowfin.com.au");
    rsr.setPassword("test");
    rsr.setOrgId(1);
    
    rsr.setFunction("SAVEROLE");



  • Then define a role:

    Code Block
    languagejava
    AdministrationRole role = new AdministrationRole();
    



  • Role Code is mandatory if you want to modify an existing role:

    Code Block
    languagejava
    role.setRoleCode("NEWROLE");			// If you want to create a new role, comment this out.

    If you do not specify the Role Code, the call will create a new role even if another role with the same name already exists.

     

    Tip

    You can get the role codes from Yellowfin's database OrgRole table. (Usually, it is based on role name with all letters capitalized and with no space between them.)

     

     

  • Role Name is mandatory even when modifying an existing role, otherwise the call will set the role name to blank:

    Code Block
    languagejava
    role.setRoleName("New Role");
    role.setRoleDescription("testing");
    



  • Each time you call the SAVEROLE function, you need to provide a list of security functions. This call overwrites the role function. For instance, 2 functions will be assigned to the role: Report Access (mandatory) and Activity Stream (optional):

    Code Block
    languagejava
    AdministrationFunction[] f = new AdministrationFunction[1];
    f[0] = new AdministrationFunction();
    f[0].setFunctionCode("MIREPORT");
    f[0].setAccessLevelCode("R");
    f[1] = new AdministrationFunction();
    f[1].setFunctionCode("ACTIVITYSTREAM");
    f[1].setAccessLevelCode("CRUD");
    Note

    You cannot omit security functions; the call will generate an error otherwise. Click here for all available security function options.



  • Then feed the security functions to the role:

    Code Block
    languagejava
    role.setFunctions(f);
    rsr.setRole(role);
    



  • 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 returned will contain these parameters:

    Response Element

    Data Type

    Description

    StatusCode

    String

    Status of the web service call. Possible values include:

    • SUCCESS
    • FAILURE

Complete Example

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

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

 

Code Block
languagejava
<%            
/*              ws_saverole.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.*" %>
<% 
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 web services admin account
rsr.setPassword("test");                           // change to the password of the account above
rsr.setOrgId(1);

rsr.setFunction("SAVEROLE");

//define a role:
AdministrationRole role = new AdministrationRole();
role.setRoleCode("NEWROLE");
role.setRoleName("New Role");
role.setRoleDescription("testing");

AdministrationFunction[] f = new AdministrationFunction[2];

f[0] = new AdministrationFunction();
f[0].setFunctionCode("MIREPORT");           // mandatory
f[0].setAccessLevelCode("R");

f[1] = new AdministrationFunction();
f[1].setFunctionCode("ACTIVITYSTREAM");               
f[1].setAccessLevelCode("CRUD");


//Feed the security functions to the role:
role.setFunctions(f);

rsr.setRole(role);
AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);


if ("SUCCESS".equals(rs.getStatusCode()) ) {
	out.write("Success");
} else {
	out.write("Failure");
	out.write(" Code: " + rs.getErrorCode());
}
%>


 

 

Expand
titleDELETEROLE

This function deletes a user role, which is specified using the AdministrationRole object, by providing the Role Code.

 

  • Displayed below is a basic request for this function:

    Code Block
    languagejava
    AdministrationServiceRequest rsr = new AdministrationServiceRequest();
    
    rsr.setLoginId("admin@yellowfin.com.au");
    rsr.setPassword("test");
    rsr.setOrgId(1);
    
    rsr.setFunction("DELETEROLE");



  • Define the role that needs to be deleted:

    Code Block
    languagejava
    AdministrationRole role = new AdministrationRole();
    role.setRoleCode("NEWROLE");                     // existing role. Role Codes can be found by calling LISTROLES
    												 // or retrieved from the Yellowfin database table OrgRole.
    rsr.setRole(role);
    

 

  • 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 returned will contain these parameters:

    Response Element

    Data Type

    Description

    StatusCode

    String

    Status of the web service call. Possible values include:

    • SUCCESS
    • FAILURE

Complete Example

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

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

 

Code Block
languagejava
<%            
/*              ws_deleterole.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.*" %>
<%
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");                           // change to the password of the above account above
rsr.setOrgId(1);


rsr.setFunction("DELETEROLE");


AdministrationRole role = new AdministrationRole();
role.setRoleCode("NEWROLE");
rsr.setRole(role);

AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);


if ("SUCCESS".equals(rs.getStatusCode()) ) {
	out.write("Success");
} else {
	out.write("Failure");
	out.write(" Code: " + rs.getErrorCode());
}
%>


 

 

Expand
titleLISTGROUPS

The LISTGROUPS function returns all the groups available in Yellowfin. The response contains an array of AdministrationGroup objects representing available groups. For a list of groups belonging to a specific client, you can pass the Client Org reference ID in the call. 

 

  • Displayed below is a basic request for this function:

    Code Block
    languagejava
    AdministrationServiceRequest rsr = new AdministrationServiceRequest();
    
    rsr.setLoginId("admin@yellowfin.com.au");
    rsr.setPassword("test");
    rsr.setOrgId(1);
    
    rsr.setFunction("LISTGROUPS");



  • Include a Client Org ID to list groups specific to that client. (If not included, then the default (that is, the Primary Org) groups will be displayed).

    Code Block
    languagejava
    rsr.setOrgRef("org1");
    



  • 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 returned will contain these parameters:

    Response Element

    Data Type

    Description

    StatusCode

    String

    Status of the web service call. Possible values include:

    • SUCCESS
    • FAILURE

    Groups

    AdministrationGroup[]

    List of groups

  • You can retrieve members of each group by using AdministrationGroup.getGroupMembers(). This will retrieve an array of AdministrationGroupMember. Keep in mind that if the group has a user role as a member, it will not be retrieved. Only user accounts will be retrieved via getGroupMembers().

 

Complete Example

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

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

 

Code Block
languagejava
<%            
/*              ws_listgroups.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.*" %>
<%
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 web services admin account
rsr.setPassword("test");                           // change to the password of the above account
rsr.setOrgId(1);

rsr.setFunction("LISTGROUPS");

//rsr.setOrgRef("org1");                    	   // provide org reference if required. Default org groups will be retrieved otherwise


AdministrationServiceResponse rs = adminService.remoteAdministrationCall(rsr);

if ("SUCCESS".equals(rs.getStatusCode()) ) {
	out.write("Success.<br>Available Groups:");
	AdministrationGroup[] groups = rs.getGroups();
	for (AdministrationGroup group: groups){
		out.write("<br>");
		out.write("<br>Group Name: " + group.getGroupName());
		out.write("<br>Group Id: " + group.getGroupId());
		out.write("<br>Group Description: " + group.getGroupDescription());
		out.write("<br>Group Status: " + group.getGroupStatus());
		out.write("<br>Group Internal Reference: " + group.getGroupInternalReference());


		// uncomment to display the members:
		/*
		out.write("<br>Members:<br>Login Id | Internal Id ");
		for (AdministrationGroupMember member: group.getGroupMembers()){
			out.write("<br>" + member.getLoginId() + " | " + member.getInternalId() );
		}
		*/
	}
} else {
	out.write("Failure");
	out.write(" Code: " + rs.getErrorCode());
}
%>