Intellicus Enterprise Reporting and Business Insights 19.1

REComClient

0 views September 22, 2020 0

This document is a detailed description of the API provided by ReCOmCLient.dll.

Categories of APIs

Layout Management

This category of tasks constitutes the tasks that are required to handle the user interface. For example, getting a list of all report categories available, adding, deleting or replacing these categories, getting a list of all reports or getting a list of reports belonging to a particular category etc.

Report Execution

This category of tasks deals with the operations that are performed when a particular report has been selected for execution. Execution is not just a one step process but involves a sequence of procedures to be followed. At certain situations, decisions also have to be made.

User Role Organization Management

This category of tasks involves the querying of organization lists, user lists, and role lists etc. It helps in finding out the access rights of different users and roles and performing managerial actions (like adding, updating deleting) on organizations, users and roles.

Database Management

This category provides functionality that helps in interacting with the engine for operations pertaining to databases. For example: getting a list of database connections supported by the engine, querying the metadata of these databases, adding a database connection, executing commands etc. This helps in reducing the processing at the client and bringing the execution logic to the engine.

Other categories
  • AccessRights Management
  • Report Utility Classes
  • System Files Management
  • Session Level Management
  • Published Reports
  • Report Object Management
  • License Management
  • Chart Services

The Basics

There are a couple of things that need to be done no matter what use-case you intend to use. They include the functioning of the following classes:

  • IEngineObjectFactory
  • ILayoutManager
  • IUserSession
  • ISecurityManager
  • IUserMgmt
  • IReportExecuter
  • IDBMgmt
  • IChartService
  • ILicenseManager
  • IReportObjectsManager
  • IReportUtility

IEngineObjectFactory

The interface “IEngineObjectFactory” is the beginning of all things. This interface has to be created first from the dll. As its name suggests, its responsibility is to create the instances of all objects that the user might not be able to correctly create. It has the following functions:

Initialize ([in] VARIANT *pConfigFilePath)

This function has to be called with a stirng parameter containing the IP address and port where Report server is running. Syntax for this string is “IP:PORT”. If (“”) NULL string is passed then corresponding IP address and port will be fetched from registry.

LayoutManager    ([in] IUserInfo* pUserInfo, [out, retval] ILayoutManager* *pVal)

This is a “get” property, which returns an object for the interface ILayoutManager. I.e. the decision, which class to instantiate for the ILayoutManager is made by the object factory. This call requires the UserInfo object for its internal communication with the report engine.

UserMgmt (UserInfo)

This is a “get” property, which returns an object for the interface IUserMgmt. I.e. the decision, which class to instantiate for the IUserMgmt is made by the object factory.

ReportExecute ([in] IUserInfo* pUserInfo, [out, retval] IReportExecuter* *pVal)

This is a “get” property, which returns an object for the interface IReportExecuter. I.e. the decision, which class to instantiate for the IReportExecuter is made by the object factory.

DBMgmt ([in] IUserInfo* pUserInfo, [out, retval] IDBMgmt* *pVal)

This is a “get” property, which returns an object for the interface IDBMgmt. I.e. the decision, which class to instantiate for the IDBMgmt is made by the object factory.

ChartService([in] IUserInfo* pUserInfo, [out, retval] IChartService* *pVal)

This is a “get” property, which returns an object for the interface IChartService. This call requires the UserInfo object for its internal communication with the report engine.

LicenseManager(IUserInfo *pUserInfo, [out, retval] ILicenseManager* *pVal)

This is a “get” property, which returns an object for the interface ILicenseManager. This call requires the UserInfo object for its internal communication with the report engine.

ReportObjectsManager([in]IUserInfo *pUserInfo, [out, retval] IReportObjectsManager **pVal)

This is a “get” property, which returns an object for the interface IReportObjectsManager. This call requires the UserInfo object for its internal communication with the report engine.

ReportUtility([in]IUserInfo* pUserInfo, [out, retval] IReportUtility **pVal)

This is a “get” property, which returns an object for the interface IReportUtility. This call requires the UserInfo object for its internal communication with the report engine.

SecurityManager(IUserInfo* pUserInfo, [out, retval] ISecurityManager* *pVal)

This is a “get” property, which returns an object for the interface ISecurityManager. This call requires the UserInfo object for its internal communication with the report engine.

UserSession       ([out, retval] IUserSession* *pVal)

This is a “get” property, which creates an object for the interface IUserSession and returns the object.

SystemFilesManager  ([in] IUserInfo* pUserInfo, [out, retval] ISystemFilesManager* *pVal)

This is a “get” property, which returns an object for the interface ISystemFilesManager. This call requires the UserInfo object for its internal communication with the report engine.

Layout Management

The list of interfaces provided for layout management is:

  1. ILayoutManager
  2. ICategories
  3. ICategory
  4. Ireport

ILayoutManager

This class provides different functions, which help in implementing each use case for Layout management.

CategoryList([out, retval] ICategories** pVal)

This is a “get” property, which returns ICategories object which contains a collection of different ICategory objects. This collection is index based starting from zero. Category object can be also obtained by Category’s name. ICategories class provides necessary APIs for iterating through the collection.

AddCategory ([in] ICategory* pCategory)

This method adds a new category to Repository. It takes ICategory object as input parameter. This API prepares the request XML using ICategory object and sends it.

DeleteCategory ([in] BSTR bstrCatID, [in] VARIANT_BOOL Condition)

This get property takes two parameters. The category ID of the category to be deleted. This will be obtained from previous call to CategoryList. The condition is a Boolean value which indicates if the category has to be deleted unconditionally or not. If yes then the category will be deleted even if it contains reports inside it and if no then the category will be deleted only if it does not have any reports inside.

ReplaceCategory([in] BSTR bstrOldCategoryID,[in] BSTR bstrNewCatMenuName)

This get property essentially renames a category. The first argument specifies the Category ID of the category to be renamed (it will be obtained from a previous call to CategoryList). The second argument specifies the new name to be given to the category.

ReportLayoutList([out, retval] IReports** pVal)

This is a “get” property, which returns IReports object which contains a collection of different IReport objects. This collection is index based starting from zero. IReport object can be also obtained by Report’s name. IReports class provides necessary APIs for iterating through the collection.

ReportListForCategory([in] BSTR bstrCategoryID, [out, retval] IReports** pVal)

This is a “get” property, which returns IReports object which contains a collection of different IReport objects. But the reports that are enumerated belong to the category whose ID is specified by the argument. This collection is index based starting from zero. IReport object can be also obtained by Report’s name. IReports class provides necessary APIs for iterating through the collection.

AddReport([in] VARIANT vrReportID, [in] VARIANT vrCategoryID, [in] VARIANT vrMenuName, [in]VARIANT vrReportName, [in] VARIANT vrIRLData,[out,retval] VARIANT* pRetVal)

This function takes the IRL data and adds it as a report using the Report name mentioned. The menu name is the name to be displayed at the report selection menu (Database mode). Report ID is an optional parameter which the programmer can use if he wants an ID of his choice. If not, it should be left blank. In case the ID requested is already in use, an error will be thrown. The CatID specifies which category the report should be added to. The IRL is passed as a string. This API returns the Report object for the report which has been uploaded.

DeleteReport([in] BSTR bstrReportID)

This function deletes the report of the ID that is passed as parameter. If the ID is not found then an exception is thrown.

ReplaceReport([in] VARIANT vrReportID, [in] VARIANT vrCategoryID, [in] VARIANT vrMenuName, [in]VARIANT vrReportName, [in] VARIANT vrIRLData)

This function takes IRL data which is used to replace another report. The report ID and category ID identify which report is to be replaced and the menu name is the new menu name of the report. The IRL is passed as a string.

GetReport(BSTR bstrReportID, BSTR bstrCategoryID, [out,retval]BSTR *vrIRLData)

This function returns the IRL data as string for the report identified by the given report Id and category Id passes as parameters.

XMLDataSourceMetaData([in] IXMLDataSource* pXMLDataSource, [out, retval] IXMLDataSourceMetaData* *pVal)

This property takes the object of IXMLDataSource as input. IXMLDataSource object contains necessary information about which type of XML DataSource Metadata is required. Using this information, Request is made to report server to fetch XML DataSource Metadata information and IXMLDataSourceMetaData class object is created and populated. This property returns this created object IXMLDataSourceMetaData.

get_Report(BSTR strReportID, [out, retval] IReport* *pVal)

This get Property fetches the information of report of given Report ID and then creates IReport object, populates it and returns the object.

GetCategoryListWithFilters ([in] IUserFilters* pUserFilters,[out,retval] ICategories** pCategories)

This API gives the category lists (ICategories object) on the basis of user provided filters passed as input parameter. pUserFilters is used to prepare the request XML. Request is made to report server, ICategories object is created and Response XML is populated using ICagetories object. If failed, an exception is thrown to host application.

GetReportLayoutListWithFilters([in] IUserFilters* pUserFilters, [out,retval] IReports** pReports)

This function gets IReports object on the basis of user provided filters passed as input parameter. pUserFilters is used to prepare the request XML. Requst is made to report server and IReports object is created and Response XML is populated using ICagetories object. If failed, an exception is thrown to host application.

AddReport2 ([in] IDispatch* pUserFilters,[in] BSTR strIRLData,[out,retval] IReport** pVal)

This function takes the IRL data and adds it as a report using the Report name mentioned. pUserFilter contains the filters. pUserFilters is a collection of UserFilter object. Each object is one filter. So one needs to create object for each filter that he wants to apply and add it to pUserFilters. Filter name is set in the ‘Name’ property of UserFilter class. It can have following values as string.

UserFilter.Name values for AddReort2
“REPORTID”
“CATEGORYID”
“MENUNAME”
“REPORTNAME”
“DEPL_TYPE”
“PRINTSETTINGNAME”
“FORMAT”
“PRIORITY”
“CACHE”
“CACHE_LEVEL”
“CACHE_FREQ”
“CACHE_EXP”
“CONNECTION”
“ISPUBLIC
“ISHIDDEN
“SRC_REPORTID”
“DEST_CATEGORYID”
“CONTENT_TYPE”
“DSGN_MODE”
“DESC”
“OWNERAPPID”
“OWNERORGID”

The menu name is the name to be displayed at the report selection menu (Database mode). Report ID is an optional parameter which the programmer can use if he wants an ID of his choice. If not, it should be left blank. In case the ID requested is already in use, an error will be thrown. The CatID specifies which category the report should be added to. The IRL is passed as a string. This API returns the Report object for the report which has been uploaded.

ReplaceReport2 ([in] IDispatch* pUserFilters,[in] BSTR strIRLData)

This function takes IRL data which is used to replace another report.

pUserFilter contains the filters. pUserFilters is a collection of UserFilter object. Each object is one filter. So one needs to create object for each filter that he wants to apply and add it to pUserFilters. Filter name is set in the ‘Name’ property of UserFilter class. It can have following values as string.

