Hyperion Planning : Creating your own Simple Application

Earlier in the week I posted an introduction to Hyperion Planning, and then went through the process of setting up the Planning sample application. Today I've been working through creating my own Classic Planning application, to see how the process works. Note that this article by no means is the definitive way to approach this, in fact many of the tools I'm using in this posting have been superseded by the EPM Architect utility thats come with EPM 11.1, but what I went through today allows you to get a basic application up and running before tackling the new features in 11.1

The first step, as with the sample application, is to define a data source that points to your Essbase server and a relational database schema. Once this is created you can step through the Classic Application Wizard and configure the standard Planning dimensions. For periods and Years, I just work with one year of data (FY08) and the standard quarters, months and weeks, which translates into two planning dimensions (year and period) later on.

Plan1

I choose a single currency (USD), a single plan and then confirm the details. Once I press Finish, Planning will create an Essbase application but no database at this point - that will come later on once I've configured my custom and standard dimensions.

Plan2

Once the application is created, I then go and firstly, configure the remaining standard dimensions. I create a single scenario for my planning exercise; at some point in the future I may create multiple scenarios for three and five year plans, mid-year plans and so on.

I then create a user-defined (custom) dimension, to hold product information. Once the dimension is created, at this point it has no members or hierarchies, and it only exists in the Planning metadata.

Plan3

Now I could use the Add Child and Add Sibling buttons to add my dimension members manually, but instead I'm going to use the Outline Load Utility to load my product dimension members from a CSV file, like this:

Plan4

This file has a header row at the top, that defines column one as being the parent, column two being the child and column three, the data storage option. I load this file in using the utility from the Windows command prompt
C:\> c:\Hyperion\products\Planning\bin\OutlineLoad /A:plndem2 /U:admin /M /I:c:/
files/product.csv /D:Product /L:C:/files/product.log /X:c:/files/product.ecp

and then go back to the Planning application to check the new members and hierarchy.

Plan5

At this point, my dimension (including account dimension) information only exists in the Planning metadata, in the relational tables, and so my next step is to generate the Essbase database that'll hold the physical versions of these objects. The idea with planning is that you do all the definition in the Planning application (or in EPM Architect) and don't really edit the database outline yourself, in this way it's similar to Oracle EPB which took a similar approach.

I generate the database and then check the outline in Administration Services, to see all the dimensions and members there including my user-defined product dimension.

Plan6

Now the database is there, I can load the initial planning data into it. My initial budget plan will be a bottom-up plan, and therefore I've prepared a load file offline that contains the initial budget figures that I want my users to work with. Other scenarios might involve target-led, top-down budgets where I might copy last years figures into the budget database at the top level, apply an uplift and then allocate the figures down based on each region and product's share of sales. For now though, we'll just load the level 0 data in from a load file like this:

Plan7

The way this load file works, is that you have to prefix each line with a set of unique dimension member names so that Essbase knows where to put your data. The first line contains the values that don't change for the whole load file, which for me are the scenario name (current), the version (BU, for Bottom-Up, version 1) and the Financial year, wheras the rest of the rows contain a product, entity, period and account member name followed by the value to insert. I load this data file in using the Load Data feature in Administration Services.

Plan8

Now I've got some data in, I return the Planning web application and start defining a data form so that users an enter their budget figures. This involves selecting the dimensions that I want to display across the page, the measures I want to enter and default values for the Point of View.

Plan9

I now have two forms that I can use for data entry, one for revenue and one for quantity. In real life I'd also add variables and data filters in so that users only saw the entities that they were responsible for, but for now I'll just create a task list that includes these two forms plus a step at the end where the user can submit their updated budget figures.

Plan10

So now I can save everything and then run the task list as a user, entering my budget figures into the data form, which will write the values back into the Essbase cube save the form.

Plan11

Once each budget task list is complete, I check the relevant box and then submit the budget for approval. In real life this process would typically go through multiple iterations until everyone is happy with the figures (or at least you've finally come up with the figures that the boss wanted in the first place).

Plan12

So, that's a very basic Planning application. Going on from here, you would define business rules so that super-users can allocate data down and roll it up the various hierarchies, and you can develop more complex workflow to model the real budget process in your organization. Many of the tools I've used have been upgraded in EPM 11.1 so that dimensions and calculations are handled in a single, separate application that goes across multiple EPM Suite applications, and if I get time over the next few weeks I'll take a look at those to. But for now, this is a simple Planning application that shows off some of the key features of the tool.