Application Programming Interfaces allow developers to leverage existing program code in an effort to build additional functionality, automate processes or present existing functionality in a different format. APIs exist for many of Hyperion products; however, clear examples of how to use them are not always easy to find nor are applications for the API readily available. Proper application of the APIs for HFM, Workspace, FDM, Smartview and Shared Services can simplify the daily routines of end users and administrators.
This session will provide a high level overview of how each of the APIs work. Additionally, real-world examples for each API will be provided. Fully working code will be available for download from the ODTUG 12 site which attendees can use in their own environments.
Developer Data Modeling Mistakes: From Postgres to NoSQL
Hyperion EPM APIs - Added value from HFM, Workspace, FDM, Smartview, and Shared Services
1. #Kscope
APIs Getting Added Value From HFM, Workspace,
FDM, Smartview, and Shared Services
Charles Beyer
Troubleshooting steps for diagnosing HFM, Workspace, and FDM
2. #Kscope
About the Speaker
15+ years professional development
experience in various languages/technologies
(6 years w/ Hyperion products)
Independently released commercial software
products
Loves to help others solve problems
Posts under beyerch2 on OTN Discussion
Boards
3. #Kscope
Before we Begin…..
Code Samples for all examples are at end of
powerpoint (Download latest version!)
To expedite session, we will use both screen
caps and live demos
‘All-in-one’ Virtual Machine created for session,
available upon request*
If we hit time limit, there is enough shared
information that most should be able to perform
remainder of samples
4. #Kscope
Session Goals
Gain High Level Exposure to Select EPM API
Libraries
Recognize Added Value of APIs
DO NOT FEAR APIs, They Are Your Friend!
5. #Kscope
Development Challenges
Out Of The Box (OOTB) product functionality is
rarely a perfect fit
● Custom Workflow Requirements from Client
● Missing/Incomplete Product Functionality
Limited Development Resources
● Tight Deadlines
● Limited Budgets for Custom Development
Steep Learning Curves
● Difficult to Master Continually Evolving Software
● Introduces Software Defects
6. #Kscope
APIs to the Rescue!
Enables Extensibility of Product
Alleviates Development Pressures
● Lessens Development Time and Cost
● Simplifies Learning Curve
● Minimizes Defects
‘Future’ Proofs Your Work
Grows Hair Back*
Solves Economy Problems
Extends Lifespan (yours)*
*Not evaluated by FDA
7. #Kscope
What exactly is an API?
What
Set of standard function
calls / procedures with well
defined inputs and outputs
that abstract complex logic
from developers (i.e. Black
Box)
8. #Kscope
What APIs are available?
Virtually all EPM products have an API
available, though we will focus on:
● HFM
● FDM
● Smart View
● Workspace
● Shared Services
10. #Kscope
API Overview - HFM
Two Major API Libraries
● Web Object Model – Web Server Components used
by ASP web pages
● COM Components – Primarily Used to talk to
Application Server Tier. Typically interfaced in VB6,
.NET application, though any language that supports
COM can make use.
● Offer similar functionality with few exceptions such
as Consolidations (COM), Document Library (Web)
11. #Kscope
API Overview – HFM (cont.)
Pre-Requisites
● Web Object Model
● Execute Code on HFM App Web Server
● COM Object Model
● HFM Client Installed on Computer
● Install FM App Server Files to Local Machine –or- have
read only access to files
HFM API TIP
● Get the SDK!
(http://www.oracle.com/technetwork/middleware/fina
ncial-management/overview/index.html)
12. #Kscope
API Overview – HFM (cont.)
Sample Programs
● HFM Client Utility Improvement – Multi Data Export
● Command Line / Scheduled Task (VBS)
● HFM-Batch
● C# Command Line Implementation of common API features
by Adam Gardiner
● https://github.com/agardiner/hfm-batch
Note : If you do not own Visual Studio, there are
free versions available.
(http://www.microsoft.com/visualstudio/en-
us/products/2010-editions/express)
21. #Kscope
API Overview - FDM
One Object Model (COM), Multiple Ways to
Access
● FDM Scripts – Primary (Import, Custom, Event)
● External Program (Client or Server) in any language
supporting COM
22. #Kscope
API Overview – FDM (cont.)
Pre-Requisites
● Execute Code from FDM Server
-OR-
● Install FDM Workbench on Computer
● Either Install FDM Application Server Files or Have
Read Access to File System With Files
23. #Kscope
API Overview – FDM (cont.)
Samples
● Export All Dimension Maps to
Excel by Location
● Show Children Locations for
Selected Location
Tip
● Don’t forget about Accelerators!
33. #Kscope
API Overview – Smart View
API Functions Available From Inside of Smart
View Documents
● COM libraries used behind the scenes
● Smartview.BAS in
<HYPERION_HOME>SmartViewBin has
definitions of all calls, constants, etc.
● Theoretically could utilize libraries outside of Excel,
but have not attempted
34. #Kscope
API Overview – Smart View (cont.)
COM Object Model
● Object Model Libraries
● HsAddin.dll – Kitchen Sink Library
● Pre-Requisites
● Smart View Installed
Samples
● Auto Create Connection String in Connection
Manager
36. #Kscope
Smart View Auto Create Connection
While Shared Connections – Minimize this, not
all Smart View versions have functionality or is
it being implemented everywhere.
Would be nice to have everything to make your
SV file work, in the file …..
41. #Kscope
API Overview – Workspace
API Consists of Java Classes/Interfaces Used
Either on Command Line or in JSP Pages
Significant amount of functionality exposed to
developers (see table in Appendix)
42. #Kscope
API Overview – Workspace (cont.)
Pre-Requisites
● SDK Installed
● Java Compiler and Runtime Environment Installed
● GSM Host Name and Port Number
● Access to Core Services Using a URL (i.e.
http://localhost:45000/workspace)
● Valid Username and Password with Administrator
Access
43. #Kscope
API Overview – Workspace (cont.)
Samples
● Authenticate to Workspace
● NOTE: Samples can be found as part of the SDK
● Sys 11 - <MIDDLEWARE
HOME>EPMSYSTEM11R1PRODUCTSBIPLUSSDKSA
MPLESJAVA
44. #Kscope
API Overview – Workspace (cont.)
Gotchas….
● ‘Out of the Box’ Scripts do not work per
documentation!
● Execapi.bat / JC.bat need tweak
● Files Location :
%EPM_ORACLE_HOME%productsbiplusSDKbin
● Copy .template versions to .bat
● Replace line
● set SET_SDK_ENV = “%INSTANCE…
● set SET_SDK_ENV = “set_sdk_env.bat”
52. #Kscope
API Overview – Shared Services
Java API Allows for Access to Users, Groups,
and Security Access
Pre-Requisites
● Foundation Services are running
● Execute program from machine with at least one
EPM System Product
● Epm_j2se.jar is added to the CLASSPATH
(EPM_ORACLE_HOMEcommonjlib11.1.2.0epm_j
2se.jar)
53. #Kscope
API Overview – Shared Services (cont)
Pre-Requisites
● EPM_ORACLE_INSTANCE environment variable is
set (or specified at run-time)
● reg.properties file exists. Most likely :
EPM_ORACLE_INSTACEconfigfoundation11.1.2.
0
● For SAMPLE.java / authenticateSample.java replace
hardcoded placeholders for login / password.
(admin/G00gl3)
59. #Kscope
Tips and Tricks
Experiment in Development!
● If things go wrong, no worries
● Easier to debug as you are only user
● Can run additional debugging / monitoring tools
which would degrade production performance
Leverage Existing Code!
● HFM Web (ASP), FDM Adapters/Scripts (VBScript),
Shared Services Web (JSP), and Workspace (JSP)
60. #Kscope
Questions?
If you have any questions with the sample code
or presentation, feel free to ask/contact me
● charles@charlescbeyer.com
63. #Kscope
HFM API Features
Web Object Model Features COM Object Model Features
Log On / Log Off Log On / Log Off
Open FM Applications Open FM Applications
Register / Unregister Clusters/App Servers Register / Unregister Clusters/App Servers
Getting Dimension Attributes Get Metadata Attributes
Get / Set Line Item Details Get / Set Line Item Details
Process Management Interaction Process Management Interaction
Open / Close Periods Open / Close Periods
Journals (Create, Delete, Submit, Post, etc.) Process Journals
User Security (Rights / User Lists) User Security (Rights / User Lists)
Document Management (Forms / Grids) Get / Set data for arrays of cells
POV Settings
Executing consolidations, translations,
calculations
Audit Information (Task, Data, etc.)
Load/Extract member lists, metadata, rules,
data,
and journals
Server Information/Control (Logoff Users,
Enable/Disable Connections) Extended Analytics
ActiveX control for dimension members
selection
64. #Kscope
HFM Object Model Summary
Figure 1 - Select Hyperion Product API Technology Overview
Library File Functionality
HFMwApplications Application and User Functions
HFMwSession User Connection to Application
HFMwMetadata Functions for working with Metadata
HFMwDimension Functions for working with Dimensions
HFMwData Data Related Functions
HFMwManageProcess Process Management Functions
HFMwMbrSel Point of View Functions
HFMwMbrSelDim POV - Member Selection
HFMwDataGrid Data Grid Interfacing Functions
HFMwDocuments Document Functions
HFMwManageDocuments Managing Document Functions
HFMwWorkspace Tasklist Related Functions
HFMwSecurity Security Related Functions
HFMwJournals Journal Functionality
HFMwSystemInfo System Information and Control
HFMwUtilities Common Utilities (i.e. Strings / Files)
HFMwResourceManager Localized strings (i.e. Errors)
HFMwConstants Library of CONSTANT values
65. #Kscope
HFM Object Model Summary
Figure 1 - Select Hyperion Product API Technology Overview
Library File Functionality
HsvMetadata Metadata functions
HsvData Get / Set Data in Application
HsvCalculate Calculations, Consolidations, Translations
HsvJournals Journal functions
HsvSecurityAccess App Security Features
HsvSystemInfo System Items (Get/Set App Name, Server Name)
HsvProcessFlow Process Management
HsvReports System Reports
HsvICM Intercompany
HsvMDArrays Statutory / IC Transactions Data
HsvDataCubes Data Access @ Sub Cube Level
66. #Kscope
FDM API Features
Features
Log On / Log Off
Open FDM Applications
Create / Delete Application
Register / Unregister Application
Get / Set Application POV
Get / Set Workflow Status
Execute Data Loads, Calc Logic, Mapping Rules
Process Multi-load / Journal Templates
Manage Application Security
Execute Actions (Export, Load, Consolidate, Validate)
Request Member Lists
67. #Kscope
FDM Object Model Summary
Library File Functionality
upsAppServerDM Container for all API components
upsOBJDMw Primary Business Logic / Data Processing
upsDataWindowDM Data Access, Manipulation, Security
upsWObjEventHandlerDM Event Handling
upsWebScriptDM VB Script Engine / FDM Scripts
upsWBlockProcessorDM Integration Script Execution
upsMPLDMw Multi-load / Journal Processing
upsWStructureMgrDM Hierarchy Management Services
upsMapConverter Specialized Map Conversion
upsWBatchLoaderDM
“Lights Out” Processing for Custom Scripts / Task Management
Service
upsWDialogsDM Dialog Forms for POV and Global Options
upsWMetaMgr Classified / Undocumented
UpStreamAppMgrW App Config / Authentication
LoadBalanceMgr Load Balancing
upsWReportingDM Active Reports Processing Services
ZipMgrW File Compression
upsEventLog Event Log Writing
68. #Kscope
Smart View API Features
Features
General Functions - (As seen on Smart View Ribbon)
Connection Functions - Manage Connections
Ad Hoc - Zooming, Retrieving, Submitting Data, Pivoting
Form Functions
Cell Functions
POV
Calculation Script / Business Rules
Calculation / Consolidation / Translation
Member Query - Generation, Level, Attributes for Members
Options - Global / Sheet Options, MRU Deletion
MDX Querying
Menu - Emulate Ribbon Menu Commands
Dynamic Link - Retrieve Data From Other Open Windows
69. #Kscope
Workspace API Class Summary
Class Description
Job Parameter Information About Data Parameters
Logger log4j Logging Architecture Methods
ObjectType Extract Built-In Object Types in Workspace
SessionFactory Session Interface for Workspace (Required)
UnknownReportMartException Exception Thrown When Connection Error Occurs
UserValidationException Exception Thrown When User Error Occurs
ReportMartException
Exception Thrown During Invocations on Interactive Reporting
SDK Package
70. #Kscope
Workspace API Interface Summary
Interface Description
AbsoluteTimeEvent Create Events That Trigger at a Given Time
Authorization Accessing Roles and Listings
Base Object Extends ReportMartEntity
BQYDocument Interactive Reporting Document Information
BQYJob Interactive Reporting Jobs
Category Copy Files/Directories to/from File System to Workspace
Collection Artifacts Associated With Job Output
CustomCalendar Define Calendars
DataObject Get/Set Keyword Lists for HTML, SQL, and CSV Documents
ExternallyTriggeredEvent Define Externally Triggered Event
Group Access Shared Services Group Information
InstancePermission Get/Set Object Permissions
Job Executes Jobs / Handles Output
JobOutput Job Output
ObjectID UUID Reference for Identifying Workspace Objects Uniquely
OCEDocument Interactive Reporting Database Connection
71. #Kscope
Workspace API Interface Summary
Interface Description
ParameterList Job Attributes Used During Job Execution
PhysicalResource Printer / Physical Output Methods
Query Searching Workspace
QueryVector Search Results
RecurringTimeEvent Repetitive Event Triggering
ReportMartEntity Attribute Information for all Workspace Artifacts
Repository Used throughout SDK to Obtain Major Interfaces for SDK
Role Get/Set Role Information
ScheduledTask Associate Parameter List with Event
Scheduler Create, Retrieve, List, Delete Event Service Artifacts
Session Primary Interface for Accessing Workspace
SPFSet
Output from Job Service Execution of SQR Production Reporting
Documents
SQRJob Set/Get “ask” Parameters at Time of Job Execution
SQRJobOutput Job Output from Above
User Get/Set Shared Services User Information
72. #Kscope
Shared Services API Class Summary
Class Description
com.hyperion.css
Provides classes necessary to create and use security
platform
com.hyperion.css.application
Provides functionality that Hyperion based applications
must implement to use security platform
com.hyperion.css.common
Common information elements and information retrieved
from directory stores
com.hyperion.css.common.configuration Access to application configuration information