UserFilter.Name values for AddReort2
“REPORTID”
“CATEGORYID”
“MENUNAME”
“REPORTNAME”
“DEPL_TYPE”
“PRINTSETTINGNAME”
“FORMAT”
“PRIORITY”
“CACHE”
“CACHE_LEVEL”
“CACHE_FREQ”
“CACHE_EXP”
“CONNECTION”
“ISPUBLIC
“ISHIDDEN
“SRC_REPORTID”
“DEST_CATEGORYID”
“CONTENT_TYPE”
“DSGN_MODE”
“DESC”
“OWNERAPPID”
“OWNERORGID”

The report ID and category ID identify which report is to be replaced and the menu name is the new menu name of the report. The IRL is passed as a string.

Icategories

This class is basically meant for housekeeping the individual ICategory objects. It has two methods and two properties:

Category(VARIANT varCategory,ICategory* *pParam)

This is a get property which returns Category of category name passed as parameter.

CategoryNames(VARIANT *pVal)

This is a get property which returns an array of category names 

Add(ICategory *pParam, VARIANT *key)

This Method adds Category object to internal collection of Category objects. When a category object is added to collection at the same time category name is added to a vector array which is used to get category object from index obtained from this vector array using category name.

Remove (VARIANT *Index)

This Method deletes Category object from specified Index. When object at this index is removed, at the same time category name of this object which is stored at this Index is also removed.

_NewEnum

This property identifies an object as supporting iteration through the

IEnumVARIANT interface.

Item

This property returns the corresponding ICategory object from specified index passed as input parameter.  

Count

This property returns the total number of ICategory objects in its collection.

ICategory

This interface contains properties to obtain information about a category. The function CategoryList of ILayoutManager contains a list of such objects inside it’s own collection.

Following properties and APIs are exposed from this interface.

SetID(BSTR bstrCatID)

This method sets the Category ID for this category.

SetName(BSTR bstrCatName)

This method sets the name of category.

ID

This property returns the category ID. 

Name

This property returns the name of the category.

IsPublic

This Property Specifies that whether category is public or private. It can be set or retrieved.

OwnerAppID

This property sets or returns the Owner Application ID.

OwnerOrgID

This property sets or returns the Owner Organization ID.

IReports

This class is used for housekeeping of IReport objects. This class maintains the collection of IReport objects. The collection is based on zero based index. Report object can be obtained either by index or by Report name.

Add

This method adds an object of IReport to the internal collection of IReport objects.

Report

This “get” property returns the IReport object for a given report name.

ReportNames

This “get” property returns the Report names array for all the IReport objects.

Remove

This method removes the IReport object from the collection at specified index.

_NewEnum

This property identifies an object as supporting iteration through the

IEnumVARIANT interface.

Item

This property returns the corresponding IReport object from specified index passed as input parameter.

Count

This property returns the total number of IReport objects in its collection.

IReport

This interface contains properties to obtain information about the reports. The functions ReportLayoutList and ReportListForCategory of ILayoutManager return a list of such objects inside a dictionary. The interface has five get properties:

ID

This get property returns the Report Id. 

Name

This get property returns the report name. 

MenuName

This get property returns the report Menu name.

CatMenuName

This get property returns the menu name of the parent category.

CatID

This get property returns the ID of the parent category.

AccessRights

This property gets/sets the access rights for Report. To set access rights, it takes Access rights string as input.

Category_AccessRights:

This property gets/sets the category access rights. To set access rights, it takes Access rights string as input.

Date

This property gets/sets the date in string format. 

Deployment_Type

This property gets/sets the Deployment_Type. The value of Deployement_Type can be either of the following from ReportDeployment_Type enum.

  1. STANDARD
  2. CUSTOM 
Title

This property gets/sets the Title.

Date

This property gets/sets the date.

Description

This property returns/sets the Description of the report

DesignMode

This property gets/sets the DesignMode. The value of DesignMode can be either of the following from enumDesignMode enum.

  1. EDM_STUDIO
  2. EDM_ADHOC
IsAccessForCategory(long eAccessRightsForCategory)

This get property returns bool value specifying whether access right specified by eAccessRightsForCategory enum is valid or not.

IsAccessForReport(long eAccessRightsForReports)

This get property returns bool value specifying whether access right specified by eAccessRightsForReports enum is valid or not.

IsPublic

This get property returns bool value specifying whether report has public acess or private access.

ReportFormat

This get property returns the Report format.

SourceReportID

This get/set property sets or returns the Source Report ID which is used for the case of hyperlinked report.

SetCatID (BSTR bstrCatID)

This API sets the category ID.

SetCatMenuName (BSTR bstrCatMenuName)

This API sets the Category’s menu name.

SetID(BSTR bstrID)

This API sets the ID of the report.

SetMenuName (BSTR bstrName)

This API sets the menu name of Report.

SetName (BSTR bstrName)

This API sets the name of the report.

Version

This property gets/sets the version.

Report Execution

This category of tasks helps in the correct execution of a report after the report has been selected by the user from the user interface.

The different interfaces provided are

  • ICustomParameters
  • ISystemParameters
  • IUserParameters
  • IUserParameter
  • IPredefs
  • IreportPageSettings

IReportExecuter

This is the interface that is the most important for report execution. It encapsulates the entire logic and at times returns objects of the other interfaces mentioned above to provide and accept data from the user. The functions and properties provided are:

Initialize ([in]BSTR bstrReportID, [in]BSTR bstrCategoryID)

This is the first method that should be called in order to use the report executer object. The report executer needs to be initialized, the first stage of initialization is performed by the EngineObjectFactory itself when it returns the reference, however, the user must call this function with the proper values in order to complete the initialization. The bstrReportID and bstrCategoryID are, the report ID of the report to be executed and the ID of the category in which the report is contained, respectively. 

CustomParameters([out, retval] ICustomParameters* *pVal)

This get property returns an object of the type ICustomParameters. See the explanation of this class for greater details.

ReportParameters([out, retval] IReportParameters* *pVal)

This get property returns an object of the type IReportParameters. See the explanation of this class for greater details.

StartExecution

This function starts the execution of the report that is identified by the reportID and catID parameters passed to the initialize function. More precisely, it sends the request XML to the engine and receives and parses the Page settings XML which can optionally be retrieved using PageSettings get property. If an error occurs, then it throws a COM exception.

Note that initialization, setting of user, custom and system Parameters should precede this call.

PageSettings([out, retval]IReportPageSettings* *pVal)

This get property returns an object of the type IPageSettings. See the explanation of this class for greater details.

Chunk ([out]VARIANT *pDataSize, [out, retval] VARIANT *pVal)

This is the get property that returns the data read from the engine. The data returned is in the form of a VARIANT containing a safe array. The safe array contains binary data that can directly be sent into the Intera Viewer.
The method also takes another argument that is filled up within the function. This argument is returned with an 8 character string which specifies the size of the chunk in bytes. The argument is of type variant which internally contains a BSTR.

The engine does not send the entire report in one go, but in chunks, thus this function has to be placed in a loop and called the right number of times in order to get the complete data. The safearray is of zero length when the data is complete. Thus, the user should place the Chunk function call in a loop that runs until the size of the safearray returned is zero. 

ExecuteReport

This function is only for debugging purposes.

SetParameter (VARIANT vrName,BSTR value,[optional] VARIANT vrType)

It sets the value in system parameter if vrName’s variant type is VT_I4. if vrName’s variant type is VT_BSTR, then the value of UserParameter object is changed if it exists in UserParameters collection and if it does not exist then new UserParameter is created and it is added to UserParameters collection.

ICustomParameters

There are three categories of parameters that have to be passed on to the engine for report execution. Custom parameter is one of those three categories. This interface helps in managing these parameters.

The essential fact to remember is that the user cannot add any parameter of his choice but can only query the values of existing parameters or can modify their values.

The different functions and properties provided by this interface are:

ParamNames

This get property returns a list of all parameter names. The user can later on use each individual parameter name to query what the current value of that parameter is or use the parameter name to set its value.
The variable returned is a VARIANT that contains a safe array. Or for all practical purposes, it returns a VARIANT containing an array of VARIANTS!

Value (VARIANT *ParamName)

This get property returns the current value of the specified parameter. Note that the parameter name should belong to the list of names returned by the ParamNames property or should be a name confirmed using the Exists property. An invalid parameter name will cause an exception.

PutValue (VARIANT ParamName, VARIANT* Value)

This is a method and not a property. This method takes two arguments, one to specify which parameter we want to set and the second specifies the value that the given parameter has to be set to. The value must be a string. Again, all the notes given about the parameter name in the above paragraph apply here as well.

Exists (VARIANT *ParamName)

This get property ascertains whether a particular string is a parameter in the list of Custom parameters. The string that has to be confirmed is passed as an argument and a VARIANT containing a Boolean answer is returned.

GetXML

This function reads the dictionary and creates a string that can be inserted into the XML request for Execution of a report.

IReportPageSettings

This interface helps in maintaining the page settings pertaining to a report after its execution. This object is filled upon receiving the first response after report execution and is optional to use.

Properties are:

PaperBin

This is the get property which returns the member variable for paper bin.

TopMargin

This is the get property which returns top margin.

RightMargin

This is the get property which returns Right margin.

PaperWidth

This is the get property which returns paper width.

PaperSize

This is the get property which returns paper size.

PaperHeight

This is the get property which returns paper height.

Orientation

This is the get property which returns orientation.

MirrorMargins

This is the get property which returns mirror margin.

LeftMargin

This is the get property which returns Left margin.

Gutter

This is the get property which returns Gutter.

Duplex

This is the get property which returns Duplex.

Collate

This is the get property which returns Collate.

BottomMargin

This is the get property which returns Bottom Margin.

All these are get properties that return VARIANTS corresponding to the attribute of page settings that the property name suggests.

User/Role/Organization Management

The user management use cases are implemented using the following set of interfaces:
IUserMgmt

  • IOrganizations
  • IOrganization
  • IUsers
  • IUser
  • IRoles
  • IRole
  • IOrgCredentials
  • IOrgCredential
  • ISecurityManager

ISecurityManager

This class does user management related stuffs and responsible for managing users, roles and privileges related stuffs. This class adds, deletes and replaces users, roles and privileges.

AddMapEntities

This API maps Application user to Intellicus User in organization.

AddRole

This API adds a single role to repository. It takes IRole object which is to be added.

AddRoles

This API adds multiple roles to repository at one time.It takes IRoles object which contains a collection of IRole objects.

AddUser

This API adds a single user to repository. It takes IUser object which is to be added.

AddUsers

This API adds multiple users to repository at one time.It takes IUsers object which contains a collection of IUser objects.

AssignCategoryPrivilegesToRole

This API assigns category privileges to role. This API takes IRole object to which privileges are to be assigned, category ID of category whose privileges has to be assigned, accessLevel which can take one of the following value mentioned below and accessRights which can take any combination of values from enum AccessRightsForCategory mentioned below.

enum AccessLevels

  • DENYACCESS
  • FULLACCESS
  • PARTIALACCESS

enum AccessRightsForCategory

  • VIEW_REPORTS
  • VIEW_REPORTS_SECURED
  • SAVE_REPORTS
  • SAVE_REPORTS_SECURED
  • EXPORT_REPORTS
  • EXPORT_REPORTS_SECURED
  • PRINT_REPORTS
  • PRINT_REPORTS_SECURED
  • PRINT_REPORTS_AT_SERVER
  • PRINT_REPORTS_AT_SERVER_SECURED
  • SCHEDULED_REPORTS
  • PUBLISH_LAYOUTS
  • PUBLISH_OUTPUTS
