Upload
arnabmandal
View
219
Download
0
Embed Size (px)
Citation preview
8/12/2019 Mdm Ntier API
1/62
O R A C L E H Y P E R I O N D A T A R E L A T I O N S H I P
M A N A G E M E N T , F U S I O N E D I T I O NR E L E A S E 1 1 . 1 . 1 . 2
N - T I E R A P P L I C A T I O N P R O G R A M M I N GI N T E R F A C E G U I D E
8/12/2019 Mdm Ntier API
2/62
Data Relationship Management N-tier Application Programming Interface Guide, 11.1.1.2
Copyright 1999, 2009, Oracle and/or its affiliates. All rights reserved.
Authors: EPM Information Development Team
This software and related documentation are provided under a license agreement containing restrictions on use and
disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or
allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit,
perform, publish or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation
of this software, unless required by law for interoperability, is prohibited.
The information contained herein is subject to change without notice and is not warranted to be error-free. If you find
any errors, please report them to us in writing.
If this software or related documentation is delivered to the U.S. Government or anyone licensing it on behalf of the U.S.
Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS: Programs, software, databases, and related
documentation and technical data delivered to U.S. Government customers are "commercial computer software" or
"commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental
regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and
license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Governmentcontract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007).
Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
This software is developed for general use in a variety of information management applications. It is not developed or
intended for use in any inherently dangerous applications, including applications which may create a risk of personal
injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe,
backup, redundancy and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaim
any liability for any damages caused by use of this software in dangerous applications.
This software and documentation may provide access to or information on content, products and services from third
parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with
respect to third party content, products and services. Oracle Corporation and its affiliates will not be responsible for any
loss, costs, or damages incurred due to your access to or use of third party content, products or services.
8/12/2019 Mdm Ntier API
3/62
Contents
Documentation Accessibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Chapter 1. Data Relationship Management Application Programming Interface . . . . . . . . . . . . . . . . . . . . . . . . 7
Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Using the Data Relationship Management SOAP API . . . . . . . . . . . . . . . . . . . . . . . . . 8
Changes from Previous Release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
API Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15Prerequisites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Obtain the Data Relationship Management Java SDK . . . . . . . . . . . . . . . . . . . . . . . . 15
Obtain a Java Development Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Configuring a Sample Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Special Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Data Relationship Management Batch Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Encryption, Compression and MIME Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Session Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Accessing and Managing Dimensional Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Data Relationship Management Toolsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Data Relationship Management Transaction Log . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Accessing and Administering Data Relationship Management Metadata . . . . . . . . . . . 20
Data Relationship Management System Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . 21
Interface Relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Interface Return Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Locator Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Asynchronous Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IAutomator Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
IBlenderMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
ICategoryMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
ICompareMgr Interface Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
IExportMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Contents iii
8/12/2019 Mdm Ntier API
4/62
IGlobalNode Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
IGlyphMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
IHier Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
IImportMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
IJobMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
ILocalNode Interface Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
ILogMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
INodeAccessGroupMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
INodeTypeMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
IProcessInfo Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
IPropMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
IQueryMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
IRequestMgr Interface Methods. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
ISessionMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
ISysPref Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
IUserMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
IValidationMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
IVersion Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
IVersionInfo Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
IVersionMgr Interface Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
iv Contents
8/12/2019 Mdm Ntier API
5/62
Documentation Accessibility
Our goal is to make Oracle products, services, and supporting documentation accessible, with
good usability, to the disabled community. To that end, our documentation includes features
that make information available to users of assistive technology. This documentation is available
in HTML format, and contains markup to facilitate access by the disabled community.
Accessibility standards will continue to evolve over time, and Oracle is actively engaged with
other market-leading technology vendors to address technical obstacles so that our
documentation can be accessible to all of our customers. For more information, visit the Oracle
Accessibility Program Web site at http://www.oracle.com/accessibility/.
Accessibility of Code Examples in DocumentationScreen readers may not always correctly read the code examples in this document. The
conventions for writing code require that closing braces should appear on an otherwise empty
line; however, some screen readers may not always read a line of text that consists solely of a
bracket or brace.
TTY Access to Oracle Support ServicesOracle provides dedicated Text Telephone (TTY) access to Oracle Support Services within the
United States of America 24 hours a day, seven days a week. For TTY support, call 800.446.2398.
5
http://www.oracle.com/accessibility/http://www.oracle.com/accessibility/8/12/2019 Mdm Ntier API
6/62
6 Documentation Accessibility
8/12/2019 Mdm Ntier API
7/62
Data Relationship ManagementApplication ProgrammingInterface
In This Chapter
Overview .... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Prerequisites... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
Special Notes ... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
Interfaces... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
Interface Relationships............................................................................................................21
Interface Return Types.............................................................................................................22
Locator Objects.....................................................................................................................23
Asynchronous Methods............................................................................................................23
Interface Methods..................................................................................................................23
OverviewOracle Hyperion Data Relationship Management, Fusion Edition N-tier is based on an
application server (n-tier) architecture rather than the model used in the Data Relationship
Management client-server product. This allows the bulk of the system processing to be
performed on a centralized server and simplifies the client requirements for each end user. Whilethis is a significant change to the back-end of the system, the majority of the functionality visible
in the user interface is the same between the two architectures.
The diagram below gives a top-level overview of the Data Relationship Management N-tier
architecture. The Data Relationship Management client is a Windows application that runs on
the users local machine. The client connects to the Data Relationship Management application
server which can support multiple, simultaneous users. The Data Relationship Management
database can be hosted on the application server machine or elsewhere.
Overview 7
8/12/2019 Mdm Ntier API
8/62
Figure 1 Data Relationship Management N-tier Architecture
One key feature of the N-tier architecture is the exposure of the Data Relationship Management
API which allows full access to the functionality of the Data Relationship Management engine.
There are two interfaces available for use:
The SOAP interface used by the Data Relationship Management client
The COM interface which bypasses the Web server
Using the Data Relationship Management SOAP API
This section includes information about the following data types:
Remotable Types on page 8
Engine Interfaces on page 9
Data Types
The two major Data Relationship Management engine components, from a UI standpoint, are
the Remotable Types which are local record-type objects for storing properties, and the various
engine interface elements, which are used to communicate with the server for retrieving and
updating data.
Remotable Types
The local objects descend from TRemotable and are named with the convention TRemAbcXyz
where AbcXyz represents the class of object:
TRemVersion
TRemHier
TRemLocalNode
TRemExtLocalNode
These objects contain only properties and are used to represent an entity in the UI. They contain
no methods and behave essentially like record-type objects. All the Remotable Types are declared
8 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
9/62
in the unit URemotableTypes.pas. The client application is responsible for freeing all Remotable
objects used during the lifetime of the application.
Engine Interfaces
These interface objects contain the engine methods for each type of entity. They are named with
the convention IAbcXyz where AbcXyz represents the class of object, similar to the Remotable
Types:
IVersion
IHier
IPropMgr
ILocalNode
In general, each interface is stored in its own unit, which must be imported using Web Services
Description Language (WSDL). The units are named UAbcXyz.pas with AbcXyz representing
the same root class name as in the other examples. Interfaces are declared and instantiated as
usual but rather than explicitly freeing them, they are set to nil when no longer needed.
Making Engine Calls
There are four basic types of engine calls:
Function calls that return data (either single element or an array)
Procedure calls that fill a var argument with data
Function calls that return engine state information
Procedure/function calls that modify engine data and return results
Every Data Relationship Management engine interface method begins with a unique SessionIDargument to identify the client. Also each engine call must explicitly specify the entity being
referenced. For example all calls to IVersion pass either a Version Abbrev argument or an array
of Abbrevs. This is because IVersion represents a single interface and thus each call must identify
the particular Version instance on the engine side being acted upon.
Many methods use what is called a Locator argument which is simply a record structure for
passing multi-column key information. For example most calls to IHier use a TRemHierLocator
argument in order to identify the Hier, using a Version and Hier Abbrev. TRemHierLocator has
three properties: Session (integer), Version (string) and Hier (string). To make a call to IHier
that requires a TRemHierLocator, instantiate a Locator object, set its properties and then pass
the Locator as the required argument. Be sure to free the Locator when its no longer needed.
(The Data Relationship Management N-tier thin client declares only one global instance of each
type of locator and re-uses them as needed for each engine call.)
Its a good idea to have only one instance of each interface per application. The examples below
assume that a global copy of each interface exists and is named with a g prefix (such as gVersion,
gPropMgr, etc.). Also the gSessionID variable in the examples refers to a global SessionID that
is initialized elsewhere by the application, most likely during startup.
Overview 9
8/12/2019 Mdm Ntier API
10/62
Returning Data with a Function Call
An example of an engine method that returns a Remotable object:
function VersionByAbbrev(AVersionAbbrev: string): TRemVersion;
begin
Result := gVersion.VersionByAbbrev(gSessionID, AVersionAbbrev);
end;
Note that the Remotable Version object is not freed within the procedure. The calling method
is responsible for maintaining the object. For a situation where you are only interested in some
information about the object and do not need to keep the object in memory:
function VersionExists(AVersionAbbrev: string): Boolean;
var
oVersion: TRemVersion;
begin
Result := False;
oVersion := gVersion.VersionByAbbrev(gSessionID, AVersionAbbrev);
try
Result := Assigned(oVersion);
finally oVersion.Free;
end;
end;
Methods That Fill Data Passed in as a Parameter
An example of an engine method that accepts a var parameter that is modified by the engine:
procedure FillVersionList(AVersionList: TStringList);
var
lVersions: TVersionArray;
iVersion: integer;begin
AVersionList.Clear;
gVersionMgr.ListVersionObjects(gSessionID, lVersions);
for iVersion := Low(lVersions) to High(lVersions) do
AVersionList.AddObject(lVersions[iVersion].Abbrev,
lVersions[iVersion]);
end;
The TVersionArray declaration is also found in URemotableTypes.pas. Most Remotable Types
have an array type declaration so that the engine can return them in a list rather than having to
make individual calls in a loop.
As a further example, consider a situation where you want to list the Hier objects for a particularVersion:
procedure FillHierList(AVersion: TRemVersion; AHierList: TStringList);
var
lHiers: THierArray;
iHier: integer;
begin
AHierList.Clear;
gVersion.ListHierObjects(gSessionID, AVersion.Abbrev, lHiers);
10 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
11/62
for iHier:= Low(lHiers) to High(lHiers) do
AHierList.AddObject(lHiers[iHier].Abbrev, lHiers[iHier]);
end;
The only caveat to keep in mind when passing around Remotable objects in this fashion is that
the instantiating entity must always be responsible for freeing the Remotables. In this regard,
old-style code cannot be directly translated to the n-tier paradigm since objects that are persistent
at the engine level are by nature transient from the perspective of the client application (whereasthose objects are persistent at all levels in a client/server model.)
Methods That Return Engine State Information
An example of an engine method that returns information about state:
function NodePropIsValid(APropAbbrev: string): Boolean;
begin
Result := gPropMgr.NodePropIsValid(gSessionID, APropAbbrev);
end;
This is a very simple type of call to make and generally does not require any garbage collection
or other cleanup afterward.
Methods That Modify Engine Data
There are two basic kinds of methods here, those that return data and those that do not. For
example, this method adds a Version to the Version Manager and returns a Remotable object
representing the new Version:
function AddVersion(AVersionAbbrev: string): TRemVersion
Begin
Result := gVersionMgr.AddVersion(gSessionID, AVersionAbbrev);
end;
This convention used above is relatively uncommon. More generally, the update methods do
not return a value, and you must subsequently retrieve the data you want:
function AddHier(AVersionAbbrev, AHierAbbrev: string): TRemHier
var
oHierLocator: TRemHierLocator;
begin
Result := nil;
gVersion.AddVersion(gSessionID, AVersionAbbrev, AHierAbbrev);
oHierLocator := TRemHierLocator.Create; try
oHierLocator.Session := gSessionID;
oHierLocator.Version := AVersionAbbrev;
oHierLocator.Hier := AHierAbbrev;
Result := gHier.GetHier(oHierLocator);
finally
oHierLocator.Free;
end;
end;
Overview 11
8/12/2019 Mdm Ntier API
12/62
In this example, the IVersion interface object makes the engine call to add the new Hier but we
must then locate the added Hier ourselves. Note that this example also shows how to use a
Locator object. In this case a local Locator is declared and freed, but generally the Locator can
be declared globally and re-used as needed.
Changes from Previous ReleaseThe Data Relationship Management WSDL binding style is now defined as Document and its
use is Literal for Data Relationship Management release 11.1.1. This is commonly referred to
as document/literal. Previous versions of the Data Relationship Management Web service were
defined with a binding style of RPC and a use of encoded.
Note:
Previous Data Relationship Management software development kits are not compatible with
release 11.1.1.
For the generated proxies within the SDK, the Java package names are changed. Old and new
package names for the Java Data Relationship Management SDK are listed in the following table.
Table 1 Java Data Relationship Management SDK Package Names
Old Package Name (Release 9.3.2) New Package Name (Release 11.1.1)
com/hyperion/mdm com/oracle/drm
mdm/hyperion/com/encodedTypes/holders com/oracle/drm/holders
URemotableTypes/holders com/oracle/drm/holders
Interface Method Changes
A new method, fillSharedNodes, is added to the IGlobalNode interface. For more information,
see IGlobalNode Interface Methods on page 29.
The following changes have been made to interface methods.
Table 2 IHier Interface Method Changes
Method Old Parameters (Release 9.3.2) New Parameters (Release 11.1.1)
verify TRemHierLocator:AHierLoc
int: AMaxNodes
String[ ]: AReturnProps
TRemLocalQueryResultHolder:
ALocalQryResult
Returns: String[ ]
TRemHierLocator:AHierLoc
int: AMaxNodes
String[ ]: AReturnProps
ArrayOfStringHolder: verifyResult*
TRemLocalQueryResultHolder:ALocalQryResult
12 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
13/62
Method Old Parameters (Release 9.3.2) New Parameters (Release 11.1.1)
verifySelected TRemHierLocator:AHierLoc
int:AMaxNodes
String[ ]:validationAbbrevs
String[ ]:AReturnProps
TRemLocalQueryResultHolder:ALocalQryResult
Returns: String[ ]
TRemHierLocator:AHierLoc
int: AMaxNodes
String[ ]: validationAbbrevs
String[ ]: AReturnProps
ArrayOfStringHolder: verifySelectedResult
TRemLocalQueryResultHolder*
verifyNode int: nodeID
Boolean: recurse
TRemBaseParams: params
Returns: TRemDualListLocator
int: nodeID
Boolean: recurse
TRemBaseParams: params
TRemDualListLocator*
verifyNodeSelected int: NodeID
Boolean:Recurse
String[]: ValidationAbbrevsTRemBaseParams:params
Returns: TRemDualListLocator
int: NodeID
Boolean:Recurse
String[]: ValidationAbbrevsTRemBaseParams:params
TRemDualListLocator*
* Method fills data passed in as a parameter.
Table 3 IVersion Interface Method Changes
Method Old Parameters (Release 9.3.2) New Parameters (Release 11.1.1)
verify String: Asession
String: Aversion
String[ ]: AReturnProps
TRemGlobalQueryResultHolder:AGlobalQryResult
Returns: String[ ]
String: Asession
String: Aversion
String[ ]: AReturnProps
ArrayOfStringHolder:verifyResult
TRemGlobalQueryResultHolder:AGlobalQryResult*
verifySelected String: Asession
String: Aversion
String[ ]: validationAbbrevs
String[ ]: AReturnProps
TRemVersionHolder: VersionHolder
Returns: String[ ]
String: Asession
String: Aversion
String[ ]: validationAbbrevs
String[ ]: AReturnProps
ArrayOfStringHolder:verfiySelectedResult*
TRemGlobalQueryResultHolder: AGlobalQryResult
* Method fills data passed in as a parameter.
Table 4 IVersionMgr Interface Method Changes
Method Old Parameters (Release 9.3.2) New Parameters (Release 11.1.1)
createAsOfDate String: Asession String: Asession
Overview 13
8/12/2019 Mdm Ntier API
14/62
Method Old Parameters (Release 9.3.2) New Parameters (Release 11.1.1)
String: Aversion
dateTime: Adate
TRemGlobalQueryResultHolder:AGlobalQryResult
Returns: String[ ]
String: Aversion
dateTime: Adate
ArrayOfStringHolder:
createAsOfDateResult*
TRemVersionHolder: VersionHolder
createAsOfTxnID String: A session
String: Aversion
int: AEndTxnID
TRemVersionHolder:return
Returns: String[ ]
String: Asession
String: Aversion
int: AEndTxnID
ArrayOfStringHolder:
createAsOfTxnIDResult*
TRemVersionHolder: return
getCreateAsOfResults TRemASyncJobID: AJobID
TRemVersionHolder: _return
Returns: String[ ]
TRemASyncJobID: AJobID
ArrayOfStringHolder:
getCreateAsOfResultsResult*
TRemVersionHolder: _return
* Method fills data passed in as a parameter.
API Specification
The latest API information can be obtained from the following URL:
http://WebServerName/mdm_ntier/WebService.asmx
whereWebServerNameis the name of the computer whereData Relationship Management Webserver is running and WebServiceis one of these supported Data Relationship Management
Web services:
Automator.asmx
BlenderMgr.asmx
CategoryMgr.asmx
CompareMgr.asmx
ExportMgr.asmx
GlobalNode.asmx
GlyphMgr.asmx
Hier.asmx
ImportMgr.asmx
JobMgr.asmx
LocalNode.asmx
LogMgr.asmx
14 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
15/62
NodeAccessGroupMgr.asmx
NodeTypeMgr.asmx
ProcessInfo.asmx
PropMgr.asmx
QueryMgr.asmx
RequestMgr.asmx
SessionMgr.asmx
SysPref.asmx
UserMgr.asmx
ValidationMgr.asmx
Version.asmx
VersionInfo.asmx
VersionMgr.asmx
Purpose
This document is intended to illustrate how to write software which will consume Data
Relationship Management services. It is particularly useful to developers and software architects.
By writing systems that act as a client to Data Relationship Management, it is possible to
customize the application to the specific needs of a particular set of requirements. This
extensibility increases the potential for Data Relationship Management over a wide spectrum.
One can integrate Data Relationship Management into in-house systems as a first-class citizen
or build completely new clients using the Data Relationship Management server.
PrerequisitesA Data Relationship Management Java-based SDK exists for accessing the Data Relationship
Management Web service. It is based on Java 5 and Apache Axis 1.4. Other Web service-based
languages, such as .NET, can also be used. Oracle does not provide a client-side .NET SDK for
Data Relationship Management but an SDK can be created using that framework. If using .NET,
you can use WebReferences in Visual Studio or use thewsdl.exeexecutable in the .NET
framework to produce client-side proxies.
Obtain the Data Relationship Management Java SDK
Download the Data Relationship Management Java SDK from http://www.oracle.com/
technology/software/products/bi/performance-management/
hyperion_data_relationship.htmland unzip the contents of the zip file to a desired
location on a drive. The Data Relationship Management Java SDK that is provided contains
binaries. All of the binaries located in the dist\libdirectory are required to access the Data
Prerequisites 15
8/12/2019 Mdm Ntier API
16/62
Relationship Management API. The hdrm-proxy-api.jarfile contains Data Relationship
Management interfaces which are described in this document. The binaries located in the
hdrm-proxy-api.jarfile are the core interfaces to access the Data Relationship Management
Web service. It is recommended that you use the IMasterDataManagement interface class
contained in thehdrm-proxy-api.jarfile to obtain Data Relationship Management interfaces
within custom client-side code.
Obtain a Java Development Kit
A suitable 5.0based version of the Java Development Kit can be downloaded from the
java.sun.com Web site.
The installer must choose the version most appropriate for the intended platform. Upon
completion of the download, installation is performed through the normal platform-specific
mechanism.
Configuring a Sample ProjectA suitable JAVA IDE is typically used to set up a project using the Data Relationship Management
SDK. Typically, the jar files located in the dist\libdirectory of the Data Relationship
Management SDK are included in a projects library section of an IDE project. Once the jars are
loaded, developers can reference binaries in a java class by using the java import statements. The
SDK contains a code sample named HdrmScriptSample.javathat can be found under src/
com/oracle/drm/examples. The SDK also contains a JDeveloper 10.1.3.3 project file called
HdrmSdk.jprin the directory HdrmSdk. This file can be used as a starting point for a custom
project.
The sample demonstrates the following:
Create a session
Enumerate property definitions
Delete a version
Create a version
Save a version
Load a version
Get a version
Create a hierarchy
Get a top node for hierarchy
Create a version-level property definition
Update version-level property values
Create hierarchy-level property definitions
Update hierarchy-level properties
Add nodes to a hierarchy
16 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
17/62
Change local node property values
Enumerate hierarchies within a version
Enumerate hierarchy-level properties
Enumerate working versions
Enumerate top node for all versions
Enumerate local and global node-level properties
Recurse a hierarchy tree
Create As Of version
Delete local node
Move node
Create and run hierarchy flat file export
Create and run custom property query
Create a request
Validate a request
Add a request item
Approve a request
Delete a request
The sample can be run within an IDE. There are five parameters required in the following order:
1. Data Relationship Management Web server name
2. User name
3. Password
4. Version name to create
5. Export path and file name
Special NotesFor more information see, see the following topics:
Data Relationship Management Batch Client on page 17
Encryption, Compression and MIME Encoding on page 18
Data Relationship Management Batch Client
In addition to the Data Relationship Management API, there is a utility called Data Relationship
Management Batch Client that provides an interface to the Data Relationship Management
application server.Data Relationship Management Batch Client is a command-line tool that can
be run via a batch routine or interactively. It provides functionality for running exports, imports,
Special Notes 17
8/12/2019 Mdm Ntier API
18/62
automators, and blenders. For automating these types of processes, Data Relationship
Management Batch Client may be a better choice depending upon the full requirements.
Encryption, Compression and MIME Encoding
Certain interface methods use encryption, compression, and MIME encoding.
Encryption is used in the GetSession unless the ClearPasswordText flag is set to True. The
encryption used is an RSA 256-bit encryption.
Export, import, and Automator methods that pass files to and from the server use a combination
of zip compression and MIME encoding. This is already coded for in the Data Relationship
ManagementBatch Client tool and makes accessing these functions much easier to use.
InterfacesThe Data Relationship Management API interfaces are used to communicate with the Data
Relationship Management application server to retrieve and update Data RelationshipManagement application objects. Below are lists of the available interfaces.
Session Management
The initial interface that must be used is ISessionMgr. This interface has the method to validate
against the system and get a SessionID.
ISessionMgr This interface is used to access methods related to a users session. This interface
must be used initially to obtain a session ID. After a valid session is obtained, subsequent
interfaces are called as they require a session ID.
Accessing and Managing Dimensional Data
The following interfaces are used to access the dimensional data within Data Relationship
Management.
IGlobalNode This interface is used to access global node operations. Before calling this
interface, you must call the following interfaces, in the order listed: IVersionMgr, IVersion.
IHier This interface is used to perform operations on a hierarchy. Before calling this
interface, you must call the following interfaces, in the order listed: IVersionMgr, IVersion.
ILocalNode This interface is used to perform operations on a local node. Before callingthis interface, you must call the following interfaces, in the order listed: IVersionMgr,
IVersion, IGlobalNode or IHierarchy.
IVersion This interface is used to access version information. It exposes the ability to get
objects that are related to a particular version; for example, retrieving a list of hierarchies,
their nodes and properties. Before calling this interface, you must call the IVersionMgr
interface.
18 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
19/62
IVersionMgr This interface is used to access version information.
Data Relationship Management Toolsets
The following set of interfaces manages access to the Data Relationship Management Toolsets.
IAutomator This interface is used to make bulk hierarchy changes that are defined within
a text file format. Depending on the requirements of the custom application being
developed, performing Automator actions is optional as many of the operations available
within the Automator can be achieved through other interfaces. The Automator is a way to
perform transactional (Delta-type operations). In addition, this interface provides a method
to convert transaction log items into an Automator script.
IBlenderMgr This interface is used to access Blender operations. It exposes the ability to
modify, delete, retrieve, and run blender profiles. The Blender process allows differences
between versions to be blended into the target version or a copy of the target version.
ICompareMgr This interface is used to access three types of Compare operations. It allows
for management of the comparison profiles as well as running the compares.
Standard Compare Compares two points in different hierarchies to be selected. Their
structures are analyzed for differences.
Property Compare Allows two points in different hierarchies to be selected and one
or more properties are analyzed for differences.
Renamed Node Compare Same as standard compare but renamed nodes are treated
as being the same for comparison purposes.
IExportMgr This interface is used to access export and book profile operations. It exposes
the ability to add, save, delete, run exports, and book profiles. The Export toolset is the
mechanism to retrieve dimensional information from the Data Relationship Management
system. IImportMgr This interface is used to perform operations on import profiles. It exposes
the ability to save, delete, and run imports. The Import toolset allows for a complete load
of dimensional data from an external text file.
IQueryMgr This interface is used to access methods related to queries, including creating,
deleting, modifying, and running. There are two types of queries: global and normal. The
query system allows Data Relationship Management to return a subset of nodes matching
a particular set of criteria.
IRequestMgr This interface is used to create, validate, approve, retrieve, and delete
transaction requests in Data Relationship Management. Transaction requests are a series of
proposed data changes to a Data Relationship Management version. A transaction requestcan consist of multiple transactions that are validated against and committed to a version
as a group.
Interfaces 19
8/12/2019 Mdm Ntier API
20/62
Note:
The Automator, imports, Blender, and exports can be run via the Data Relationship
Management Batch Client from a command line perspective as an alternative to using the API
to run predefined items.
Data Relationship Management Transaction LogThe following interface is used to access the Data Relationship Management transaction log.
ILogMgr This interface is used to perform transaction history operations. It exposes the ability
to retrieve a list of all transaction history based on input criteria. Note that the transaction log
items can be turned into an Automator script using the IAutomator interface.
Accessing and Administering Data Relationship
Management Metadata
The following interfaces are used to access and administer Data Relationship Managementmetadata.
ICategoryMgr This interface is used to access Property Category operations. It exposes
the ability to add, delete, update, list users, list property categories, update users on a property
category, list properties within a property category, and update the properties that pertain
to a property category.
IGlyphMgr This interface is used to insert, update, delete, retrieve, and load glyphs.
Glyphs are used in conjunction with node types.
INodeAccessGroupMgr This interface is used to perform operations on node access
groups. It exposes the ability to add, delete, update, and retrieve a list of node access groups.
Node access groups provide the basis for user security into the dimensions.
INodeTypeMgr This interface is used to perform operations on a node type. It exposes
the ability to add, delete, update, assign properties, assign validations, and retrieve property
list for a node type. Node types limit the properties and validations for a node as well as
optionally defining the glyph to be used. This interface is used for managing and retrieving
node type information.
IPropMgr This interface is used to access methods related to property definitions
including adding, deleting, modifying and retrieving information like property lists and
lookups. It is also used to get property information holders to retrieve property values from
a node.
ISysPref This interface is used to access system preferences for the Data Relationship
Management application.
IUserMgr This interface is used to access and manage user information.
IValidationMgr This interface is used to access Data Relationship Management
validations for defining, updating, and deleting validations (both validations and
verifications).
20 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
21/62
Data Relationship Management System Monitoring
The following interfaces are used to access system and process-level information with the Data
Relationship Management environment.
IJobMgr This interface is used to check the status of any jobs that have been submitted
by other interfaces.
IProcessInfo This interface is used to retrieve facts about the Data RelationshipManagement application server. This interface exposes such things as memory status, thread
information, and a list of engines running.
IVersionInfo This interface is used to obtain configuration information about the Data
Relationship Management installation.
Interface RelationshipsAccessing Data Relationship Management interfaces requires an understanding of the
organization of the interfaces. While the interfaces themselves are independent of each other,
methods of certain interfaces require input parameters that must be obtained from other
interfaces. For example, before accessing node information, you must access hierarchy
information and before accessing hierarchy information you must access version information.
Below is an illustration on how to obtain version, hierarchy, and node-level information.
Interface Relationships 21
8/12/2019 Mdm Ntier API
22/62
Interface Return TypesWithin the Data Relationship Management interfaces there are some methods that are similar
in what they return. Depending on the requirements of the client program calling the Data
Relationship Management interfaces, it may be necessary to return only a subset of information.For example, within the Data Relationship Management interfaces there are two methods named
fillChildrenStrList and fillChildren within the ILocalNode interface which each return different
objects. The method fillChildrenStrList returns a String object array of children names and
fillChildren returns an array of TRemLocalNode objects. These methods allow the developer to
have more control over what is returned; it also can aid in performance of the custom application
as returning a string array is more preferable than returning an array of TRemLocalNode objects.
22 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
23/62
Locator ObjectsWithin Data Relationship Management interfaces locator objects are used as input parameters
in certain methods. Locator objects are a structure for passing multi-column key information.
One example is the TRemHierLocator; this locator object contains variables for a session,
version, and hierarchy. After these values are populated, this object can be used as an input
parameter within the getHier method of the IHier interface. Below is a complete list of locator
objects within the Data Relationship Management API.
TRemLocalNodeLocator Contains session, version, hierarchy, and node attributes
TRemDualListLocator Contains session and listID attributes
TRemGlobalNodeLocator Contains session, version, and node attributes
TRemHierLocator Contains session, version, and hierarchy attributes
Asynchronous Methods
Within the Data Relationship Management interface there are interface methods which do notimmediately return a response when they are called. This type of method allows processes to
run in the background and does not require the program issuing the call to wait for a response.
This is helpful for long running operations within Data Relationship Management. An example
of this type of method is the startBookJob method in the IExportMgr interface. The IJobMgr
interface can be used to check job status.
Interface Methods
IAutomator Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
loadFile String: ASession
TRemScriptLoaderParams: AParams
Returns: TRemActionItem[ ]
Loads a file and converts contents into
an array of TRemActionItem objects.
These action items can be used in other
method calls within this interface.
processActions String: ASessionTRemActionItem[ ]: AAactions
Returns: TRemActionItemResult[ ]
Processes Automator actions(TRemActionItem) and returns a result
array of TRemActionItemResult objects.
loadLogCriteria String: ASession
TRemLogCriteria: ALogCriteria
Returns: TRemActionItem[ ]
Returns an array of TRemActionItem
objects based upon a set of criteria
(TRemLogCriteria) and a user session.
Used to convert transaction log items
into Automator objects.
Locator Objects 23
8/12/2019 Mdm Ntier API
24/62
8/12/2019 Mdm Ntier API
25/62
Method Name Input / Output Parameters Purpose
Returns: N/A
fil lBlenderProfiles String: ASession
Returns: TRemBlenderProfileDef[ ]
Returns an array of Blender profile definitions.
blenderByID String: ASession
int: AID
Returns: TRemBlenderProfile
Returns a Blender profile definition for a Blender ID.
processBlend String: ASession
TRemBlenderProfile: ABlender
Returns: TRemBlenderResults
Processes a Blender operation for a Blender profile and
returns a TRemBlenderResults object.
startBlendJob String: ASession
TRemBlenderProfile: ABlender
Returns: TRemASyncJobID
Starts an asynchronous Blender operation and returns
AJob ID. Used with the getBlendJobResults method.
getBlendJobResults TRemASyncJobID: AJobID
Returns: TRemBlenderResults
Returns Blender results. Used with the startBlendJob
method.
ICategoryMgr Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
listCategories String: ASession
Returns: TRemCategory[ ]
Returns an object array of TRemCategory objects.
addCategory String: ASession
TRemCategory: ACategory
Returns: int
Creates a new property category and returns the key to
that category.
deleteCategory String: ASession
int: ACategoryID
Returns: N/A
Deletes a property category for a given property category
ID.
updateCategory String: ASession
TRemCategory: ACategory
Returns: N/A
Updates a property category name and its order.
listUsers String: ASession
int: ACategoryID
Returns: TRemUserAccess[ ]
Returns a list of users for a property category by returning
an object array of TRemUserAccess objects. Within this
object you can get a users access level to a property
category.
updateUsers String: ASession
int: ACategoryID
TRemUserAccess[ ]: AUserAccessList
Updates a users access level for a property category.
Interface Methods 25
8/12/2019 Mdm Ntier API
26/62
Method Name Input / Output Parameters Purpose
Returns: N/A
listProperties String: ASession
int: ACategoryID
Returns: String[ ]
Returns a string array list of the property definition names
that are associated with a property category.
updateProperties String: ASessionint: ACategoryID
TRemKeyValuePair[]: APropertyList
Returns: N/A
Updates the set of property definitions for a propertycategory.
ICompareMgr Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
loadCriteria String: ASession
int: AID
Returns: TRemCompareCriteria
Returns a TRemCompareCriteria object for an
existing compare profile.
saveCriteria String: ASession
TRemCompareCriteria: ACompareCriteria
Returns: N/A
Saves criteria for a compare profile.
deleteCriteria String: ASession
int: AID
Returns: N/A
Deletes criteria for a compare profile.
Rename String: ASession
String: ANewName
TRemCompareCriteria: ACompareCriteria
Returns: N/A
Renames an existing compare profile.
propCompares String: ASession
Returns: TRemCompareCriteriaDef[ ]
Returns an object array of property compare profiles.
Compares String: ASession
Returns: TRemCompareCriteriaDef[ ]
Returns an object array of compare profiles.
renameCompares String: ASession
Returns: TRemCompareCriteriaDef[ ]
Returns an object array of renamed node compare
profiles.
compare String: ASession
TRemCompareCriteria: crit
String[ ]: AReturnProps
Returns: TRemCompareResult
Executes a compare operation and returns a
TRemCompareResult object.
26 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
27/62
Method Name Input / Output Parameters Purpose
renameCompare String: ASession
TRemCompareCriteria: crit
String [ ]: aReturnProps
Returns: TRemRenameCompareResult
Executes a renamed node compare and returns a
TRemCompareResult object.
propCompare String: ASessionTRemCompareCriteria: crit
String [ ]: aReturnProps
Returns: TRemCompareResult
Executes a property compare operation and returnsa TRemCompareResult object.
IExportMgr Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
saveExport String: Asession
TRemBaseExport: AExport
Returns: N/A
Saves an export profile.
fillExports String: Asession
Returns: TRemExportDef[ ]
Returns an object array of export
definitions.
fillTypeDefs String: ASession
Returns: TRemExportTypeDef[ ]
Returns an object array of export types
hierarchy, version, ancestor, hierarchy
compare, hierarchy difference, lookup,
merge log, property list, trans log,
generation, XML hierarchy exports
exportByID String:ASession
int: AID
Returns: TRemBaseExport
Returns a comprehensive set of export
profile information (TRemBaseExport).
deleteExport String: ASession
int: AID
Returns: N/A
Deletes an existing export profile.
runExportByID String: ASession
int: AID
String: ACurrentVersion
String: APreviousVersion
Returns: String
Runs an export profile with export ID,
current version and previous version as
input parameters.
runExport String: ASession
TRemBaseExport: AExport
Returns: TDrcByteArray
Runs an export operation. The export profile
does not have to be committed to the Data
Relationship Management datastore prior
to running.
Interface Methods 27
8/12/2019 Mdm Ntier API
28/62
Method Name Input / Output Parameters Purpose
isExportRunnable String: ASession
TRemBaseExport: AExport
Returns: Boolean
Determines if the TRemBaseExport input
parameter contains valid information.
Returns true if export parameters are valid.
fillBooks String: ASession
Returns: TExportBookArray
Returns an array of book profiles.
saveBook String: ASession
TRemExportBook: ABook
Returns: N/A
Saves a book profile.
deleteBook String: ASession
int: ABookID
Returns: N/A
Deletes a book profile.
startExportJob String: ASession
TRemBaseExport: AExport
Returns: TRemASyncJobID
Starts an asynchronous export job. Used
with the getExportJobResults method to
check the results.
getExportJobResults TRemASyncJobID: AJobID
Returns: TDrcByteArray
Returns the results of an asynchronous
export job.
startBookJob String: ASession
int: ABookID
TRemVersionParams: AVersionParams
TRemVersionParams: APrevVersionParams
Returns: TRemASyncJobID
Starts an asynchronous book job. Used
with the getBookJobExportResult method.
getBookJobItemCount TRemASyncJobID: AJobID
Returns: int
Returns the number of exports for a book.
getBookJobExportResult TRemASyncJobID: AJobID
int: ABookItemIndex
Returns: TDrcByteArray
Returns an object array of the results of a
book job.
getBookJobCombinedFile TRemASyncJobID: AJobID
Returns: TDrcByteArray
Returns an object array of the results of a
book job which contains a combined file.
This method is used for books that are
configured to combine their output into a
single text file.
closeBookJob TRemASyncJobID: AJobID
Returns: N/A
Closes a book job to free the associated
server resources
bookByID String: ASession
int: ABookID
Returns: TRemExportBook
Returns a book profile.
28 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
29/62
IGlobalNode Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
getNode TRemGlobalNodeLocator: nodeLocReturns: TRemGlobalNode
Returns a Global Node given aTRemGlobalNodeLocator input parameter.
numChildren TRemGlobalNodeLocator: nodeLoc
boolean: leaves
Returns: int
Returns the number of children for a
GlobalNode.
numDescendants TRemGlobalNodeLocator: nodeLoc
Tmdm_LeavesIncluded: leaves
Returns: int
Returns the number of descendents of a
global node.
fillPropValue TRemGlobalNodeLocator: nodeLoc
String: APropAbbrev
Returns: TRemNodeProp
Returns state details of a property on a
global node.
fillPropValues TRemGlobalNodeLocator: nodeLoc
String[ ] abbrevList
Returns: TRemNodeProp[ ]
Returns an object array of TRemNodeProp
objects for a global node.
propValueByAbbrev TRemGlobalNodeLocator: nodeLoc
String: propAbbrev
Returns: String
Returns the property value for a given global
node and a property definition name.
propValuesByAbbrev TRemGlobalNodeLocator: nodeLoc
String: propAbbrevs
String: delimStr
Returns: String
Returns property values for a global node.
The propAbbrevs input parameter can
contain one or more delimited property
definition abbrevs.
propStrValueByAbbrev TRemGlobalNodeLocator: nodeLoc
String: propAbbrev
Returns: String
Returns a property value for a global node
given a property definition abbrev as a input
parameter.
propValueByID TRemGlobalNodeLocator: nodeLoc
int: PropID
Returns: String
Returns a property value for a global node
given an property definition ID.
propOriginByAbbrev TRemGlobalNodeLocator: nodeLoc
String: propAbbrev
Returns: Tmdm_PropOrigin
Returns a scope and origin for a property on
a global node.
hasChildren TRemGlobalNodeLocator: nodeLoc
Returns: boolean
Determines if a global node has children.
childNodeCount TRemGlobalNodeLocator: nodeLoc
Returns: int
Returns the number of children for a global
node.
Interface Methods 29
8/12/2019 Mdm Ntier API
30/62
8/12/2019 Mdm Ntier API
31/62
Method Name Input / Output Parameters Purpose
fillChildrenQry TRemGlobalNodeLocator: nodeLoc
String[ ]: AReturnProps
Returns: TRemGlobalQueryResult
Returns an object array of
TRemGlobalQueryResult objects for a global
node, showing all children of the node. The
AReturnProps argument can be used to
specify additional property values to include
in the result set.
fillDescendantsQry TRemGlobalNodeLocator: nodeLoc
Int: AMaxNodes
String[ ]: AReturnProps
Returns: TRemGlobalQueryResult
Returns an object array of
TRemGlobalQueryResult objects for a global
node, showing all descendants of the node.
The AReturnProps argument can be used to
specify additional property values to include
in the result set.
nextNodeSequence String: ASession
String: APrefix
int: AAbbrevLength
Returns: String
Generates the next available node abbrev for
the designated prefix, based on the number
of times that prefix has been used for
generating a sequence. The resulting string
will be of the specified length. For example,
the prefix ABC and length of 5 yields
ABC01 the first time the method is called,then ABC02 etc.
fillSharedNodes TRemGlobalNodeLocator: nodeLoc
Returns: TRemGlobalNode[ ]
Returns an object array of TRemGlobalNode
objects for a global node, indicating all local
shared instances of that global node, across
all hierarchies.
IGlyphMgr Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
Insert String: ASession
TRemGlyphInfo: AGlyphInfo
Returns: int
Inserts a glyph and returns the primary key to the glyph.
update String: ASession
TRemGlyphInfo: AGlyphInfo
Returns: N/A
Updates a glyph.
delete String: ASessionint: AGlyphID
Returns: N/A
Deletes a glyph.
loadGlyphs String: ASession
Returns: TRemGlyphInfo[ ]
Returns an array of TRemGlyphInfo objects for a user.
Interface Methods 31
8/12/2019 Mdm Ntier API
32/62
Method Name Input / Output Parameters Purpose
glyphByID String: ASession
int: AID
Returns: TRemGlyphInfo
Returns a glyph for a given ID.
IHier Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
getHier TRemHierLocator: hierLoc
Returns: TRemHier
Returns a TRemHier hierarchy object given
a hierarchy locator object as input.
changeTopNode TRemHierLocator: hierLoc
String: ATopNode
Returns: N/A
Changes a top node for a given hierarchy.
addNode TRemHierLocator: hierLoc
String: nodeAbbrev
int: parentID
boolean: leaf
Returns: N/A
Adds a node to an existing parent node
within a hierarchy.
insertNode TRemHierLocator: hierLoc
String: nodeAbbrev
int: parentID
Returns: N/A
Inserts an existing node under a existing
parent node.
removeNodes TRemHierLocator: hierLocString[ ]: nodeAbbrevList
Returns: N/A
Removes one or more nodes from ahierarchy taking a string array of node
names as input.
moveNodes TRemHierLocator: hierLoc
String[ ]: nodeAbbrevList
int: newParentID
Returns: N/A
Moves one or more nodes in a hierarchy to
a new parent node taking a string array of
node names as input.
copyNodes TRemHierLocator: hierLoc
String[ ]: nodeAbbrevList
int: newParentID
int: sourceHierID
Returns: N/A
Copies a set of nodes to a new parent node
within a hierarchy.
deleteNodes TRemHierLocator: hierLoc
String[ ]: nodeAbbrevList
String[ ]: mergeAbbrevList
Returns: N/A
Deletes a list of nodes from a hierarchy. If
merge node is enabled then a l ist of merge
nodes should be supplied.
32 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
33/62
Method Name Input / Output Parameters Purpose
destroyNodes TRemHierLocator: h ierLoc
String[ ]: nodeAbbrevList
Returns: N/A
Destroys one or more nodes immediately
regardless of the merge requirements.
annulNode TRemHierLocator: hierLoc
String: nodeAbbrevReturns: N/A
Removes a node from a hierarchy and
deletes the node if its an orphan.
annulAllBelow TRemHierLocator: hierLoc
String: nodeAbbrev
Returns: N/A
Annuls all nodes below a given node.
inactivateNodes TRemHierLocator: hierLoc
String[ ]: nodeAbbrevList
String[ ]: mergeAbbrevList
Returns: N/A
Inactivates one or more nodes within a
hierarchy.
reactivateNodes TremHierLocator: hierLoc
String[ ]: nodeAbbrevList
Returns: N/A
Reactivates one or more nodes within a
hierarchy.
fillNodeList TRemHierLocator: h ierLoc
TLocalNodeArrayHolder ANodeList
Tmdm_FilterChildren: AFilter
Returns: N/A
This method is unique in that it fills a var
argument with data. It returns a list of local
nodes in the ANodeList parameter for a
given version, hierarchy.
nodeByID TRemHierLocator: hierLoc
int: nodeID
Returns: TRemLocalNode
Returns a TRemLocalNode object for a given
version, hierarchy, and node ID.
extNodeByID TRemHierLocator: hierLocint: nodeID
Returns: TRemExtLocalNode
Returns a TRemExtLocalNode object for agiven version, hierarchy, and node ID.
TRemExtLocalNode contains local node
information for access and display for UIs.
nodeByAbbrev TRemHierLocator hierLoc
String: nodeAbbrev
Returns: TRemLocalNode
Returns a TRemLocalNode object given a
node abbrev as input.
verify TRemHierLocator: AHierLoc
int: AMaxNodes
String[ ]: AReturnProps
ArrayOfStringHolder: verifyResult*
* Method fills data passed in as a param.
TRemLocalQueryResultHolder:ALocalQryResult
Verifies the assigned batch verifications for
a specified hierarchy and returns the failed
nodes (TRemLocalQueryResultHolder) and
reasons (ArrayOfStringHolder).
verifySelected TRemHierLocator: AHierLoc
int: AmaxNodes
String[ ]: validationAbbrevs
String[ ] AReturnProps
Verifies the specified batch verifications
(validationAbbrevs String[ ]) for the
specified hierarchy (TRemHierLocator) and
returns the failed nodes
Interface Methods 33
8/12/2019 Mdm Ntier API
34/62
Method Name Input / Output Parameters Purpose
ArrayOfStringHolder: verifySelectedResult
TRemLocalQueryResultHolder:ALocalQryResult*
* Method fills data passed in as a param.
(TRemLocalQueryResultHolder) and
reasons (ArrayOfStringHolder).
verifyNode int: nodeID
Boolean: recurse
TRemBaseParams: paramsTRemDualListLocator*
* Method fills data passed in as a param.
Verifies the assigned batch verifications for
a specific node ID or node ID and down
(Recurse) and returns the failed nodes(TRemDualListLocator).
verifyNodeSelected int: NodeID
Boolean: Recurse
String[ ]: ValidationAbbrevs
TRemBaseParams: Params
TRemDualListLocator*
* Method fills data passed in as a param..
Verifies the specified batch verifications
(String[ ]) for a specific node ID or node ID
and down (Recurse) and returns the failed
nodes (TRemDualListLocator.)
f il lStrPropValue TRemHierLocator: hierLoc
String: propAbbrev
Returns: String
Returns a property value for a specified
hierarchy.
fillPropValues TRemHierLocator: hierLoc
String[ ]: abbrevList
Returns: TRemNodeProp[ ]
Returns array list of property objects
(TNodePropArray) for the specified property
abbrevs (abbrevList) and hierarchy
(TRemHierLocator).
propValueByAbbrev TRemHierLocator: hierLoc
String: propAbbrev
Returns: String
Returns the property value string for a
specified hierarchy property abbrev and
hierarchy (TRemHierLocator).
propValueByID TRemHierLocator: hierLoc
int: propIDReturns: String
Returns the property value string for a
specified hierarchy property ID andhierarchy (TRemHierLocator).
updateProps TRemHierLocator: h ierLoc
TRemNodeProp[ ]: APropList
Returns: N/A
Updates a set of hierarchy properties
(TNodePropArray[ ]) for a Specific hierarchy
(TRemHierLocator).
searchForNode TRemHierLocator: hierLoc
TRemNodeSearchParams: ASearchParams
Returns: TRemLocalQueryResult
Returns a partial match search within a
hierarchy (TRemHierLocator) and search
params (TRemNodeSearchParams) and
returns a TRemLocalQueryResult object.
IImportMgr Interface Methods
[ ] denotes an array
34 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
35/62
Method Name Input / Output Parameters Purpose
fi ll ImportTypeDefs String: ASession
Returns: TRemImportTypeDef[ ]
Returns an array of TRemImportTypeDef objects for a given
user's session.
fillImportBlocks String: ASession
Returns: TRemImportBlockDef[ ]
Returns an array of TRemImportBlockDef objects for a
given user's session. TRemImportBlockDef objects
contain basic information about the import profile suchas name, description, type, and whether it is a standard
import.
importBlockByID String: ASession
int: AID
Returns: TRemImportBlock
Returns an import profile definition for a given user's
session and import ID.
saveImport String: ASession
TRemImportBlock: AImportBlock
Returns: N/A
Saves an import profile definition.
deleteImport String: ASession
int: AID
Returns: N/A
Deletes an existing import profile for a given user's session
and import ID.
runImport String: ASession
TRemImportBlock: AImport
String: ACompressedFile
Returns: TRemImportResults
Runs an import profile and returns a TRemImportResults
object.
isRunnable String: ASession
TRemImportBlock: AImport
Returns: boolean
Determines if an export can be run.
startImportJob String: ASessionTRemImportBlock: AImportBlock
String: ACompressedFile
Returns: TRemASyncJobID
Starts an asynchronous import job and returns aTRemASyncJobID object to be used with the
getImportJobResults method.
getImportJobResults TRemASyncJobID: AJobID
Returns: TRemImportResults
Returns the results (TRemImportResults) of an
asynchronous import job. Used with the startImportJob
method.
IJobMgr Interface Methods
Method Name Input / Output Parameters Purpose
checkJobStatus TRemASyncJobID: AJobID
Returns: Tmdm_JobStatus
Returns a Tmdm_JobStatus object for a given asynchronous job.
Interface Methods 35
8/12/2019 Mdm Ntier API
36/62
8/12/2019 Mdm Ntier API
37/62
Method Name Input / Output Parameters Purpose
Returns: String
numChildren TRemLocalNodeLocator: nodeLoc
Boolean: leaves
Returns: int
Returns the number of children for a given
local node.
numDescendants TRemLocalNodeLocator: nodeLocTmdm_LeavesIncluded: leaves
Returns: int
Returns the number of descendent nodesfor a local node. Tmdm_LeavesIncluded is
a filter object to include leaves, no leaves
or to include both limbs and leaves.
fillPropValue TRemLocalNodeLocator: nodeLoc
String: propAbbrev
Returns: TRemNodeProp
Returns a TRemNodeProp object for a
given local node.
fillPropValues TRemLocalNodeLocator: nodeLoc
String[ ]: abbrevList
Returns: TRemNodeProp[ ]
Returns an array of the property value
objects for a specified list of property
abbrevs for the specified local node.
propValueByAbbrev TRemLocalNodeLocator: nodeLoc
String: propAbbrev
Returns: String
Returns a string property value for a
specified property abbrev for a local node.
propValuesByAbbrev TRemLocalNodeLocator: nodeLoc
String: propAbbrevs
String: delimStr
Returns: String
Returns a string with delimited values for a
specified local node, and delimited
property abbrevs string. The delimStr
parameter should specify what delimiter is
used within the propAbbrev string.
propStrValueByAbbrev TRemLocalNodeLocator: nodeLoc
String: propAbbrev
Returns: String
Returns the property value as a string for
the given property abbrev and local node.
propValueByID TRemLocalNodeLocator: nodeLoc
int: propID
Returns: String
Returns a string property value for a given
node and property ID.
propOriginByAbbrev TRemLocalNodeLocator: nodeLoc
String: propAbbrev
Returns the property origin for a given
property abbrev and local node.
hasChildren TRemLocalNodeLocator: nodeLoc
Returns: boolean
Returns True or False if a given local node
has children.
childNodeCount TRemLocalNodeLocator: nodeLoc
Returns: int
Returns the number of children for a given
local node.
existsInDB TRemLocalNodeLocator: nodeLoc
Returns: Boolean
Determines if a given local node exists in
the database.
fillDescendants TRemLocalNodeLocator: nodeLoc
Boolean: inclusive
Returns: TRemLocalNode[ ]
Returns an object array of descendent
objects for a given local node. Inclusive
Interface Methods 37
8/12/2019 Mdm Ntier API
38/62
Method Name Input / Output Parameters Purpose
tells Data Relationship Management to
include the current node in the result array.
fillDescendantsSorted TRemLocalNodeLocator: nodeLoc
boolean: inclusive
boolean: ALeafsLast
Returns: TRemLocalNode[ ]
Returns a sorted object array of the
descendant nodes for the specified node.
Inclusive tells Data Relationship
Management to include the current nodein the result array.
fillAncestors TRemLocalNodeLocator: nodeLoc
Boolean: inclusive
Returns: TRemLocalNode[ ]
Returns an object array of Ancestor nodes
for a given local node. Inclusive tells Data
Relationship Management to include the
current node in the result array.
fillAncestorsExt TRemLocalNodeLocator: nodeLoc
boolean: inclusive
Returns: TRemExtLocalNode[ ]
Returns an object array of extended local
node objects for a given local node.
Inclusive tells Data Relationship
Management to include the current node
in the result array.
fillChildren TRemLocalNodeLocator: nodeLoc
Returns: TRemLocalNode[ ]
Returns an object array of children for alocal node.
fillChildrenExt TRemLocalNodeLocator: nodeLoc
Returns: TRemExtLocalNode[ ]
Returns an object array of extended
children for a given local node.
fillChildrenSorted TRemLocalNodeLocator: nodeLoc
Returns: TRemLocalNode[ ]
Returns an object array of children nodes
for a given local node.
fillSiblings TRemLocalNodeLocator: nodeLoc
boolean: inclusive
Returns: TRemLocalNode[ ]
Returns an object array of sibling nodes for
a given local node. Inclusive tells Data
Relationship Management to include the
current node in the result array.
fillChildrenStrList TRemLocalNodeLocator: nodeLoc
Tmdm_FilterChildren: AFilter
Returns: String
Returns a delimited string list of the child
nodes for a given local node.
updateProps TRemLocalNodeLocator: nodeLoc
TRemNodeProp[ ]: APropList
Returns:
Updates properties specified in the
TRemNodeProp object array for a given
local node.
copyProps TRemLocalNodeLocator: nodeLoc
TRemLocalNodeLocator: sourceNode
Tmdm_PropCopyMode: copyMode
String[ ] selectedProps
Returns: N/A
Copies properties from one node (source
node) to another node. The
Tmdm_PropCopyMode object is an
enumeration of the following options:pcmOverriden, pcmSelected,
pcmForceAll.
pcmOverriden copies all property
definitions at the source node (ignoring
derived and inherited).
pcmSelected copies a list of selected
properties. If this option is selected, then
38 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
39/62
Method Name Input / Output Parameters Purpose
the selectedProps parameter must be filled
in.
pcmForceAll copies all the properties
including inherited and derived and makes
them overridden in the target node.
verify TRemLocalNodeLocator: nodeLocBoolean: bRecurse
int: AMaxNodes
String[ ]: AReturnProps
Returns: TRemLocalQueryResult
Runs the assigned batch verifications forthe specified node and returns the failures
in a TRemLocalQueryResult object.
verifySelected TRemLocalNodeLocator: nodeLoc
String[ ]: validationAbbrevs
boolean: bRecurse
int:AMaxNodes
String[ ]:AReturnProps
Returns: TRemLocalQueryResult
Runs the selected batch verifications for a
given node and returns the failures in a
TRemLocalQueryResult object. The
bRecurse parameter recourses down the
hierarchy if true. Otherwise only the node
listed in the TRemLocalNodeLocator object
is verified. AMaxNodes results in Data
Relationship Management returning amaximum number of nodes in the result
set. AReturnProps includes these
properties when returning nodes that fail a
verification.
orderChildren TRemLocalNodeLocator: ANodeLoc
String[ ]: AChildOrder
Returns: N/A
Orders children for a given local parent
node.
fillChildrenExtQry TRemLocalNodeLocator: nodeLoc
String[ ]: AReturnProps
Returns: TRemLocalQueryResult
Returns extended children with properties
for a given local node.
fillAncestorsExtQry TRemLocalNodeLocator: nodeLoc
Boolean: inclusive
String[ ]: AReturnProps
Returns: TRemLocalQueryResult
Returns extended ancestors with
properties for a given local node. Inclusive
tells Data Relationship Management to
include the current node in the result array.
fillDescendantsQry TRemLocalNodeLocator: nodeLoc
boolean: inclusive
int: AMaxNodes
String[ ]: AReturnProps
Returns: TRemLocalQueryResult
Returns descendants with properties for a
given local node. Inclusive tells Data
Relationship Management to include the
current node in the result array.
fillSiblingsQry TRemLocalNodeLocator nodeLoc
boolean: inclusive
String[ ]: AReturnProps
Returns: TRemLocalQueryResult
Returns siblings with properties for a given
local node. TRemLocalQueryResult
contains a string array of the properties
requested and their property values.
Inclusive tells Data Relationship
Management to include the current node
in the result array.
Interface Methods 39
8/12/2019 Mdm Ntier API
40/62
ILogMgr Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
loadLogItems String: ASessionTRemLogCriteria: ALogCriteria
Returns: TRemLogItem[ ]
Returns transaction history (TRemLogItem[ ]) given a set of logcriteria (TRemLogCriteria).
INodeAccessGroupMgr Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
addNodeAccessGroup String: ASession
TRemNodeAccessGroup: AGroup
Returns: Int
Adds a node access group and returns
an integer representing a new ID.
deleteNodeAccessGroup String: ASession
int: AGroupID
Returns: N/A
Deletes a node access group given a
users session and node access group
ID.
updateNodeAccessGroup String: ASession
TRemNodeAccessGroup: AGroup
Returns: N/A
Updates a node access group given a
users session and a
TRemNodeAccessGroup object.
updateNodeAccessMembers String: ASessionint: AGroupID
String[ ]: AMembers
Returns: N/A
Updates a node access group's list ofusers.
fillGroupList String: ASession
Returns: TRemNodeAccessGroup[ ]
Returns an object array of node access
groups for a given users session.
groupByID String: ASession
int: AGroupID
Returns: TRemNodeAccessGroup
Returns a node access group object for
a given users session and node access
group ID.
fillUserList String: ASessionint: AGroupID
Returns: String[ ]
Returns a string object array of usernames for a node access group.
updateControllingHiers String: ASession
int: AGroupID
TRemControllingHier[ ]: AControllingHiers
Returns: N/A
Updates the controlling hierarchies for a
global node access group.
40 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
41/62
INodeTypeMgr Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
fillPropertiesByNodeType String: ASessionString: ANodeType
Returns: String[ ]
Returns an object array of property names for a givennode type.
fillCategoriesByNodeType String: ASession
String: ANodeType
Returns: String[ ]
Returns an object array of property categories for a
given node type.
fillValidationsByNodeType String: ASession
String: ANodeType
Returns: TRemValidation[ ]
Returns an object array of validations for a node type.
fillNodeTypesByProperty String ASession:
String: APropertyAbbrev
Returns: TRemNodeType[ ]
Returns an object array of node types for a given
property abbrev.
fillNodeTypesByCategory String: ASession
String: ACategoryAbbrev
Returns: TRemNodeType[ ]
Returns an object array of node types for a property
category.
fillNodeTypesByValidation String: ASession
String: AValidationAbbrev
Returns: TRemNodeType[ ]
Returns an object array of node types for a validation
abbrev.
glyphIDByNodeType String: ASession
String: ANodeType
Returns: int
Returns the ID of a glyph for a node type.
glyphIDByNode TRemLocalNodeLocator: Anode
Returns: int
Returns the ID of a glyph for a node.
fillNodeTypes String: ASession
Returns: TRemNodeType[ ]
Returns an object array of node types for a users
session.
addNodeType String: ASession
TRemNodeType: ANodeType
Returns: N/A
Adds a node type.
deleteNodeType String: ASession
String: ANodeTypeAbbrev
Returns: N/A
Deletes a node type.
updateNodeType String: ASession
String: ANodeTypeAbbrev
Returns: N/A
Updates a node type.
Interface Methods 41
8/12/2019 Mdm Ntier API
42/62
Method Name Input / Output Parameters Purpose
applyNodeTypeProps String: ASession
String: ANodeTypeAbbrev
String[ ]: APropList
Returns: N/A
Assigns a list of properties to a node type.
applyNodeTypeCategories String: ASessionString: ANodeTypeAbbrev
String[ ] ACatList
Returns: N/A
Assigns a list of property categories to a node type.
applyNodeTypeValidations String: ASession
String: ANodeTypeAbbrev
String[ ] AValList
Returns: N/A
Assigns a list of validations/verifications to a node
type.
IProcessInfo Interface Methods
[ ] denotes an array
Method Name Input / Output Parameters Purpose
getGlobalMemoryStatus String: ASession
String: AMachineName
Returns: TRemMemoryStatus
Returns a memory status object for a given
session and machine.
getEngineThreadInfo String: ASession
String: AEngineID
Returns: TRemEngineThreadInfo[ ]
Returns a TRemEngineThreadInfo object
array for a given session and a Data
Relationship Management Engine ID.
getMachineList String: ASession
Returns: String[ ]
Returns an object array of strings
representing Web servers for a Data
Relationship Management application.
getEngineList String: ASession
Returns: TRemEngine[ ]
Returns an object array of Data
Relationship Management engines for a
Data Relationship Management
application.
getEngineProcessID String: ASession
String: AEngineID
Returns: int
Returns a process ID for a given Data
Relationship Management engine.
getEngineProcessMemoryInfo String: ASession
String: AEngineID
Returns: TRemProcessMemoryCounters
Returns memory information for a given
Data Relationship Management engine.
getEngineQueue String: ASession
String: AEngineID
Returns: String[ ]
Returns an object array of process in
queue for a given engine ID.
42 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
43/62
IPropMgr Interface Methods
In general, IPropMgr applies only to node-level properties with the exception of
anyPropDefById and anyPropDefByAbbrev methods. Hierarchy-specific methods are prefixed
with H or Hier. Version-specific methods are prefixed with V or Version.
[ ] denotes an array
Method Name Input / Output Parameters Purpose
propDefByID String: session
int: propID
Returns: TRemPropDef
Returns a property definition object for a given
property definition ID.
hierPropDefByID String: session
int: propID
Returns: TRemPropDef
Returns a hierarchy level property definition
given a property definition ID.
versionPropDefByID String: session
int: propID
Returns: TRemPropDef
Returns a version level property definition
given a property definition ID.
anyPropDefByID String: session
int: propID
Returns: TRemPropDef
Returns a property definition given a property
definition ID.
propIsValid String: session
String: abbrev
Returns: boolean
Returns boolean indicating if the property
abbrev is valid.
nodePropIsValid String: session
String: abbrev
Returns: boolean
Returns boolean indicating if the property
abbrev is a valid node-level property.
hierPropIsValid String: session
String: abbrev
Returns: boolean
Returns boolean indicating if the property
abbrev is a valid hierarchy-level property.
versionPropIsValid String: session
String: abbrev
Returns: boolean
Returns boolean indicating if the property
abbrev is a valid version level property.
propDefByAbbrev String: session
String: abbrev
Returns: TRemPropDef
Returns a TRemPropDef object given a
property definition abbrev.
nodeCopyPropByAbbrev String: session
String: abbrev
Returns: TremPropDef
Returns a property definition object of a
specified property abbrev if it is setup for
copying, meaning the property abbrev is set
as a value in the CopyPropertiesList system
preference.
Interface Methods 43
8/12/2019 Mdm Ntier API
44/62
Method Name Input / Output Parameters Purpose
versionPropDefByAbbrev String: session
String: abbrev
Returns: TremPropDef
Returns a TRemPropDef object given a
version-level property definition abbrev.
hierPropDefByAbbrev String: session
String: abbrevReturns: TRemPropDef
Returns a TRemPropDef object given a
hierarchy-level property definition abbrev.
anyPropDefByAbbrev String: session
String: abbrev
Returns: TRemPropDef
Returns any TRemPropDef object given a
property definition abbrev.
defaultByAbbrev String: session
String: abbrev
Returns: String
Returns the default value for a given property
definition abbrev (local and global level
properties only).
fillPropByAbbrev String: session
String: abbrev
Returns: TRemNodeProp
Returns a node-level TRemNodeProp object
given a property definition abbrev.
fillHierPropByAbbrev String: session
String: abbrev
Returns: TRemNodeProp
Returns a hierarchy-level TRemNodeProp
object for a given property definition abbrev.
f il lVersionPropByAbbrev String: session
String: abbrev
Returns: TRemNodeProp
Returns a version-level TRemNodeProp object
for a given property definition abbrev.
fillFullPropList String: session
boolean: includeHidden
boolean: globalOnly
Returns: TRemNodeProp[ ]
Returns an object array of property holders for
all node-level properties. Can include global
and hidden properties.
VFillFullPropList String: session
Returns: TRemNodeProp[ ]
Returns an object array of property holders for
all version-level properties.
HFillFullPropList String: session
Returns: TRemNodeProp[ ]
Returns an object array of property holders for
all hierarchy-level properties.
fillValPropList String: session
Returns: TRemNodeProp[ ]
Returns an object array of property holders
objects for validation properties.
fillSelectedPropList String: session
String[ ] abbrevList
boolean: includeHidden
boolean: globalOnly
Returns: TRemNodeProp[ ]
Returns an object array of property holders for
a specified set of node-level property abbrevs.
44 Data Relationship Management Application Programming Interface
8/12/2019 Mdm Ntier API
45/62
Method Name Input / Output Parameters Purpose
VFillSelectedPropList