Using EPMA for Managing Hyperion Planning Applications
The Irish OUG BI Special Interest Group are running an Essbass-themed event on November 11th in Dublin, and as well as delivering a session on Oracle BI EE and Essbase Integration I've also agreed to do a session on the technology behind Hyperion Planning. This particular session is aimed at developers like myself, who generally work with Oracle's BI technology tools and are wondering how this "Planning" application works; how does its architecture look, what are the typical development tasks that are associated with it and how do you get data in, and out of it.
I covered a basic introduction to Hyperion Planning a few months ago, where I outlined the basic idea behind the product and how it fitted into the EPM Suite framework. To recap, Hyperion Planning is a part of Oracle EPM Suite and is currently at version 11.1.1.3. It is used by organizations to plan and budget within their organization, and where it differs to ordinary Essbase is that it's a packaged application designed to do one thing (planning), rather than being just an OLAP server or a toolkit like Java. Planning uses a combination of Essbase (for multi-dimensional analysis, allocations, forecasts and calculations) and relational storage (for additional planning metadata), and is generally accessed by end-users either through the Planning Web Application (part of EPM Workspace), or through Excel via SmartView or the classic Excel add-in.
At a very high-level, Planning fits in with Oracle's general EPM/BI architecture at the "application" level, along with the Oracle B Applications.
Data in Planning breaks down into two main areas; dimension data, such as entity, period, scenario and ones that you define yourself, and data, the actual numbers (actuals, forecast, budgets) that you load into the database. Planning (in its standard form, there are variations for workforce and capital expenditure planning) ships with six standard dimensions:
- Entity, for organizational units, countries or similar (current calculations are based around these)
- Scenario, so that you can try different types of plan or planning methods
- Version, typically top-down or bottom-up, but also allowing you to split plans into public ones and ones for internal use
- Period, such as financial period, month, financial quarter etc
- Year (typically split from period to make plans easier to work with)
- Account, the measures in the plan such as profit, margin, costs etc
When you load data into a Planning application, the actual numbers go into the Essbase database, whilst a support relational database holds all the textual data, workflow steps, plan status and so on. Up until System 9, you would create Planning applications using the Planning administration tool, which allows you to define the application in metadata before deploying it to a suitable Essbase server. This approach is preserved for backward compatibility in System 9 and EPM Suite 11.1 (a.k.a. System 9.5), and I walked through an example in a previous posting where I created an application using what is now called the Classic Application Wizard. This works pretty well (indeed, most Planning administrators still use this approach for reasons I'll outline later on), but it's not the "strategic" way of doing it and we can't take advantage of the metadata management features of EPMA if we go down this route (though we can upgrade classic planning applications to EPMA ones, if you like, in order to take advantage of these features).
So after running through the upgrade myself on one of my classic applications, I thought I'd run through the process of creating a new one from scratch, just using EPMA. The first hurdle with this is that EPMA needs Microsoft Internet Information Services to run, and so I dug out the Windows CD and installed it (feeling a bit dirty in the process), then got all the services up and running.
- A Dimension Library, for holding metadata on the shared and local dimensions used by EPMA-enabled applications
- An Application Library, for holding definitions of the various Essbase, Planning and HFM applications EPMA manages
- A Data Sychronization Engine, for loading data (numbers) into EPMA-managed applications
- Workspace, Security and Taskflow elements
Note the option in the above screenshot to "auto-create local dimensions". The first (System 9) version of EPMA made you define all dimensions as "shared", which meant that you defined them in the "dimension library" within EPMA and then made them available for use by various applications, each of which then used the same dimension definition. EPMA 11.1.1 introduced the concept of local dimensions, detached independent dimensions that only exist within a particular dimension, allowing you to have different definitions of entities for example in different planning applications. Classic applications that are imported into EPMA have by default local dimensions, and local dimensions are the default when setting up fresh applications directly within EPMA, however if you are looking to standardize data and access across all of your planning applications you'll probably want to move towards shared ones. For me though, I created my application using the standard dimensions and in shared mode, choosing to create period and year ones at the same time.
If the dimensions are small (scenario, for example), you can define them directly within EPMA in a similar manner to Essbase Administration Services. In the screenshot below, I'm adding a child member to the Accounts dimension:
It's probably worth taking a moment out to understand how data and metadata flows through Planning when EPMA is involved. As you can see from the diagram below, data and metadata from the various sources goes first into interface tables or files before being accessed by EPMA, which then takes this data, maps it and then uses it to construct the applications that you want to create.
Now the tricky bit for me was getting the data in the input file in the correct format for the Dimension Library application to read. Unlike the Outline Load Utility which uses one format, input files for dimensions into EPMA use another, and after a bit of experimentation I got one together that firstly defines the dimension that we'll be importing, then the list of dimension members, then the hierarchy within the dimension.
Once the file is imported and then processed, you can then check back into the EPMA Dimension and Application libraries to see the newly created dimension members and hierarchy. In my case, my products are all now showing as I'd expect, and it's time to deploy the Planning application to Essbase.
Probably the easiest way is to do an old-fashioned data load into the Essbase database. Unlike dimensions which can only be loaded from EPMA, data can be loaded in whichever way you see fit, although if you bypass EPMA you'll miss the logging, management and other benefits you get when you manage all your loads using this environment. Doing a data load in this way is pretty straightforward though, you can for example select the dimension in Essbase Administration Services, right-click on it and select Load Data, then point it towards the file containing your data.
Data Synchronization, like the Dimension and Application Libraries, is accessed from the Workspace menu.
So how did it all pan out, compared to creating a Planning application using the Classic Application Wizard? Well I was discussing it with Venkat as I went through the process, and it was interesting to see how restrictive using EPMA can become once you start using it. Tools such as ODI and DIM (the adapters for Informatica) only work with classic applications, which means that you can't make use of ODI's ETL capabilities when working with EPMA Planning applications. You can't use the Outline Load Utility to load your dimension metadata, you have to use Profiles and the Dimension Library, but you can use regular data loads from EAS if you don't want to use Data Synchronization.
EPMA is clearly the way that Oracle want us to go though, and there are are obvious benefits if you have a whole estate of Planning, Profitability, Financial Management and Essbase applications to manage. It's also worth thinking about how EPMA might work going into the future - will Essbase dimensions continue to be managed using this tool, could there perhaps be some merging between the Semantic Model that OBIEE uses, will we ever get to that nirvana where we have one repository, one dimensional modeling tool, one set of metadata for all our Oracle Bi tools? Who knows, but for now this is how planning applications using EPMA are initially put together.