AssignCategoryPrivilegesToUser

This API assigns category privileges to user. This API takes IUser object to which privileges are to be assigned, category ID of category whose privileges has to be assigned, accessLevel which can take one of the following value mentioned below and accessRights which can take any combination of values from enum AccessRightsForCategory mentioned below.

enum AccessLevels

  • DENYACCESS
  • FULLACCESS
  • PARTIALACCESS

enum AccessRightsForCategory

  • VIEW_REPORTS
  • VIEW_REPORTS_SECURED
  • SAVE_REPORTS
  • SAVE_REPORTS_SECURED
  • EXPORT_REPORTS
  • EXPORT_REPORTS_SECURED
  • PRINT_REPORTS
  • PRINT_REPORTS_SECURED
  • PRINT_REPORTS_AT_SERVER
  • PRINT_REPORTS_AT_SERVER_SECURED
  • SCHEDULED_REPORTS
  • PUBLISH_LAYOUTS
  • PUBLISH_OUTPUTS
AssignReportPrivilegesToRole

This API assigns Report privileges to role. This API takes IRole object to which privileges are to be assigned, Report ID of Report whose privileges has to be assigned, Category ID of Cateogory to which report belongs and accessRights which can take any combination of values from enum AccessRightsForReports mentioned below.

Enum AccessRightsForReports

  • VIEW_REPORT
  • VIEW_REPORT_SECURED
  • SAVE_REPORT
  • SAVE_REPORT_SECURED
  • EXPORT_REPORT
  • EXPORT_REPORT_SECURED
  • PRINT_REPORT
  • PRINT_REPORT_SECURED
  • PRINT_REPORT_AT_SERVER
  • PRINT_REPORT_AT_SERVER_SECURED
  • PUBLISH_OUTPUT
AssignReportPrivilegesToUser

This API assigns Report privileges to user. This API takes IUser object to which privileges are to be assigned, Report ID of Report whose privileges has to be assigned, Category ID of Cateogory to which report belongs and accessRights which can take any combination of values from enum AccessRightsForReports mentioned below.

Enum AccessRightsForReports

  • VIEW_REPORT
  • VIEW_REPORT_SECURED
  • SAVE_REPORT
  • SAVE_REPORT_SECURED
  • EXPORT_REPORT
  • EXPORT_REPORT_SECURED
  • PRINT_REPORT
  • PRINT_REPORT_SECURED
  • PRINT_REPORT_AT_SERVER
  • PRINT_REPORT_AT_SERVER_SECURED
  • PUBLISH_OUTPUT
CreateAsRole

This API creates a new role from an existing role. Parameters are described as below which are passed as input to this API.

  • bstrDRoleID – Destination role ID
  • bstrDRoleName – Destination Role Name
  • bstrDOrgID – Destination Organization ID
  • bstrDDesc – Destination Role Description
  • bstrSRoleID – Source Role ID
  • bstrSOrgID – Source Organization ID
CreateAsUser

This API creates a new user from an existing user. Parameters are described as below which are passed as input to this API.

  • bstrDUserID– Destination user ID
  • bstrDUserName– Destination User Name
  • bstrDPasswd- Destination Password.
  • bstrDOrgID – Destination Organization ID
  • bstrDDesc – Destination User Description
  • bstrSUserID– Source User ID
  • bstrSOrgID – Source Organization ID
DeleteMapEntities

This API deletes mapping between Application User ID and Intellicus User ID for the organization specified by bstrOrgID.

DeleteRole

This API deletes a single role from repository. It takes IRole object which is to be deleted.

DeleteRoles

This API deletes multiple roles from repository at one time.It takes IRoles object which contains a collection of IRole objects.

DeleteUser

This API deletes a single user from repository. It takes IUser object which is to be deleted.

DeleteUsers

This API adds multiple users from repository at one time.It takes IUsers object which contains a collection of IUser objects.

ReportServerConf

This get property returns the object of IReportServerConf. This API retrieves the report server configuration information from report server and populates IReportServerConf object.

AccessRightsManager

This get property returns the object of IAccessRightsManager. For details, see IAccessRightsManager class section.

GetOrganizationList

This get property returns the object of IOrganizations object. This API retrieves the organization list from repository through report server and populates IOrganizations object which is a collection of IOrganization objects.for details, see IOrganizations class section.

GetOrgsWithCredentials

This get property returns the object of IOrganizations object which contains organization credential details also. This API retrieves the organization list with credential information from repository through report server and populates IOrganizations object which is a collection of IOrganization objects.for details, see IOrganizations class section.

GetRoleList

This get property returns the object of IRoles object. This API retrieves the all the roles from repository through report server and populates IRoles object which is a collection of IRole objects.for details, see IRoles class section.

GetRoleListForOrg

This get property returns the object of IRoles object. This API retrieves the roles from repository through report server for specified organization of organization id which is passed as input parameter and populates IRoles object which is a collection of IRole objects.for details, see IRoles class section.

GetUserList

This get property returns the object of IUsers object. This API retrieves the all the users from repository through report server and populates IUsers object which is a collection of IUser objects.for details, see IUsers class section.

GetUserListForOrg

This get property returns the object of IUsers object. This API retrieves the users from repository through report server for specified organization of organization id which is passed as input parameter and populates IUsers object which is a collection of IUser objects.for details, see IUsers class section.

RenameRole

This API renames role ID of role of specified organization. This API takes following parameters described as below.

  • bstrSrcID – Source Role ID
  • bstrOrgID – Organization ID of organization to which role belongs.
  • bstrDestID – new Role ID which is to be assigned.
RenameUser

This API renames user ID of role of specified organization. This API takes following parameters described as below.

  • bstrSUserID– Source User ID
  • bstrOrgID – Organization ID of organization to which role belongs.
  • bstrDUserID– new User ID which is to be assigned.
ReplaceMapEntities

This API modifies mapping between Application user and Intellicus User of specified Organization.

ReplaceRole

This API replaces a single role onto repository with passed new one. It takes IRole object which is to be deleted.

ReplaceRoles

This API replaces multiple roles onto repository at one time.  It takes IRoles object which contains a collection of IRole objects.

ReplaceUser

This API replaces a single user from repository with passed new one. It takes IUser object which is to be deleted.

ReplaceUsers

This API replaces multiple users onto repository at one time.  It takes IUsers object which contains a collection of IUser objects.

IUserMgmt

This is the central interface for the user management set of use cases. Its instance can be obtained from the engine object factory using the UserMgmt get property. The UserAuthorization object will have to be passed. The functions and properties provided are:

OrganizationList

This get property returns an object of type IOrganizations which in turn keeps a set of IOrganization objects, each of which stores information about the different organizations supported by the engine database.

UserList

This get property returns an object of type IUsers which in turn keeps a set of IUser objects which maintain information about individual users registered on the database. 

RoleList

This get property returns an object of type IRoles which in turn keeps a set of IRole objects which maintain information about individual roles added in the database.

IOrganizations

This class is basically meant for housekeeping the individual IOrganization objects. It has two methods:

OrganizationNames

This get property returns an array of VARIANTS that contain different organizations names. These organization names will be used as keys to obtain the actual IOrganization object from this object. 

Organization (BSTR bstrOrgName)

This get property takes an Organization name (as string) as a parameter and returns the corresponding IOrganization object.

Add

This Method adds new organization to it’s internal collection of objects to add the organization to repository. It takes Organization object as input parameter.

User needs to call commit() for final transaction.

Remove

This Method adds organization to it’s internal collection of objects to remove the organization from repository. It takes Organization object as input parameter.

User needs to call commit() for final transaction.

Replace

This Method adds organization to it’s internal collection of objects to replace the organization onto repository. It takes Organization object as input parameter.

User needs to call commit() for final transaction.

Commit

This method commits the final transaction to add, delete, replace the organizations onto repository. This method prepares request XML with necessary details of organizations to be added,deleted and replaced and sends it to server.

IOrganization

This class is meant for storing organization information.  Following properties or APIs are exposed from this interface.

AuthenticateMode

This Get/Set property sets or returns the Authentication mode. Authentication mode can be either of the following from enum enumAuthenticationMode.

  • AUTH_INTELLICUS
  • AUTH_EXTERNAL
  • AUTH_HOST
  • AUTH_CALLBACK
Authentication

This Get property returns Authentication object. For details, see Authentication class section.

AuthenticationDetail

This Get/Set property returns or sets the AuthenticationDetail string.

Authorization

This Get property returns the Authorization object. For details, see Authorization class section.

AuthorizationDetail

This Get/Set property returns or sets the AuthorizationDetail string.

AuthorizeMode

This Get/Set property returns or sets the AuthorizeMode string.

CanDelete

This Get/Set property returns or sets the bool value specifying if the organization can be deleted or not. If user exists in that organization then this organization can not be deleted. In this case, The value will be false.

Description

This Get/Set property returns or sets the Description string.

GlobalFilter

This Get property returns GlobalFilter object. For details, see GlobalFilter class section.

IsDefault

This Get/Set property returns or sets bool value specifying is this organization is default organization.

IsFilterApplicable

This Get/Set property returns or sets bool value specifying is filter is applicable for this organization.

MapType

This Get/Set property returns or sets the map type.

Name

This Get/Set property returns or sets the organization’s name.

OrgCredentials

This Get/Set property returns or sets OrgCredentials object. For details, see OrgCredentials class section.

OrgID

This Get/Set property returns or sets the organization’s ID.

PwdExpiration

This Get/Set property returns or sets the Password expiration.

PwdLength

This Get/Set property returns or sets the password length.

PwdNeverExpire

This Get/Set property returns or sets the Bool value specifying whether password will expire or it will be for life time.

SpecialPwd

This Get/Set property returns or sets bool value specifying whether password is special one or not.

IAuthentication

IAuthentication class contains the information related to authentication required for organization.

This class provides the following properties:

ExternalAppAttribs

This is a “get” property that provides the object of IExternalAppAttribs.

CallBackAttribs

This is a “get” property that provides the object of ICallBackAttribs. For Details, see ICallBackAttribs class section.

AuthenticaionMode

This is a get and set property which returns the authentication mode, like Intellicus, External, Host or Callback Mechanism. This property can have one of the following value from enum ‘enumAuthenticationMode’.

  • AUTH_INTELLICUS
  • AUTH_EXTERNAL
  • AUTH_HOST
  • AUTH_CALLBACK

IAuthorization

This class provides the following properties:

AuthorizationMode

This get/set property returns or sets the authorization mode. Currently authorization mode is available through Intellicus. This property can have value from one of the following values from enum ‘enumAuthorizationMode’

AUTHORIZATION_INTELLICUS = 1

IGlobalFilter

This Class contains information related to filtering purposes.  This class provides the following properties:

CallBackAttribs

This is a “get” property that provides the object of ICallBackAttribs. For details, see ICallBackAttribs class section.

SystemFilterAttribs

This is a “get” property that provides the object of ISystemFilterAttribs. For details, see ISystemFilterAttribs class section.

GlobalFilterMode

This property sets or returns the Global filter mode. This property can have value from one of the following values from enum ‘enumGlobalFilterMode’.

  • GFT_INTELLICUS
  • GFT_CALLBACK
IsApplicable

This get/set bool property specifies whether the global filter applied or not.

ICallBackAttribs

This class is basically meant for housekeeping the individual ICallBackAttrib objects. It maintains a collection of the ICallBackAttrib objects. This class provides the following properties:

CallbackType

This property returns the callback type, like Local, Socket, RMI. This property can have value from one of the following values from enum ‘enumCallbackType’.

  • CALLBACK_LOCAL
  • CALLBACK_SOCKET
  • CALLBACK_RMI
CallBackAttrib

This is a “get” property that returns the object of ICallBackAttrib. For details, see ICallBackAttrib class section.

ImplementerAttribs

This is a “get” property that returns the object of IImplementerAttribs. For

Details, See ImplementerAttribs class section.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the ICallBackAttrib object from specified index.

Count

This property returns the total number of ICallBackAttrib objects in its collection.

This class provides one API:

Add

This method adds the ICallBackAttrib object to the collection of ICallBackAttrib objects. CallBackAttrib’s name is used as key in the collection.

ICallBackAttrib

This interface contains properties to obtain information about the callback attributes.  It has following get and set properties:

Name

This is only a “get” property which returns the name of the attribute.

Value

This property sets/returns the value of attribute.

Type

This property sets/returns the type of the attribute. This property can have value from one of the following values from enum enumCallBackAttrib.

  • CBA_SERVER_IP
  • CBA_SERVER_PORT

IExternalAppAttribs

This class is basically meant for housekeeping the individual IExternalAppAttrib objects. It maintains a collection of the IExternalAppAttrib objects. This class provides the following properties:

ExternalAppType

This property sets/returns the External application type, like WinNT, UNIX, DAP or NDIS. This property can have one of the following values from enum enumAuthExtAppType

  • AUTH_EXT_APP_WINNT
  • AUTH_EXT_APP_UNIX
  • AUTH_EXT_APP_LDAP
  • AUTH_EXT_APP_NDIS
ExternalAppAttrib

This is a “get” property that returns the object of IExternalAppAttrib. For Details, see IExternalAppAttrib class section.

Add

This method adds the IExternalAppAttrib object to the collection of IExternalAppAttrib objects. ExternalAppAttrib’s name is used as key in the collection.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the IExternalAppAttrib object from specified index.

Count

This property returns the total number of IExternalAppAttrib objects in its collection.

IExternalAppAttrib

This interface contains properties to obtain information about the callback attributes. It has following get and set properties:

Name

This is only a “get” property which returns the name of the attribute.

Value

This property sets/returns the value of attribute.

Type

This property sets/returns the type of the attribute. This property can have one of the following values from enum ‘enumExternalAppAttrib’.

  • EAA_SERVER_IP
  • EAA_SERVER_PORT
  • EAA_USERDN

IImplementerAttribs

This class is basically meant for housekeeping the individual IImplementerAttrib objects. It maintains a collection of the IImplementerAttrib objects. This class provides the following properties:

ImplementerType

This property returns the Implementer attribute type, like Java Class, Native Lib, Com DLL. This property can have one of the following values from enum enumImplementerType.

  • IMPL_JAVA_CLASS
  • IMPL_NATIVE_LIB
  • IMPL_COM_DLL
ImplementerAttrib

This is a “get” property that returns the object of IImplementerAttrib. For Details, see IImplementerAttrib class section.

Add

This method adds the IImplementerAttrib object to the collection of IImplementerAttrib objects and also to IndexNameMap where the name and object are mapped from collection.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the corresponding item.

Count

This property returns the total number of objects in its collection.

IImplementerAttrib

This interface contains properties to obtain information about the Implementer attributes. It has following get and set properties:

Name

This is only a “get” property which returns the name of the attribute.

Value

This property returns the value of attribute.

Type

This property returns the type of the attribute. This property can have one of the following values from enum enumImplementerAttrib

IA_PATH

ISystemFilterAttribs

This class is basically meant for housekeeping the individual ISystemFilterAttrib objects. It maintains a collection of the ISystemFilterAttrib objects.  This class provides the following properties:

SystemFilterName

This property sets/returns the system filter name.

SystemFilterAttrib

This is a “get” property that returns the object of ISystemFilterAttrib. For Details, see ISystemFilterAttrib class section.

SelectOptions

This is a “get” property that returns the object of ISelectOptions. For Details, see ISelectOptions class section.

Add

This method adds the ISystemFilterAttrib object to the collection of ISystemFilterAttrib objects. SystemFilterAttrib’s name is used as key in the collection.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the ISystemFilterAttrib object from specified index.

Count

This property returns the total number of ISystemFilterAttrib objects in its collection.

ISystemFilterAttrib

This interface contains properties to obtain information about the System filters. It has following get and set properties:

Name

This is only a “get” property which returns the name of the filter attribute.

Value

This property sets/returns the value of attribute.

Type

This property sets/returns the type of the filter attribute. This property can have one of the following values from enum enumSystemFilterAttrib.

  • SFA_FILTER_COLUMN_NAME
  • SFA_IGNORE_IF_NOT_PRESENT

IUsers

This class is basically meant for housekeeping the individual IUser objects. This class contains a collection of IUser objects. This class provides necessary interfaces to iterate through the IUser objects.

UserNames

This get property returns an array of VARIANTS that contain different users’ names. These user names will be used as keys to obtain the actual IUser object from this object.

User

This get property takes a User name (as VARIANT) as a parameter and returns the corresponding IUser object.

Add

This API adds a User to Users Collection. User’s Name is used as Key in the collection.

Remove

This API removes a user from the Users collection from the specified index

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the IUser object from specified index.

Count

This property returns the total number of IUser objects in its collection.

IUser

This class is meant for storing user information. Functions provided are:

Description

This Get/Set property returns or sets the description of the user.

Is_Admin

This Get/Set property returns or sets bool value specifying whether this user  is Admin or not.

Is_Password_Blank

This Get/Set property returns or sets bool value specifying whether password is blank for this user or not.

Is_SuperAdmin

This Get/Set property returns or sets bool value specifying whether this user is super admin or not.

OrgID

This Get/Set property returns or sets organization ID.

Password

This Get/Set property returns or sets the password.

RoleIDs

This Get/Set property returns or sets the Role IDs.

Status

This Get/Set property returns or sets the status.

System_Privileges

This Get/Set property returns or sets the system privileges string

UserID

This Get/Set property returns or sets the User ID.

IsFirstLogin

This Get/Set property returns bool value specifying whether this user has logged in for the first time or not. If for first time then he should be prompted to change the password. This property was used in earlier versions. Now this property has been deprecated and should not be used.

UserName

This Get/Set property returns or sets the user name.

IRoles

This class is basically meant for housekeeping the individual IRole objects. This class contains a collection of IRole objects. This class provides necessary interfaces to iterate through the IRole objects.

RoleNames

This get property returns an array of VARIANTS that contains different roles’ names. These role names will be used as keys to obtain the actual IRole object from this object.

Role

This get property takes a role name (as VARIANT) as a parameter and returns the corresponding IRole object.

Add

This API Adds a role to Roles collection. Role’s Name is used as key to add in the collection.

Remove

Remove a role object from Roles collection from the specified index.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the IUser object from specified index.

Count

This property returns the total number of IUser objects in its collection.

IRole

This class contains role information. Following properties are exposed from this class. 

Description

This Get/Set property returns or sets the description.

Is_Admin

This Get/Set property returns or sets the bool value specifying if the role for Admin.

Level

This Get/Set property returns/sets the role level.

OrgID

This Get/Set property returns/sets the organization ID.

RoleID

This Get/Set property returns/sets the role ID.

RoleName

This Get/Set property returns/sets the role name.

Status

This Get/Set property returns/sets the status.

TimeStamp

This get/set property returns/sets the timestamp

System_Privileges

This Get/Set property returns/sets the system privileges.

IOrgCredentials

This class is basically meant for housekeeping the individual IOrgCredential objects. This class contains a collection of IOrgCredential objects. This class provides necessary interfaces to iterate through the IOrgCredential objects.

Add

This method adds IOrgCredential object to internal collection. IOrgCredential’s name is used as key in the collection.

OrgCredential

This get property retrieves the IOrgCredential object of specified name from collection.

OrgCredentialNames

This get property retrieves the array of name of organizational credential objects. This name can be used to retrieve individual IOrgCredential object.

Remove

This method removes IOrgCredential object from specified index.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the IOrgCredential object from specified index.

Count

This property returns the total number of IOrgCredential objects in its collection.

IOrgCredential

This class is used to store the information about organizational credential.

DefaultValue

This get property gives the default value of organizational credential.

DisplayName

This get property gives the display name for organizational credential.

Name

This get property gives the name of organizational credential.

Type

This get property gives the type of organizational credential.

Values

This get property gives the value of organizational credential.

Database Management

Database management involves actions which are independent of all other aspects of reporting like layout management, report execution etc and deal only with database maintenance and access.

The various use cases belonging to this category of tasks are satisfied by:

  • IDBMgmt
  • IDBConnections
  • IDBConnection
  • IDBProvider

IDBMgmt

This is the primary interface for the database functionality. It contains methods for satisfying all use cases related to database operations. The methods/properties provided are:

Connections([out, retval] IDBConnections* *pVal)

This is a get property which does not take any argument. It makes a server trip and returns the details about the DB connections at the engine in the form of an object hierarchy. I.e. the information is returned in a hierarchical fashion.
Calling this property returns an object of the interface IDBConnections (Note the ‘s’). The IDBConnections object contains multiple IDBConnection (Note: no ‘s’) objects which in turn contain information about the individual connections. These individual IDBConnection objects can be retrieved from IDBConnections (mechanism will be discussed shortly).

DBMetadata ([in]VARIANT vrDBName,              [in] long lMode,               [out,retval] _Recordset* *pRecordset)

(Returns Recordset object)

This get property returns the metadata for the database specified by DBName. This metadata is put inside a hierarchical, shaped recordset. That is, this function call only returns the structure of the different tables/views etc stored on the engine configuration.

The recordset that is returned is called “Entity Recordset”. It is named so because it contains brief details about the top level entities of a database; namely tables, views, stored procedures and Synonyms. The ‘brief details’ are name and type. The name is what the entity’s identifier and the type helps us in determining which one of the mentioned entity types it is.
Depending on what kind of object (entity) it is, the object will have a different set of details and hence we could not specify them in the Entity RS itself. However, there is a field called ‘child’ which contains details. This child is actually a sub-recordset. The structure of the child recordset for each object type is show in the diagram.

The child recordset contains finer details about the object, in case of tables and views these details will be columns and their specifications like datatype etc, in case of stored procedures the details will be parameter names and parameter specifications. Synonyms have not yet been implemented.
The child element in the child recordset is a sub-sub-recordset which will contain yet another level of details. I.e. the child recordset of table-details RS will be called ‘column details RS” since it will contain column data information.
Thus the naming convention of the recordsets should also be clear by now. If not, then please read this part of the document again.
Additional details which may arise in the future; like security constraints, can be accommodated later thanks to the flexible structure.

ExecuteCmd ([in] VARIANT vrDBName, [in] VARIANT vrCmd,[in] VARIANT vrMaxRows, [out,retval] _Recordset** pRecordset)

This method remotely executes a query at the engine and returns the resultant recordset. As parameters, it requires the command (query/stored procedure) to be executed, the name of the database against which the command will be executed and maximum no of rows which should be returned as resultset. Value of vrMaxRows as 0 will give all the rows in the result set.
The recordset which is returned contains the data. 

NewDBConnection([out, retval] IDBConnection* *pVal)

This function creates a new DBConneciton object, initializes it and returns it.

DBMetadataAndCache([in]VARIANT vrDBName, [in] long lMode, [in] BSTR strFilePath, [out, retval] _Recordset* *pVal)

This property is same like DBMetadata property except that it caches the Metadata on the local file system at the path specified by input parameter strFilePath and returns recordset containing DBMetaData information.

ReportParameters

This get/set property returns or sets the IReportParameters object. 

LoadDBMetadataFromCache([in] BSTR strFilePath,[out,retval] _Recordset** pVal)

This API prepares the DBMetaData recordset using the cached value rather Then retrieving it through report server. DBMetaData is cached when DBMetadataAndCache is used to retrieve the metadata.

IDBConnections

This interface is returned by the ‘Connections’ get property of IDBMgmt. It is basically a container for house-keeping multiple DBConnection objects. It allows the programmer to retrieve one DBConnection object at a time. The DBConection object in turn contains the further details about each connection. The properties/methods provided by this interface are:

DBConnectionNames

This get property returns an array containing the names of all connections. These connection names may be used for displaying at the UI or for retrieving a singe DBConnection object using the next property.

DBConnection (Connection Name)

This get property takes one argument. It takes a connection name and then returns a DBConnection object complete with all details for the specified connection.

Add

This function adds the input database connection object to the database connection pool.

Remove

This function removes the database connection object based on the input index.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the IDBConnection object from specified index. 

Count

This property returns the total number of IDBConnection objects in its collection.

IDBConnection

This is the object interface that contains details about a single connection. The DBConnections object seen above was basically a container and house-keeper for multiple DBConnection objects.  Along with some atomic/primitive properties, this object further contains an object called IDBProvider.  This DBProvider object contains details that are specific to the database provider.  For example, Oracle requires a host name, port number and a TNS name, whereas ODBC simply requires a DSN string.

The get/set properties and methods provided by DBConnection are:

Name

This set of get/put properties help in retrieving or setting the name of the connection. 

IsDefault

This set of get/put properties help in retrieving/setting a bool value, which determines whether the connection is the default connection or not. 

IsRepository

This set of get/put properties help in retrieving/setting a bool value which determines if the connection in question will also serve as the repository database or not.

Provider

This get property returns a DBProvider object which stores provider specific information.

DBPassword

This get/set property returns / sets the Data Base password.

DBUserID

This get/set property returns/ sets the database user ID.

IsRunTimeCredential

This get property returns bool value which tells whether run time credentials required will be used for authentication or not. If this property is TRUE then RTUserID and RTPassword properties are used by IUserInfo class of REReqLib.

IsValid

This get/set property returns/sets the bool value which specifies whether database connection is valid or not.

TestDBConnction

This method tests the DB Connection using the information provided to the properties like DBUserID, DB connection name, DBPassword etc. If it is valid, this method just returns otherwise it throws exception to the host application.

IDBProvider

This interface house keeps information specific to the database provider. To keep the information extensible, the database parameters have not been coded as variables/properties. Instead, the different provider parameters exist as key-value pairs in a dictionary and this interface is essentially a wrapper over the dictionary. For example, lets say oracle type 4 provides 3 parameters that the user can use, namely, HOST, PORT and TNS. Then instead of creating different get/set properties (which would make the interface rigid) HOST and host name, PORT and the port number and TNS and TNS name exist as key value pairs inside the dictionary. The interface provides enumerated values which can be used to identify the type of the provider and it provides get/put properties which enable retrieval of parameters.

ProviderType

This set of  get/put properties helps in retrieving/setting an enumerated integer which identifies the type of the provider. The enums are named as :
PT_<xxx> where <xxx> is a placeholder for the provider type. These enums are exposed by ReCOMClient type library. 

PropertyNames

This get property returns an array containing the different parameter names for the provider. These parameter names can be used for displaying on the UI or for getting/setting individual parameter values from the next get/put property. 

PropertyValue(VARIANT property_name)

This set of get/put properties helps in retrieving/setting the value of a specific provider parameter (‘property’). These properties take the name of the parameter (‘property’) to be used as a parameter. 

DriverType

This get property returns the type of driver. This property can have one of the following values from enum enumDriverTypes:

  • EODT_NONE
  • EODT_ORACLE_OCI
  • EODT_ORACLE_OCI_TNS
  • EODT_ORACLE_THIN
DriverVersion

This get property return the version of driver.

AccessRights APIs

IAccessRights

This class is basically meant for housekeeping the individual IAccessRight objects. It maintains a collection of the IAccessRight objects. This class also provides necessary interfaces to iterate IAccessRights objects. Access rights can be applied for two type of entities. One is User and second is Role. It provides the following properties and APIs.

AccessRight

This is a “get” property that returns the object of IAccessRight. For details, see IAccessRight class section.

ID

This property returns/sets the ID of the access right.

Type

This property specifies the type of the access right, like user or role. This property can have one of the following values from enum enumAccessRightsType

  • EART_USER
  • EART_ROLE
OpCode

This property returns/sets the operation code, like “Add”, “Replace” or “Delete”. This opcode tells which operation to perform on access rights.

OrgID

This property returns/sets the organization ID.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the IAccessRight object from specified index.

Count

This property returns the total number of IAccessRight objects in its collection.

IaccessRight

This interface contains properties to obtain information about the access right. It has following get and set properties:

EntityType

This property returns/sets the type of entity for which the access rights to be applied, like category, report or system. This property can have one of the following values from enum enumAccessEntityType

  • EET_CATEGORY
  • EET_REPORT
  • EET_SYSTEM
CatID

This property returns/sets the category ID.

ReportID

This property returns/sets the report ID.

AccessLevel

This property returns/sets the access level as deny, full or partial access. This property can have one of the following values from enum AccessLevels

  • DENYACCESS
  • FULLACCESS
  • PARTIALACCESS
IsAccessForCategory

This property returns bool value specifying whether access rights specified by parameter eCategoryPriveledges for category granted or not.

IsAccessForReport

This property returns bool value specifying whether access rights specified by parameter eReportPriveledges for report granted or not.

AccessRights

This property is a “put” property that is used to specify new access rights. Access rights are set in string comma separated format.

Report Utility classes

IReportUtility

This class provides the following get property:

get_SystemFiles([in] long eSystemFileType, [out, retval] ISystemFiles* *pVal)

This property returns the list of all system file corresponding to a file type specified by eSystemFileType from the report server. It provides a list of XML Data Source files from report server.

VerifyScript([in] BSTR bstrRequestData,[out,retval] BSTR* bstrResponseData)

This API verifies script. Script code is passed as parameter which is verified by report server. And response is sent back which contains information whether script is valid or not. If any error occurs, exception is thrown to host application.

System Files Management

ISystemFilesManager

This class basically manages System Files placed onto repository. It provides functionality to retrieve System Files. This class has following properties

SystemFilesList([in] long eSystemFileType, [out, retval] ISystemFiles* *pVal)

This get property returns the ISystemFiles object which contains  the collection of ISystemFile objects. This ISystemFile object contains only name of system file. It does not contain any data associated with that system file. To retrieve the data use ‘ ‘DetailedSystemFile’ or ‘DetailedSystemFiles’ property. eSystemFileType can take one of the following values from enum enumSystemFileType.

  • ESFT_ADHOC_TEMPLATE_IRL
  • ESFT_ADHOC_TEMPLATE_STYLE
  • ESFT_XML_DATASOURCE
  • ESFT_CHART_TEMPLATE
DetailedSystemFile([in] long eSystemFileType, [in,out] ISystemFile* *pSystemFile)

This get property is meant to provide the details (file content) of system file. This property provides file content of single system file. It takes the system file type and SystemFile object (by reference) as input. One needs to provide system file name in ‘SystemFileName’ property of SystemFile object which is passed as parameter. This property provides the file content in the ‘FileData’ property of same SystemFile object which is passed as input parameter by reference. eSystemFileType can take one of the following values from enum enumSystemFileType.

  • ESFT_ADHOC_TEMPLATE_IRL
  • ESFT_ADHOC_TEMPLATE_STYLE
  • ESFT_XML_DATASOURCE
  • ESFT_CHART_TEMPLATE
DetailedSystemFiles([in] long eSystemFileType, [in,out] ISystemFiles* *pSystemFiles)

This get property is meant to provide the details (file content) of multiple system files at one time. It takes the system file type and SystemFiles object (by reference) as input. One needs to add SystemFile objects into SystemFiles collection whose contents need to be retrieved. SystemFile object which is being added to collection should be with system file name set in ‘SystemFileName’ property of SystemFile object. file content in stored in the ‘FileData’ property of same SystemFile object. If user passes the object of SystemFiles without adding any SystemFile object to it, this property returns the SystemFiles object with collection of all the available system files of type eSystemFileType. eSystemFileType can take one of the following values from enum enumSystemFileType.

  • ESFT_ADHOC_TEMPLATE_IRL
  • ESFT_ADHOC_TEMPLATE_STYLE
  • ESFT_XML_DATASOURCE
  • ESFT_CHART_TEMPLATE

ISystemFiles

This class is basically meant for housekeeping the individual ISystemFile objects. It maintains a collection of the ISystemFile objects. It also provides necessary interfaces to iterate ISystemFile objects. It also provides the following properties:

SystemFileType

This property returns the file type. This property can have one of the following values from enum enumSystemFileType

  • ESFT_ADHOC_TEMPLATE_IRL
  • ESFT_ADHOC_TEMPLATE_STYLE
  • ESFT_XML_DATASOURCE
  • ESFT_CHART_TEMPLATE
SystemFile

This is a “get” property that returns the object of ISystemFile of the name mentioned by system file name.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the ISystemFile object from specified index.

Count

This property returns the total number of ISystemFile objects in its collection.

Add(ISystemFile* pSystemFile)

This API adds a SystemFile object into the collection.

ISystemFile

This interface contains properties to obtain information about the system file. It has following get and set properties:

SystemFileName

This property returns/sets the system file name.

FileData

This get property returns the system file content in string format. This property is applicable only if ResponseCode is 0.

ResponseCode

This get property returns the response code. If response code is other than 0 then there must be some error while retrieving the system file. In this case, FileData would not contain any data, instead Message property would contain message.

Message

This get property returns the message. This property is applicable only if ResponseCode is other than 0.

IXMLDataSourceMetaData

This interface contains properties to obtain information about the XML data source metadata elements. It provides the following get property:

XMLDataSourceElements

This property returns the object of IXMLDataSourceElements. For details, see IXMLDataSourceElements class section.

IXMLDataSourceElements

This class is basically meant for housekeeping the individual IXMLDataSourceElement objects. It maintains a collection of the IXMLDataSourceElement objects. It also provides necessary interfaces to iterate IXMLDataSourceElement objects. It provides the following properties:

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface. 

Item

This property returns the IXMLDataSourceElement object from specified index.

Count

This property returns the total number of IXMLDataSourceElement objects in its collection.

IXMLDataSourceElement

This interface contains properties to obtain information about the XML data source elements. It has following get and set properties:

ElementType

This property returns/sets the element type.

Path

This property returns/sets the path of the element.

Session Level Management

IUserSession

This class is responsible for maintaining user sessions. This class contains all the information required for maintaining user session.

AppID

This “get” property returns the application ID.

Description

This “get” property returns the description related to user session.

Is_Admin

This “get” property returns bool value true if this particular user session belongs to admin, false otherwise.

Is_Blank_Password

This “get” property returns bool value true if the password for this particular user session is blank, false otherwise.

Is_First_Login

This “get” property returns bool value true if this is the first login, false otherwise.

Is_SuperAdmin

This “get” property returns bool value true if this particular user session belongs to super admin, false otherwise.

OrgName

This “get” property returns the organization name for this user session.

RoleIDs

This “get” property returns the role IDs for this user session.

Status

This “get” property returns the status of this user session.

System_Privileges

This “get” property returns the system privileges for this user session.

Initialize

This is the method which should be used to intialize the object to hold the authentication user information. It takes IUserInfo object as parameter which contains authentication information. This property uses the information contained by IUserInfo object and verifies the information at the server. If information is valid, this API return TRUE, otherwise FALSE. Also this API initializes IUserPreferences object and populates it.

IsLoggedIn

This method checks if the user was authenticated at the server. If yes, it returns true, otherwise false.

IsPinging

This method pings to the server and checks if the engine is running. If yes, it returns true, otherwise false.

IsSecurityEnabled

This method verifies from engine that whether engine is running in the secured mode or not. If yes, it returns true, otherwise false.

LogOut

This function is purely logical in nature. It modifies the state of the object so that it behaves as if the user is not logged in. To log in again, the Initialize function must be called.

Report Object Management

IReportObjectsManager

This class is basically meant for managing the report objects. It provides the following properties:

ParameterObjects([out, retval] IParameterObjects* *pVal)

This get property returns the IParameterObjects. For details, see IParameterObjects class section.

QueryObjects([out, retval] IQueryObjects* *pVal)

This get property returns the object of IQueryObjects. IQueryObjects contains a collection of IQueryObject. This set of IQueryObject contains only basic information about the query object. For details, see IQueryObjects class section.

TemplateObjects([out, retval] ITemplateObjects* *pVal)

This get property is deprecated. One should not use this get property.

Query Object APIs

IqueryObjects

This class is used for housekeeping of IQueryObject objects. This class maintains the collection of IQueryObject. It also provides necessary interfaces to iterate IQueryObject objects.  It provides the following properties:

Add

This method adds an object of IQueryObject to the internal collection of IQueryObject to add to the repository if BeginTrans() is called otherwise QueryObject is added to repository. To add multiple QueryObjects to repository at one time, one will need to first call BeginTrans, then add IQueryObject objects using Add API to collection and then call CommitTrans() to perform final transaction to repository.

BeginTrans

This API indicates that query objects have to be kept in a list instead of directly adding it to Repository.

CommitTrans

This API performs final transaction of adding or removing Query Objects to repository.

QueryObject

This “get” property returns the query object for a given name of QueryObject.

QueryObjectNames

This “get” property returns array of Query object names. These names can be used to retrieve IQueryObject object from collection.

Remove

This method adds an object of IQueryObject to the internal collection of IQueryObject to remove from the repository if BeginTrans() is called otherwise QueryObject is directly removed from repository. QueryObject is identified by it’s name which is passed as parameter. To remove multiple QueryObjects from repository at one time, one will need to first call BeginTrans, then create list of IQueryObject objects using Remove API and then call CommitTrans() to perform final transaction to repository.

Update

This method adds an object of IQueryObject to the internal collection of IQueryObject to update on the repository if BeginTrans() is called otherwise QueryObject is directly updated on repository. To update multiple QueryObjects on repository at one time, one will need to first call BeginTrans, then create list of IQueryObject objects using Remove API and then call CommitTrans() to perform final transaction to repository.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the IQueryObject object from specified index.

Count

This property returns the total number of IQueryObject objects in its collection.

IQueryObject

This class provides different functions, which help in implementing each use case for managing query objects.

Columns

This is a “get” property, which returns the column value.

ConnName

This property returns/sets the connection name.

ConnType

This property returns/sets the type of connection.

Description

This is a “get” property, which returns description.

ID

This is a “get” property, which returns the ID.

IsCached

This property returns/sets the bool value which indicates whether the data is cached or not.

Name

This is a “get” property, which returns the Name.

XML

This is a “get” property, which returns the XML.

Initialize

This method initializes the member variables of the IQueryObject class.

The class also provides the following get and set properties:

IsFilterMandatory

This property specifies whether the filter is mandatory for the query object or not.

SourceType

This property specifies the type of source for the query object (like SQL/XML). This property can have one of the following values from enum enumQueryObjectSourceType

  • EQOST_SQL
  • EQOST_XML

ISQLEditor

This class provides different functions regarding accessing and changing the SQL editor properties. It provides the following properties:

SQLEditorLayout

This is a “get” property which returns the object of ISQLEditorLayout. For details, see ISQLEditorLayout class section.

SQLClause

This is a “get” property which returns the object of ISQLClause. For details, see ISQLClause class section.

ISQLEditorLayout

This class provides different functions regarding the tables and linkers used. It provides the following get and set properties:

VScrollValue

This property returns/sets the vertical scrolling values for the layout.

HScrollValue

This property returns/sets the horizontal scrolling values for the layout.

Tables

This is a “get” property which returns the object of ITables. For details, see ITables class section.

Linkers

This is a “get” property which returns the object of ILinkers. For details, see ILinkers class section.

ITables

This class is basically meant for housekeeping the individual ITable objects. It maintains a collection of the ITable objects. It also provides necessary interfaces to iterate ITable objects.  It provides the following properties:

  • _NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

  • Item

This property returns the IQueryObjectFilter object from specified index.

  • Count

This property returns the total number of IQueryObjectFilter objects in its collection.

ITable

This interface contains properties to obtain information about the table in sql editor layout. It has following get and set properties:

Name

This property returns/sets the name of table.

Left

This property returns/sets the left of table that is, starting x-value of table.

Top

This property returns/sets the top of table that is, starting y-value of table.

Height

This property returns/sets the height of table.

Width

This property returns/sets the width of the table.

Index

This get/set property specifies the index value of table.

ILinkers

This class is basically meant for housekeeping the individual ILinker objects. It maintains a collection of the ILinker objects. It also provides necessary interfaces to iterate ILinker objects. It provides the following properties:

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the ILinker object from specified index.

Count

This property returns the total number of ILinker objects in its collection.

ILinker

This interface contains properties to obtain information about the linker in sql editor layout. It has following get and set properties:

Source

This property returns/sets linker source.

Target

This property returns/sets linker target.

ISQLClause

This class provides different functions regarding accessing the sql query. It provides the following properties:

IstoredProcParameters

This is a “get” property which returns the object of IStroredProcParameters.

IoptionaFilters

This is a “get” property which returns the object of IOptionalFilters. For details, see IOptionalFilters class section.

Select

This property returns/sets the selection part of query like if query string is “SELECT emp.* ..”, then this property returns the string “emp.*”.

From

This property returns/sets the table name specifies in query from where the selection fields are to be retrieved. 

WhereConditions

This property returns object of ISQLCLauseConditions. For details, see ISQLClauseConditions class section.

GroupBy

This property returns/sets the “group by” clause field of the query.

OrderBy

This property returns the “order by” clause field of the query.

HavingConditions

This property returns object of ISQLCLauseConditions. For details, see ISQLClauseConditions class section.

OrderByPrompt

This property returns/sets a comma separated string when multiple fields are to be specified for the order by clause.

IsShowOrderByPrompt

This property returns or sets bool value specifying whether multiple order by clause fields are specified.

OrderByPromptCount

This property returns/sets the number of fields specifies for the order by clause.

SQLType

This property returns the type of sql supplied for the getting the key field, like SQL or STOREDPROC. This property can have one of the following values from enum enumSQLType

  • EST_SQL
  • EST_STOREDPROC
SQL

This property returns the sql query for retrieving the key field.

ISQLClauseConditions

This class is basically meant for housekeeping the individual ISQLClauseCondition objects. It maintains a collection of the ISQLClauseCondition objects. It also provides necessary interfaces to iterate ISQLClauseCondition objects. It provides the following properties:

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the ILinker object from specified index.

Count

This property returns the total number of ILinker objects in its collection.

ISQLClauseCondition

This interface contains properties to obtain information about the conditions applied in the query used either in “where” clause or “having” clause. It has following get and set properties:

Open

This get/set property specifies the starting bracket of the condition.

Close

This get/set property specifies the closing bracket of the condition.

Operand1

This property returns/sets first operand involved in the condition.

Operand2

This property returns/sets second operand involved in the condition.

Operator

This property returns/sets operator acting between the two operands in query.

Relation

This property returns/sets relational operator like AND,NOT or OR in case of multiple conditions.

IStoredProcParameters

This class is basically meant for housekeeping the individual IStoredProcParameter objects. It maintains a collection of the IStoredProcParameter objects.  It also provides necessary interfaces to iterate IStoredProcParameter objects.  It provides the following properties:

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface. 

Item

This property returns the IStoredProcParameter object from specified index.

Count

This property returns the total number of IStoredProcParameter objects in its collection.

IStoredProcParameter

This interface contains properties to obtain information about the stored procedures in sql editor layout. It has following get and set properties:

ParamName

This get/set property specifies the parameter name received from the stored procedure.

ParamValue

This get/set property specifies the parameter value received from the stored procedure.

IXMLDataSource

This class contains the properties to obtain the information about the XML data source. Hence it provides the following get and set properties:

XMLRuntimeSourceType

This property returns the data source type like file or url or database. This property can have one of the following values from enum enumXMLRuntimeSrcType

  • EXRST_FILE
  • EXRST_URL
  • EXRST_DATABASE
File

This property returns/sets the filename for data source.

URL

This property returns/sets the URL path for the XML data source.

ConnectionName

This property returns/sets the name of the connection for the data source.

SQLQuery

This property returns/sets the SQL query for getting the data from it.

XMLColumn

This proprety returns/sets the xml column for selection.

RecordPattern

This property returns/sets the pattern of the tags in xml received.

IFormulas

This class is basically meant for housekeeping the individual IFormula objects. It maintains a collection of the IFormula objects. It also provides necessary interfaces to iterate IFormula objects. It provides the following properties:

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the IFormula object from specified index.

Count

This property returns the total number of IFormula objects in its collection.

Formula

This property returns the object of IFormula from the collection using its name.

IFormula

This interface contains properties to obtain information about the formula fields. It has following get and set properties:

Name

This property returns/sets the name of the formula.

ReturnType

This property returns/sets the return type of the formula.

Expression

This property returns/sets the expression representing the formula.

Report Objects

IReportObjects

This class is basically meant for housekeeping the individual IReportObject

objects. It maintains a collection of the IReportObject objects. It also provides necessary interfaces to iterate IReportObject objects. It provides the following properties:

Add

This API adds IReportObject object to the ReportObject Collection. For details, see IReportObject class section.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the IReportObject object from specified index. For details, see IReportObject class section.

Count

This property returns the total number of IReportObject objects in its collection.

IReportObject

IReportObject class cotains the information of report object stored on repository. It is a super type of Query Object and Parameter Object. This class is used to get detailed information about query object or parameter object. This class prepares the request xml for the same.

ID

This get/set property returns/sets the report objedt ID.

IsCached

This get/set property returns/sets whether the report object is cached or not.

Name

This get/set property returns/sets the report object name.

Type

This get/set property returns/sets the report object type. Report object type can be “Query” or “Parameter”.

Parameter Objects

IParameterObjects

This class is basically meant for housekeeping the individual IParameterObject

objects. It maintains a collection of the IParameterObject objects. It also provides necessary interfaces to iterate IParameterObject objects. It provides the following properties:

Add

This method adds an object of IParameterObject to the internal collection of IParameterObject to add to the repository if BeginTrans() is called otherwise parameter object is directly added to repository To add multiple parameter objects to repository at one time, one will need to first call BeginTrans(), then create list of IParameterObject objects using Add API and then call CommitTrans() to perform final transaction to repository.

BeginTrans

This API indicates that parameter objects have to be kept in a list instead of directly adding it to Repository.

CommitTrans

This API performs final transaction of adding or removing or updating parameter Objects to repository.

ParameterObject

This get property returns the object of IParameterObject of the parameter name passed as input parameter.

ParameterObjectNames

This get property returns the array of parameter names of parameter objects. These names can be used to retrieve the IParameterObject using the ParameterObject property.

Remove

This method adds an object of IParameterObject to the internal collection of IParameterObject to remove from the repository if BeginTrans() is called otherwise parameter object is directly removed from repository. parameter object is identified by it’s name which is passed as parameter. To remove multiple parameter objects from repository at one time, one will need to first call BeginTrans, then create list of IParameterObject objects using Remove API and then call CommitTrans() to perform final transaction to repository.

Update

This method adds an object of IParameterObject to the internal collection of IParameterObject to update on the repository if BeginTrans() is called otherwise parameter object is directly updated on repository. To update multiple parameter objects on repository at one time, one will need to first call BeginTrans, then create list of IParameterObject objects using Update API and then call CommitTrans() to perform final transaction to repository.

_NewEnum

This property identifies an object as supporting iteration through the IEnumVARIANT interface.

Item

This property returns the IParameterObject object from specified index. For details, see IParameterObject class section.

Count

This property returns the total number of IParameterObject objects in its collection.

IParameterObject

This interface contains properties to obtain information about a parameter object.  This class contains all the information related with a parameter object.

Description

This get property returns the description of the parameter object.

ID

This get property returns the ID of the parameter object.

Name

This get property returns the Name of the parameter object.

XML

This get/set property returns/sets the XML for parameter object.

Initialize

This API does the initialization activities necessary for parameter object.

ILicenseManager

This class manages the license related activities. Right now it conatains one property which gives the object of ILicenseDetails.

LicenseDetails

This get property returns the object of ILicenseDetails class. ILicenseDetails class is a member of REREQLIBLib library. For details, see ILicenseDetails class section.

IChartService

This class provides chart related services.

Chart

This get property returns the object of IChart class. For details, see IChart class section.

Themes

This get property returns the array of names of chart themes.

IChart

This interface contains properties to obtain information about a chart.  This class contains all the information related with a chart.

Height

This get property returns the height of the chart.

ImageFormat

This get property returns the image format used for chart.

Name

This get property returns the name of the chart.

Picture

This get property returns the picture associated with the chart.

Width

This get property returns the width of the chart.

Enums Exposed from REComClient

enum ReportDeployment_Type
	{
		STANDARD,
		CUSTOM,
	};

	enum enumDesignMode
	{
		EDM_STUDIO = 0,
		EDM_ADHOC,
	};

	enum AccessLevels
	{
		DENYACCESS,
		FULLACCESS,
		PARTIALACCESS,
	};

	enum OrgCredentialType
	{
		CT_TEXT,
		CT_COMBO,
		CT_OPTION,	
	};

	enum enumAccessRightsType
	{
		EART_USER = 0,
		EART_ROLE
	};
	
	enum enumAccessEntityType		
	{
		EET_CATEGORY = 0,
		EET_REPORT,
		EET_SYSTEM
	};


	enum enumSystemPriviledges
	{
		ESP_CATEGORY_SETUP	,
		ESP_SCHEDULING		,
		ESP_REPORT_DESIGNER	,
	};

	enum AccessRightsForCategory
	{
VIEW_REPORTS,
VIEW_REPORTS_SECURED,
SAVE_REPORTS,
SAVE_REPORTS_SECURED,
EXPORT_REPORTS  ,
EXPORT_REPORTS_SECURED,
PRINT_REPORTS,
PRINT_REPORTS_SECURED,
PRINT_REPORTS_AT_SERVER  ,
PRINT_REPORTS_AT_SERVER_SECURED,
SCHEDULED_REPORTS,
PUBLISH_LAYOUTS,
PUBLISH_OUTPUTS,
	};

	enum AccessRightsForReports
	{
		VIEW_REPORT,
		VIEW_REPORT_SECURED,
		SAVE_REPORT,
		SAVE_REPORT_SECURED,
		EXPORT_REPORT  ,
		EXPORT_REPORT_SECURED,
		PRINT_REPORT,
		PRINT_REPORT_SECURED,
		PRINT_REPORT_AT_SERVER,
		PRINT_REPORT_AT_SERVER_SECURED,
		PUBLISH_OUTPUT,
	};

	enum enumPortalConf
	{
		//[GLOBALS]
		EPC_GLOBALS_SHOW_CONNECTION,
		EPC_GLOBALS_HELP_STYLE,
		EPC_GLOBALS_ALLOW_REFRESH_DATA,

		//[RUNREPORTS]
		EPC_RUN_RPTS_SHOW,
		EPC_RUN_RPTS_STANDARD,
		EPC_RUN_RPTS_ADHOC,
		EPC_RUN_RPTS_CALENDAR_STYLE,
		
		//[REPORTMANAGEMENT]
		EPC_RPT_MGMT_SHOW,
		EPC_RPT_MGMT_DEPLOY,
		EPC_RPT_MGMT_DEPLOYBUNDLER,
		EPC_RPT_MGMT_REPORTOBJECTS,
		EPC_RPT_MGMT_PRINTSETTING,
		
		//[DESIGNING]
		EPC_DESIGN_SHOW,
		EPC_DESIGN_WEBSTUDIO,
		EPC_DESIGN_ADHOCDESIGNER,

		//[SCHEDULING]
		EPC_SCHEDULING_SHOW,

		//[ADMINISTRATION]
		EPC_ADMIN_SHOW,
		EPC_ADMIN_RS_STATUS_REFRESH_INTERVAL,

		//[PERSONALIZATION]
		EPC_PERSONAL_SHOW,
	};

	enum enumAdhocConf
	{
		//[Globals]
		EAC_GLOBALS_ALLOWSETTEMPLATE,
		EAC_GLOBALS_DEFAULTTEMPLATE,
		EAC_GLOBALS_ALLOWSETFORMAT,
		EAC_GLOBALS_ALLOWEDFORMATS,
		EAC_GLOBALS_DEFAULTFORMAT,
		EAC_GLOBALS_SHOWHELP,
		EAC_GLOBALS_DEFAULT_EXPAND_TABS,
		EAC_GLOBALS_FIELDLIST_RESIZABLE,
		EAC_GLOBALS_FIELDLISTWIDTH,
		EAC_GLOBALS_CALENDAR_STYLE,
		EAC_GLOBALS_ALLOW_HIDE_DETAILS,
		
		//[Data source]
		EAC_DATA_SRC_TYPE,
		EAC_DATA_SRC_ONEDITSHOW,
		EAC_DATA_SRC_ONEDITCHANGE,
		EAC_DATA_SRC_SELECT_TYPE,
		EAC_DATA_SRC_ALLOW_SEQ_SELECTION,
		EAC_DATA_SRC_SET_CUSTOM_WIDTH,
		EAC_DATA_SRC_ALLOW_CUSTOM_ALIGN,
		EAC_DATA_SRC_QO_FETCH_TYPE,

		//[Filters]
		EAC_FILTERS_SHOW,
		EAC_FILTERS_COUNT,
		EAC_FILTERS_SHOWMAXROWS,
		EAC_FILTERS_SHOWPROMPT,
		EAC_FILTERS_SHOWPARAMETER,

		//[FilterOperators]
		EAC_FILTEROPERATORS_CHAR,
		EAC_FILTEROPERATORS_NUMBER,
		EAC_FILTEROPERATORS_DATE,

		//[Groups]
		EAC_GROUPS_SHOW,
		EAC_GROUPS_COUNT,
		EAC_GROUPS_SHOWGROUPBY,

		//[Totals]
		EAC_TOTALS_SHOW,
		EAC_TOTALS_COUNT,

		//[Sort]
		EAC_SORT_SHOW,
		EAC_SORT_COUNT,

		//[Matrix]
		EAC_MATRIX_SHOW,
		//[Chart]
		EAC_CHART_SHOW,
		EAC_CHART_ALLOWSETPOSITION,
		EAC_CHART_DEFAULTPOSITION,
		EAC_CHART_ALLOWSETLEVEL,
		EAC_CHART_DEFAULTLEVEL,
		EAC_CHART_CHARTTYPES,
		EAC_CHART_DEFAULTCHARTTYPE,
		EAC_CHART_ALLOWSETSERIESCHARTTYPES,
		//[Viewer]
		EAC_VIEWER_REMOVE_PREV_FILTERS_FOR_FIELD,
	};

	enum enumReportServerProp
	{
		ERSP_LISTENER_PORT,
		ERSP_DATABASE_CONNECTION_TIMEOUT,
		ERSP_INPUT_MODE,
		ERSP_SECURITY_FEATURES,
		ERSP_AUDIT_LOG,
		ERSP_INPUT_DIRECTORY,
		ERSP_QUEUE_SIZE,
		ERSP_PAGE_CHUNKSIZE,
		ERSP_LOG_LEVEL,
		ERSP_OUTPUT_DIRECTORY,
		ERSP_XML_DATA_SOURCE_DIRECTORY,
		ERSP_TEMP,
		ERSP_LOG,
		ERSP_USER_THREADS,
		ERSP_FONT_DIRECTORY,
		ERSP_CACHE_CAPACITY,
		ERSP_LEFT_MARGIN_OFFSET,
		ERSP_TOP_MARGIN_OFFSET,
		ERSP_SCALE_OFFSET,
		ERSP_CLIENT_SESSION_TIMEOUT,
		ERSP_REMOTE_SESSION_TIMEOUT,
		ERSP_RTF_FIELD_CONTROL_MAP,
		ERSP_DATA_SOURCE_FETCH_SIZE,
		ERSP_PERSONAL_DIRECTORY,
		ERSP_CSA_TIMEOUT,
		ERSP_CACHE_PATH,
		ERSP_AUDITLOG_PURGE_TIME,
		ERSP_CACHE_PURGE_TIME,
		ERSP_CACHE_PURGE_FREQUENCY,
		ERSP_STANDARD_COLORS,
		ERSP_AUTHORIZATION_CACHE_TIMEOUT,
		ERSP_REPOSITORY_CACHE_TIMEOUT,
		ERSP_SORT_AREA_SIZE,
		ERSP_FILE_DATA_SOURCE_PATH,
		ERSP_EMAIL_FROM_ADDRESS,
		ERSP_HOST_URL,
		ERSP_JOB_SUCCESS_MAIL_TO,
		ERSP_JOB_SUCCESS_MAIL_SUBJECT,
		ERSP_JOB_ERROR_MAIL_TO,
		ERSP_JOB_ERROR_MAIL_SUBJECT,
		ERSP_SCHD_JOB_DISPATCH_QUEUE_SIZE,
		ERSP_SCHD_JOB_DISPATCH_THREADS,
		ERSP_SMTP_SERVER,
		ERSP_SMTP_SERVER_USER,
		ERSP_SMTP_SERVER_PASSWORD,
		ERSP_HYPERLINK_RELATIVE_PATH,
		ERSP_DATA_CACHING,		 		
	};

	enum enumHTMLToolBarConf
	{
		//[GLOBALS]
		EHTMC_GLOBALS_SEQUENCE ,
		EHTMC_GLOBALS_BACK_COLOR,
		//[NAVIGATION]
		EHTMC_NAVIGATION_SHOW,
		EHTMC_NAVIGATION_SEQUENCE,
		//[PUBLISH]
		EHTMC_PUBLISH_SHOW,
		EHTMC_PUBLISH_SEQUENCE,

		//[PRINT]
		EHTMC_PRINT_SHOW,
		EHTMC_PRINT_SEQUENCE,
		EHTMC_PRINT_LEFT_MARGIN,
		EHTMC_PRINT_RIGHT_MARGIN,
		EHTMC_PRINT_TOP_MARGIN,
		EHTMC_PRINT_BOTTOM_MARGIN,
		//[EMAIL]
		EHTMC_EMAIL_SHOW,
		EHTMC_EMAIL_SEQUENCE,
	
		//[REFRESHDATA]
		EHTMC_REFRESHDATA_SHOW,
		EHTMC_REFRESHDATA_SEQUENCE,

		//[EXPORT]
		EHTMC_EXPORT_SHOW,
		EHTMC_EXPORT_SEQUENCE,
		EHTMC_EXPORT_DIALOG_LIST,

		//[COMMENTS]
		EHTMC_COMMENTS_SHOW_IN_NEW,
		EHTMC_COMMENTS_SHOW_IN_PUBLISHED,
		EHTMC_COMMENTS_SEQUENCE,

		//[ADHOCPOWERVIEWER]
		EHTMC_ADHOCPOWERVIEWER_ENABLED,
		EHTMC_ADHOCPOWERVIEWER_SHOWHELP,

		//[REPORT]
		EHTMC_REPORT_SHOW,
		EHTMC_REPORT_SEQUENCE,

		//[UTILITY]
		EHTMC_UTILITY_SHOW,
		EHTMC_UTILITY_SEQUENCE,
	};


	enum enumUserPreferences	
	{
		EUP_LANGUAGE,
		EUP_THEME,
		EUP_DELIVERY_LOC,
		EUP_EMAIL,
		EUP_FORMAT,
		EUP_DASHBOARD,
		EUP_SHOW_INBOX,
		EUP_SHOW_REPORTS,
		EUP_SHOW_REP_PUB,
		EUP_REP_COUNT,
		EUP_RUNTIME_USER_ID,
		EUP_RUNTIME_PASSWORD,
		EUP_DEFAULT_CONNECTION,
		EUP_IS_RUNTIME_CREDENTIALS,
	};

	enum enumReportClientConf
	{
		ERCC_INTERA_HOME,
		ERCC_RPT_ENGINE_IP,
		ERCC_RPT_ENGINE_PORT,
		ERCC_OUTPUT_MODE,
		ERCC_RPT_PATH,
		ERCC_TEMP_PATH,
		ERCC_RELATIVE_PATH,
		ERCC_LOGGING_ENABLED,
		ERCC_LOG_LEVEL,
		ERCC_LANGUAGE,
		ERCC_USER_NAME,
		ERCC_USER_PASSWORD,
		ERCC_USER_ORG,
		ERCC_SERVER_TIME_OUT,
		ERCC_SERVER_TIME_OUT_CHUNK,
		ERCC_RPT_CLEAN_UP_INTERVAL,
		ERCC_RPT_CLEAN_UP_TIME,
		ERCC_REGISTRY_ENABLED,
		ERCC_LOADBALANCER_REGISTRIES,
		ERCC_HTML_VIEWER_TIMEOUT,
	};

	enum enumDriverTypes
	{	
		EODT_NONE = -1,
		EODT_ORACLE_OCI ,
		EODT_ORACLE_OCI_TNS,
		EODT_ORACLE_THIN,
	};

	enum enumSavedReportInstanceVal
	{
		ESRI_NONE = 0,
		ESRI_LASTSAVED = 1,
	};

	enum enumExternalAppAttrib
	{
		EAA_SERVER_IP,
		EAA_SERVER_PORT,
		EAA_USERDN,
	};

	enum enumCallBackAttrib
	{
		CBA_SERVER_IP,
		CBA_SERVER_PORT,
	};
	


	enum enumImplementerAttrib
	{
		IA_PATH,
	};

	enum enumSystemFilterAttrib
	{
		SFA_FILTER_COLUMN_NAME,
		SFA_IGNORE_IF_NOT_PRESENT,
	};

	enum enumAuthenticationMode
	{
		AUTH_INTELLICUS,
		AUTH_EXTERNAL,
		AUTH_HOST,
		AUTH_CALLBACK,
	};

	enum enumAuthExtAppType
	{
		AUTH_EXT_APP_WINNT,
		AUTH_EXT_APP_UNIX,
		AUTH_EXT_APP_LDAP,
		AUTH_EXT_APP_NDIS,
	};

	enum enumCallbackType
	{
		CALLBACK_LOCA,
		CALLBACK_SOCKET,
		CALLBACK_RMI,
	};

	enum enumImplementerType
	{
		IMPL_JAVA_CLASS,
		IMPL_NATIVE_LIB,
		IMPL_COM_DLL,
	};

	enum enumAuthorizationMode
	{
		AUTHORIZATION_INTELLICUS,
	};

	enum enumGlobalFilterMode
	{
		GFT_INTELLICUS,
		GFT_CALLBACK,
	};

	enum enumSelectOptionsType
	{
		SOT_USERATTR = 1,
	};


	enum ReportObjectOpType
	{
		ADDOBJ,	
		DELETEOBJ,
		REPLACEOBJ,
		ONSERVEROBJ,
		NOOP,
	};

	enum LOGGING_LEVELS
   	 {	
		LOGGING_LEVEL_NOLOGGING,
		LOGGING_LEVEL_FATAL,
		LOGGING_LEVEL_ERROR,
		LOGGING_LEVEL_WARNING,
		LOGGING_LEVEL_INFO,
		LOGGING_LEVEL_DEBUG
    	};
	

	enum enumWeekDays
	{
		EWD_SUNDAY,
		EWD_MONDAY,
		EWD_TUESDAY,
		EWD_WEDNESDAY,
		EWD_THRUSDAY,
		EWD_FRIDAY,
		EWD_SATURDAY,
	};

	enum enumMonths
	{
EM_JAN,
EM_FEB,
EM_MAR,
EM_APR,
EM_MAY,
EM_JUN,
EM_JUL,
EM_AUG,
EM_SEP,
EM_OCT,
EM_NOV,
EM_DEC,
	};
	
	enum enumScheduledTaskParametersType
	{
		ESTP_STATIC,
		ESTP_SQL,
		ESTP_XML
	};

	enum enumFetchType
	{
		EFT_STATIC,
		EFT_DYNAMIC
	};

	enum enumFetchDataSourceType
	{
		EFDS_AUTOGEN,
		EFDS_PREDEF,
		EFDS_SQL
	};

	enum enumSQLType
	{
		EST_SQL,
		EST_STOREDPROC
	};

	enum enumFetchDataSourceSQLType
	{
		EFDSST_AUTOGEN,
		EFDSST_LOOKUP
	};
	
	enum enumFetchDataSourceXMLType
	{
		EFDSXT_AUTOGEN,
		EFDSXT_LOOKUP
	};
	
	enum enumXMLRuntimeSrcType
	{
		EXRST_FILE,
		EXRST_URL,
		EXRST_DATABASE
	};

	enum enumQueryObjectSourceType
	{
		EQOST_SQL,
		EQOST_XML 
	};

	enum enumTemplateOutputFormatType
	{
		ETOFT_HTM,
		ETOFT_PDF,
		ETOFT_XLS,
		ETOFT_DHTM,
		ETOFT_RDF,
		ETOFT_TXT,
		ETOFT_CSV,
		ETOFT_DOC
	};

	enum enumIRLType
	{
		EIT_STATIC,
		EIT_DYNAMIC,
	
	};

	enum enumDataSourceType
	{
		EDST_NONE,
		EDST_QO,
		EDST_TABLE,
		EDST_METALAYER
	};
	
	enum enumFunction
	{
		EF_SUM,
		EF_AVG,
		EF_COUNT,
		EF_MAX,
		EF_MIN,
		EF_STDDEV
	};

	enum enumLevel
	{
		EL_GROUP,
		EL_PAGE,
		EL_REPORT
	};

	enum enumChartType
	{
		ECT_LINE,
		ECT_BAR,
		ECT_PIE,
		ECT_SCATTER,
		ECT_RADAR,
		ECT_COLUMN
	};

	enum enumChartPosition
	{
		ECP_TOP,
		ECP_BOTTOM
	};

	enum enumChartLevel
	{
		ECL_REPORT,
		ECL_PAGE
	};

	enum enumColumnFieldType
	{
		ECFT_SQL,
		ECFT_FORMULA
	};

	enum enumSystemFileType
	{
		ESFT_ADHOC_TEMPLATE_IRL,
		ESFT_ADHOC_TEMPLATE_STYLE,
		ESFT_XML_DATASOURCE,
		ESFT_CHART_TEMPLATE
	};

	enum enumColumnAlignmentType
	{
		EAFAT_LEFT,
		EAFAT_RIGHT,
		EAFAT_CENTER
	};

	enum enumXMLMetaDataSourceType
	{
		EXMST_FILE = 0,
		EXMST_URL,
		EXMST_DATABASE
	};

	enum enumXMLDataSourceElementType
	{
		EXDET_NONE = -1,
		EXDET_XML_TAG = 0,
		EXDET_XML_ATTRIBUTE,

	};