Hyperion Planning

Getting Groovy with the PBCS REST API

For many years, developers have had access to a variety of Essbase API’s that allowed them to write their own programs to automate and interact with their Essbase environments. Hyperion Planning, on the other hand, has had pre-built “utilities”, but it never had anything approaching a true API. With the release of Oracle Planning and Budgeting Cloud Service (PBCS), we now have access to the PBCS REST API. So why is this important?

Automation capabilities affect software adoption (aka sales for Oracle). When you think about it, PBCS offers some truly amazing benefits. It’s cost-effective compared to on-premises environments. It’s faster than many on-premises environments. Administrators don’t have to worry about upgrades or maintaining complex infrastructure. PBCS gets new features long before on-premises. PBCS practically sells itself, right? If PBCS is cheaper, better, faster and easier than on-prem, what could possibly make an organization hold on to their on-prem environment?

For many, it’s the thought of having to rebuild the automation and integration that has been built up around their on-prem applications over the years. Many of the tools and techniques for automating an on-prem environment will not work with PBCS. But while the idea of tearing out years of work related to data integration and application automation can be daunting, it is doable. Let’s look at some options.

Automating PBCS

The primary tool used to automate PBCS is aptly called the EPM Automate Utility. This command line utility allows admins to import and export data and metadata, refresh apps, run business rules, etc. It also allows administrators to upload and download artifacts to the PBCS repository (think automated LCM). The EPM Automate Utility has been discussed extensively in other blogs. It’s well documented and easy to use (albeit somewhat limited). We are going to cover something much more interesting.

RESTing in the Cloud

Oracle’s recent cloud offerings are designed to be RESTful. This means that they conform to a REST (representational state transfer) architectural style. More importantly, it means that apps in Oracle’s cloud are accessible with a REST API. As a matter of fact, the EPM Automate Utility was built on top of the REST API for PBCS.

05_PBCS_Automation

So why would a developer choose to build a program in Groovy, Perl or PowerShell if they could simply create a batch file that calls the EPM Automate Utility? Because, like all utilities, the EPM Automate Utility has a limited set of commands and invocation methods.  The PBCS REST API opens up possibilities for creative and elaborate automation and integration, using many different languages.

Let’s Build an Example

There are an infinite number of ways developers can invoke and use the PBCS REST API. We are going to build a simple example that uses Groovy to add a Product to the Vision application in PBCS. Before we get started, this example assumes:

Please don’t be too concerned with that last point. I didn’t know what JSON was before I started working with the REST API for PBCS. It’s basically a data structure for passing lists and arrays between web apps.

Step 1 – Download the JSON Jar File

In order to leverage JSON from within Groovy, developers will need the java-json.jar file. This can be downloaded from a variety of locations. It should be placed in the Groovy library. Mine is here:

C:\Program Files (x86)\Groovy\Groovy-2.4.6\lib

Step 2: Get Familiar with the Common Helper Functions

Oracle provides us with a set of Common Helper Functions for Java, Groovy and cURL. This is nice, because they provide a good head start when using the PBCS REST API. Unfortunately, there are defects in the Groovy samples. For example, one of the functions is supposed to return error details, but uses an incorrect property:

15_defect

Another function omits an important slash. This causes the function to return html/text content instead of json/application content. This was fairly confusing to a new REST API developer!

16_defect

I would personally like to see some comments added to these samples. With all of that said, they are extremely helpful when getting started with the PBCS REST API, and are definitely worth review.

Step 3: Start Coding

Let’s get started by opening the GroovyConsole. The settings below will enhance your Groovy experience:

  • <View>, <Show Script in Output> (Unselect this option as it clutters up your output.)
  • <View>, <Auto Clear Output on Run> (Select this so you only see your latest output.)
  • <Script>, <Allow Interruption> (Enable this so you can cancel scripts that go south . . . )

The settings above are “sticky”, so developers will only have to set them once.

To begin, we’ll need to import two libraries:

  • json.JSONObject
  • json.JsonSlurper

The JSONObject library will allow the script to transmit data in a JSON format. The JsonSlurper library (included when you install Groovy) will allow the script to parse JSON data. Type the code below into the GroovyConsole (or copy/paste from here).

10_Import_Libraries

Press the Execute Groovy Script button highlighted above. Ensure that the completion notice is successful. If the notice states anything other than “Execution complete. Result was null.” there is a good chance that the java-json.jar file was not extracted into the correct location, or the GroovyConsole was not restarted.

Next, we’ll add some variables that identify our user and PBCS instance:

12_Variables

Be sure to update the URL, domain, user ID and password for PBCS (redacted above). This example will be using the Vision sample application. If using a different application, be sure to update the app name.

Step 4: Encode Your User Credentials

The PBCS REST API expects credentials to be sent in the following format: identitydomain.userID:password. In addition, authorization information is sent in an encoded format. The code below accomplishes this.

14_Authorization

Step 5: Get Some Help from Oracle

Next, we will borrow several bits of sample code from the Common Helper Functions for Groovy. The two functions below read input from our REST requests and slurp it into JSON structures. This sounds complex, however it’s really just reading a long string and placing the data into a more usable format.

20_Fetch_Status

Another important bit of borrowed code is the executeRequest function (also included in the Common Helper Functions for Groovy). I have made some slight modifications to this code to make it more readable while adding some comments. This function calls the two “fetch” functions above, and is responsible for assembling and executing our REST “request”.

25_REST_Request

Step 6: Your Wish is REST’s Command

At this point, we have three functions, all geared towards asking the PBCS REST API to handle a request. Now it’s time to actually construct a request and execute it. We will do this by building a function called addMember. We are going to add a Product to the Vision PBCS application. It is important to note that the parent to which we are adding this member must be enabled for dynamic children. We are going to add our new Product to the parent P_TP3.

30_Enable_for_Dynamic

I wrote the function below to add members to a dimension. For demonstration purposes, we are only adding the required properties (parent and member name). In a “real” application, we would include more properties and they would vary depending on the type of dimension being addressed.

40_add_member

In the end, a REST request needs four things:

  • A URL
  • A Request Type (“GET”, “PUT”, “POST”, “DELETE”)
  • A Payload (usually a JSON data structure)
  • A Content Type

The function above simply assembles these four items and passes them to the executeRequest function.

We call the addMember function as follows (passing the dimension, parent and member name):

50_Add_Member

Step 7: Test the Code!

Before we start our test, let’s look at the Product dimension in the Vision app. Here we see that our parent member P_TP3 has four children.

60_Before_Code

Our function should add a new child called P_999. Let’s run our script and see what happens! Press the Execute Groovy Script button.

65_Run_Script

Our script output says that the member was added to PBCS. Let’s look in Planning and make sure.

70_Mbr_Added

What happens if we try to add the member again?

75_Already_There

As expected, PBCS won’t let us add a member twice. If you don’t receive the error details above, you probably didn’t fix the defects I showed you with the sample code.

Summary

This was a very simple demonstration of the PBCS REST API, but there are some complex use cases for this type of automation. Many other sites on the web are RESTful. Imagine a process that builds hierarchies automatically based upon data from other websites. What about a set of functions that automatically update FX rates in your Planning apps? With the PBCS REST API, you can get very, very creative.

Technical Blog Posts

Excuses . . . Excuses . . .

I do my best to publish as least one meaty, technical EPM blog post per month. But that’s just not going to happen this month. I have three excuses of varying quality:

  • Excuse #1:  My current project is in “sprint” mode with some aggressive development timelines.
  • Excuse #2:  I’m working on my presentation for Top Gun 2015 US.
  • Excuse #3:  I have a new toy.

I wouldn’t normally blog about that last excuse (the toy), but I’m going to try to tie it in with Excuse #2.

On September 17th, I’ll be speaking at Infratects’ Top Gun US 2015 conference. I’ll be presenting on Essbase Hybrid Aggregation Mode, and I’m very excited about the opportunity.

Top Gun US 2015 BannerI have two rules for these types of presentations:

  • Rule #1: Show a live demo of something really interesting.
  • Rule #2: Have some “giveaways” for people who ask questions.

Because I needed some “giveaways”, and because Essbase databases are typically referred to as “cubes”, I obviously had to go and buy a MakerGear M2 3D Printer kit and make some 3D printed “Gear Cubes”. I had no choice, really . . . so if you attend my presentation and ask an engaging question, you could be the proud new owner of one of these:

GearCube_SmallTop Gun US 2015 has some amazing speakers and should be a great opportunity to network with Oracle product management and your EPM peers. I hope to see you there!

 

 

DIY Hyperion Planning – Install Hyperion Planning

Some Context . . .

This is the seventh post in a multi-part blog educating readers on how to build a personal “sandbox” environment for Hyperion Planning. Click here to see all nine posts in the series.

So far . . . so good . . .

In the previous posts, we laid the foundation for our Hyperion Planning environment. We completed the following steps:

  • Downloaded the Relevant Files
  • Created a Virtual Server
  • Installed and Configured the Server Operating System
  • Installed and Configured the Oracle RDBMS
  • Created our RDBMS Users and Schemas

Now would be a good time to take a snapshot of your virtual machine.

Installation Time

To begin the Hyperion Planning installation, navigate to the zipped files previously downloaded from e-delivery. Unzip all of the downloaded files. I recommend 7zip. Unzip these files from the host computer.

2-9-2015 12-39-55 AM

You may receive warnings about the location of your unzipped files already having certain files in place. This is because Oracle sometimes packages the same file in multiple zip files, and should not cause concern.

2-9-2015 12-42-23 AM

Simply select “Yes to All” when prompted. After unzipping, your folder structure will look something like this:

2-9-2015 12-45-25 AM

Login to your VM. Navigate to the unzipped files (on your shared folder) and locate the file “installTool.cmd”. Right click on this file and select “Run as Administrator”.

2-9-2015 1-07-31 AM

Select a language.

2-9-2015 1-08-33 AM

Select “OK”.

The EPM System Installer will open.

2-9-2015 1-09-38 AM

Make sure that the prerequisite checks all pass. If any of the four lines above do not have a check box, you must stop the installation, as something is wrong.

Assuming all four lines have a check next to them, select “Next”.

2-9-2015 1-12-58 AM

Select a Middleware Home.

Select “Next”.

2-9-2015 1-16-55 AM

Choose the install type (only one option will be available).

Select “Next”.

2-9-2015 5-59-00 PM

Select the software to install.  Note that we are not really installing Financial Management above.  There is a required component under this product.

Select “Next”.

A .NET warning will appear.

2-9-2015 1-20-06 AM

Select “OK”.

Confirm the components to be installed.

Select “Next” and the installation will begin. This portion will take some time.

2-9-2015 6-23-16 PM

Ensure that everything was installed successfully. Select “Finish”. Take a snapshot before configuring the software.

In the Next Post

With Hyperion Planning installed, it’s time to move on to the configuration. Click here for the next post in this series.

DIY Hyperion Planning – Create the Repositories

Some Context . . .

This is the sixth post in a multi-part blog educating readers on how to build a personal “sandbox” environment for Hyperion Planning. Click here to see all nine posts in the series.

Configure Repositories

Most products in the EPM stack require a relational repository. In the steps below, we will create blank schemas in our Oracle 12c database. Later, these schemas will be populated automatically during product configuration. But for now, all we need are blank schemas, user ID’s and some general settings.

To get started, make sure your VM is up and running.

2-5-2015 2-11-33 PM

Within your VM, open SQL Plus.

2-5-2015 2-13-42 PM

Enter the user ID “system”. Use the password entered during the Oracle 12c installation . . . this is the administrative password.

Paste the following commands into SQL Plus:

/* Database Settings */
ALTER SYSTEM SET OPEN_CURSORS=5000 scope=SPFILE;
ALTER SYSTEM SET PROCESSES=1000 scope=SPFILE;
ALTER SYSTEM SET SESSIONS=2000 scope=SPFILE;
ALTER SYSTEM SET SESSION_CACHED_CURSORS=200 scope=SPFILE;

/* Increase Temp Tablespace Size */
ALTER DATABASE
TEMPFILE 'C:\APP\ORACLE_SA\ORADATA\ORCL\TEMP01.DBF'
DROP INCLUDING DATAFILES;

ALTER TABLESPACE TEMP ADD TEMPFILE
'C:\APP\ORACLE_SA\ORADATA\ORCL\TEMP01.DBF' SIZE 2G
AUTOEXTEND ON NEXT 500M MAXSIZE UNLIMITED;

/* Create EAS Repository */
CREATE SMALLFILE TABLESPACE EAS
DATAFILE 'C:\APP\ORACLE_SA\ORADATA\ORCL\EAS_DATA.dat'
SIZE 2G
AUTOEXTEND ON
NEXT 500M;
COMMIT;

CREATE USER EAS IDENTIFIED BY epm_EAS
DEFAULT TABLESPACE EAS TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
GRANT
CREATE ANY SYNONYM
, CREATE CLUSTER
, CREATE INDEXTYPE
, CREATE PROCEDURE
, CREATE SEQUENCE
, CREATE SESSION
, CREATE TABLE
, CREATE TRIGGER
, CREATE TYPE
, CREATE VIEW
, DROP ANY SYNONYM
, UNLIMITED TABLESPACE
TO EAS;

/* Create Shared Services Repository */
CREATE SMALLFILE TABLESPACE SS
DATAFILE 'C:\APP\ORACLE_SA\ORADATA\ORCL\SS_DATA.dat'
SIZE 2G
AUTOEXTEND ON
NEXT 500M;
COMMIT;

CREATE USER SS IDENTIFIED BY epm_SS
DEFAULT TABLESPACE SS TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
GRANT
CREATE ANY SYNONYM
, CREATE CLUSTER
, CREATE INDEXTYPE
, CREATE PROCEDURE
, CREATE SEQUENCE
, CREATE SESSION
, CREATE TABLE
, CREATE TRIGGER
, CREATE TYPE
, CREATE VIEW
, DROP ANY SYNONYM
, UNLIMITED TABLESPACE
TO SS;

/* Create EPMA Repository */
CREATE SMALLFILE TABLESPACE EPMA
DATAFILE 'C:\APP\ORACLE_SA\ORADATA\ORCL\EPMA_DATA.dat'
SIZE 2G
AUTOEXTEND ON
NEXT 500M;
COMMIT;

CREATE USER EPMA IDENTIFIED BY epm_EPMA
DEFAULT TABLESPACE EPMA TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
GRANT
CREATE ANY SYNONYM
, CREATE CLUSTER
, CREATE INDEXTYPE
, CREATE PROCEDURE
, CREATE SEQUENCE
, CREATE SESSION
, CREATE TABLE
, CREATE TRIGGER
, CREATE TYPE
, CREATE VIEW
, DROP ANY SYNONYM
, UNLIMITED TABLESPACE
TO EPMA;

/* Create Planning Repository */
CREATE SMALLFILE TABLESPACE PLANSYS
DATAFILE 'C:\APP\ORACLE_SA\ORADATA\ORCL\PLANSYS_DATA.dat'
SIZE 2G
AUTOEXTEND ON
NEXT 500M;
COMMIT;

CREATE USER PLANSYS IDENTIFIED BY epm_PLANSYS
DEFAULT TABLESPACE PLANSYS TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
GRANT
CREATE ANY SYNONYM
, CREATE CLUSTER
, CREATE INDEXTYPE
, CREATE PROCEDURE
, CREATE SEQUENCE
, CREATE SESSION
, CREATE TABLE
, CREATE TRIGGER
, CREATE TYPE
, CREATE VIEW
, DROP ANY SYNONYM
, UNLIMITED TABLESPACE
TO PLANSYS;

/* Create Planning App Repository */
CREATE SMALLFILE TABLESPACE PLANAPP1
DATAFILE 'C:\APP\ORACLE_SA\ORADATA\ORCL\PLANAPP1_DATA.dat'
SIZE 2G
AUTOEXTEND ON
NEXT 500M;
COMMIT;

CREATE USER PLANAPP1 IDENTIFIED BY epm_PLANAPP1
DEFAULT TABLESPACE PLANAPP1 TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
GRANT
CREATE ANY SYNONYM
, CREATE CLUSTER
, CREATE INDEXTYPE
, CREATE PROCEDURE
, CREATE SEQUENCE
, CREATE SESSION
, CREATE TABLE
, CREATE TRIGGER
, CREATE TYPE
, CREATE VIEW
, DROP ANY SYNONYM
, UNLIMITED TABLESPACE
TO PLANAPP1;

/* Create Calc Manager Repository */
CREATE SMALLFILE TABLESPACE CALC
DATAFILE 'C:\APP\ORACLE_SA\ORADATA\ORCL\CALC_DATA.dat'
SIZE 2G
AUTOEXTEND ON
NEXT 500M;
COMMIT;

CREATE USER CALC IDENTIFIED BY epm_CALC
DEFAULT TABLESPACE CALC TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
GRANT
CREATE ANY SYNONYM
, CREATE CLUSTER
, CREATE INDEXTYPE
, CREATE PROCEDURE
, CREATE SEQUENCE
, CREATE SESSION
, CREATE TABLE
, CREATE TRIGGER
, CREATE TYPE
, CREATE VIEW
, DROP ANY SYNONYM
, UNLIMITED TABLESPACE
TO CALC;

/* Create Reporting and Analysis Repository */
CREATE SMALLFILE TABLESPACE BIPLUS
DATAFILE 'C:\APP\ORACLE_SA\ORADATA\ORCL\BIPLUS_DATA.dat'
SIZE 2G
AUTOEXTEND ON
NEXT 500M;
COMMIT;

CREATE USER BIPLUS IDENTIFIED BY epm_BIPLUS
DEFAULT TABLESPACE BIPLUS TEMPORARY TABLESPACE TEMP ACCOUNT UNLOCK;
GRANT
CREATE ANY SYNONYM
, CREATE CLUSTER
, CREATE INDEXTYPE
, CREATE PROCEDURE
, CREATE SEQUENCE
, CREATE SESSION
, CREATE TABLE
, CREATE TRIGGER
, CREATE TYPE
, CREATE VIEW
, DROP ANY SYNONYM
, UNLIMITED TABLESPACE
TO BIPLUS;

The table below includes a summary of the repositories created in the SQL above.

Schema Description User ID Password
SS Shared Services SS epm_SS
EPMA Enterprise Performance Management Architect EPMA epm_EPMA
EAS Essbase Administration Services EAS epm_EAS
PLANSYS Planning System Repository PLANSYS epm_PLANSYS
PLANAPP1 Planning Application Repository PLANAPP1 epm_PLANAPP1
CALC Calculation Manager CALC epm_CALC
BIPLUS Financial Reporting and Web Analysis BIPLUS epm_BIPLUS

The following screenshot illustrates the creation of the EPMA repository and user:

2-5-2015 3-00-55 PM

In the Next Post

Now that the application schemas and user ID’s have been created, we are finally ready to install Hyperion Planning and the related EPM products!!! Click here for the next post in the series.

DIY Hyperion Planning – Install Oracle RDBMS

Some Context . . .

This is the fifth post in a multi-part blog educating readers on how to build a personal “sandbox” environment for Hyperion Planning. Click here to see all nine posts in the series.

Installing the Oracle Database

Although Hyperion Planning stores the majority of its data in Essbase, most of the products in the EPM stack have relational repositories. For this reason, a relational database is required. In this example, we will use Oracle’s 12c database.

Shared Folders

Before we can install any software on our VM, we need to ensure that our server can see files stored on our host (because we downloaded all of the software on our host and there’s no point in storing these files on the VM as well). VMware Workstation has the ability to create “Shared” folders that show up as mapped drives on the VM. This makes it easy to access files on the host from the VM.

From VMware Workstation, right click on the server.

2-13-2015 9-32-42 AM

Select “Settings”, then select the “Options” tab.

Select the “Shared Folders” setting.

Select the “Always Enabled” radio button. Check the box to map as a network drive.

Select “Add”. The following wizard will be displayed:

2-3-2015 9-21-56 PM

Select “Next”.

2-3-2015 9-22-42 PM

Browse to a directory. Make sure this directory contains the software downloaded from the second post in this series. (Note – you can map an entire drive if you want.) Provide a name for the shared folder.

Select “Next”.

2-3-2015 9-24-28 PM

Select the check box to enable the share. Select “Finish”.

Select “OK”.

If your virtual server isn’t already running, start it.  Check to ensure you can access your host from the virtual machine in File Explorer.

2-3-2015 9-32-21 PM

Install Oracle 12c

In the second post in this series, we downloaded the following files from edelivery:

File Contents
V38894-01 Part 1 of 2 Oracle Database 12c Release 1 (12.1.0.1.0) for Microsoft Windows x64 (64-bit) (Part 1 of 2)
V38894-01 Part 2 of 2 Oracle Database 12c Release 1 (12.1.0.1.0) for Microsoft Windows x64 (64-bit) (Part 2 of 2)

 

Unzip these files into a single directory on your host.

Make sure these files are available under the directory you shared in the steps above.

After logging into your virtual server, open File Explorer. Browse to the shared folder in “Network locations”.

Make sure you can access the Oracle 12c software that was previously unzipped on your host.

Open the “database” folder.

Right-click on “setup” and select “Run as administrator”. The Oracle Universal Installer will open.

2-4-2015 7-49-46 PM

Enter your Oracle support contact information if desired. This is not required. Select “Next”.

2-4-2015 7-51-56 PM

Enter Oracle Support credentials to download software or updates, or skip software updates.

Select “Next”.

2-4-2015 7-53-51 PM

Select “Create and configure a database”. Select “Next”.

2-4-2015 7-55-08 PM

Select “Desktop class”. Select “Next”.

2-4-2015 7-58-15 PM

Select “Create New Windows User”. Enter a user ID and password. Write these down.

2-9-2015 5-16-03 PM

Accept the default file locations.

Select the database edition.

Use the “AL32UTF8” Character set.

Enter an admin password.

DO NOT CREATE AS A CONTAINER DATABASE!!!  Please make sure this check box is not selected.

2-4-2015 8-06-52 PMSelect “Next”. Installation will begin.

The installer will check prerequisites and then present a summary of selected options.

2-9-2015 5-17-16 PM

Select “Install”.  This part takes a while.  Eventually the screen below will be displayed.

2-16-2015 4-05-15 PM

Select “OK”, then “Close”.

Update Oracle Networking Files

There are three key files that must be updated, called “tnsnames.ora”, “listener.ora” and “sqlnet.ora”.  These files are located in the following directory:

C:\app\Oracle_sa\product\12.1.0\dbhome_1\NETWORK\ADMIN

Edit the “listener.ora” file.  Update the HOST with the static IP address you assigned to the network adapter.

2-16-2015 5-37-33 PM

Save the “listener.ora” file.

Edit the “tnsnames.ora” file.  Update the HOST with the static IP address you assigned to the network adapter.

2-16-2015 5-38-09 PM

Note that the IP address is updated in two locations above.

Save the “tnsnames.ora” file.

Edit the “sqlnet.ora” file.  Add the line circled below.

2-16-2015 6-03-38 PM

Save the “sqlnet.ora” file.

Shut down your VM and take a snapshot.

In the Next Post

With the relational database installed, it’s time to create the application repositories. Click here for the next post in the series.

DIY Hyperion Planning – Create a Virtual Server

Some Context . . .

This is the fourth post in a multi-part blog educating readers on how to build a personal “sandbox” environment for Hyperion Planning. Click here to see all nine posts in the series.

Creating a Virtual Machine

Now that VMware Workstation has been installed, the fun begins. The following steps will create a virtual server that runs on your host. In my case, the host is my laptop. Make sure you have your server operating system software available, along with any required license key.

To get started, launch VMware Workstation.

0126

Select “Create a New Virtual Machine”.

0125

Create a “Typical” VM. Select “Next”.

0124

Tell VMware where the Windows Server installation media is located. You can point to either a drive, or an ISO file. I’m using an ISO file above. Select “Next”.

0122

Select the version of Windows you are using. Enter the product key, user ID and password. This is the user ID and password that you will use to log into Windows Server 2012. Select “Next”.

 

2-13-2015 8-23-10 AM

Enter a name for the virtual machine. This is not the actual “computer name” in Windows, but rather the name of the VM within VMware Workstation. I tend to use the same name from my VM and Windows computer name.

Provide a location for the files. I recommend creating a specific directory for each VM as many files are created. Having them all in a single directory makes it easier to move them around. Select “Next”.

0028

Give your VM somewhere around 70-100GB. You can use less space if you don’t intend on loading a lot of data into Essbase.

Make sure to select the option to split the VM files into multiple files. This will simplify moving these files at a later date. Select “Next”.

2-13-2015 8-23-59 AM

Review your VM settings. Be especially aware of where you are placing the VM files as these can take significant space.

Some of these settings will be updated later. Select “Finish”.

VMware will begin installing Windows Server 2012 R2.

0025

The install takes a bit. Windows Server will eventually restart.

0023

Your server operating system is now installed on your VM, however there are some remaining configuration steps that are still required.

Changing the Server Name

After logging back into your virtual server, Server Manager should be displayed. Select the “Local Server” tab.

0021

Click on the server name (mine is “WIN-LPSIVO2KTLS” above, however yours will be different).

0020

Press the “Change” button, and provide a name for the virtual server.

2-13-2015 8-40-10 AM

Select “OK”. After being prompted to restart, select “OK”. Close the System Properties window and select “Restart Now”.

Run Windows Update (Optional)

Navigate to Control Panel.  Select “System and Security”.  Under “Windows Update”, select “Check for Updates”.

0018

Select “Install Updates”. Get some coffee . . . this takes a while.

0017

Select “Restart Now”.

Firewalls

Firewalls can complicate the installation and configuration of certain EPM products. If you use your VM’s intermittently, you may consider turning off the firewall on your VM’s operating system. Please note that this would likely not be appropriate for a “real” environment. To turn off the Windows firewall on your VM, launch the Server Manager dashboard. Select “Local Server”.

2-13-2015 8-47-59 AM

Click the “Public: On” link.

Select “Turn Windows Firewall on or off”. Turn off the firewall.

2-4-2015 6-06-42 PM

Select “OK”.

Select “Finish”.

Assign Static IP Addresses

Navigate to Control Panel.

2-16-2015 1-01-31 AM

Select “Network and Internet”.

2-16-2015 1-02-46 AM

Select “Network and Sharing Center”.

2-16-2015 5-33-45 PM

Select “Change Adapter Settings”.

2-16-2015 5-34-25 PM

Right-click on the network adapter.  Select “Properties”.

Double-click on “Internet Protocol Version 4 (TCP/IPv4)”.

2-16-2015 5-35-02 PM

Assign a “non-routable” IP address (like the one I used above).

Select “OK”, then select “OK” again.

Update the HOSTS File

Edit the hosts file located in:

C:\Windows\System32\drivers\etc

2-16-2015 5-36-00 PM

Add the line circled above, using the static IP address you assigned to your network adapter. Make sure to use the name of your server.

Disable UAC

Before installing Hyperion Planning, UAC (User Account Control) must be deactivated. To do this, open a command prompt. Press the Windows Key then “X”.

2-4-2015 7-26-43 PM

Select “Command Prompt (Admin)”.

Type “regedit” in the command prompt.

Navigate to “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system”.

2-4-2015 7-30-58 PM

Select the “system” member above.

Right-click the DWORD “EnableLUA”. Select “Modify”.

2-4-2015 7-32-39 PM

Change the data value from 1 to 0. Select “OK”.

Restart the virtual server.

Miscellaneous VM Settings

Before going too far, now may be a good time to increase the memory and processors dedicated to the VM. I recommend 12GB of RAM for a “compact deployment” and 20GB for a regular deployment. I also start with 4 processors. These settings can be changed later on, so don’t worry too much about getting them exactly “right”.

Click on your VM’s memory under “Devices”.

2-13-2015 9-28-36 AM

Increase memory and CPU count as required.

Select “OK”.

Photo Finish

At this point, your operating system is configured! After all of this work, it’s a good idea to take a snapshot in VMware Workstation. In the event that something goes wrong later in the installation, developers can revert to a snapshot so they aren’t starting over from scratch.

The ability to revert to a snapshot is the most incredibly awesome feature of any virtualization software. It allows developers to try things, make mistakes, and then revert to an old snapshot. It’s like a free “do-over”. But it only works if you actually take the snapshot, so take snapshots often. And be aware that they do take disk space.

Right-click on the server name in VMware Workstation and select “Snapshot”, then “Take Snapshot”.

2-13-2015 9-30-48 AM

Take notes regarding the work done to date.

Select “Take Snapshot”.

Restart the VM.

In the Next Post

With the operating system installed, it’s time to install and configure the relational database. Click here for the next post in the series.

DIY Hyperion Planning – Install VMware Workstation

Some Context . . .

This is the third post in a multi-part blog educating readers on how to build a personal “sandbox” environment for Hyperion Planning. Click here to see all nine posts in the series.

Installing VMware Workstation

Before we can install Hyperion Planning, we need to create our virtual server. The first step is to install our virtualization software. In this example, we will be using VMware Workstation 11. Installing VMware Workstation is a fairly straightforward process. Start by double-clicking the VMware Workstation executable.

0139

Select “Next”.

0137

Accept the license agreement.

0136

Select “Typical” installation.

0135

Select the installation location. Select “Next”.

0134

Determine whether VMware Workstation checks for updates. Select “Next”.

0133

Determine whether usage data gets sent to VMware. Select “Next”.

0132

Determine which shortcuts get created. Select “Next”.

0131

Select “Continue” to begin the installation.

0129

Installation is in progress . . .

0128

Enter the license key.

0127

Success!  Select “Finish”.

In the Next Post

With VMware Workstation installed, it’s time to create a virtual server. Click here for the next post in the series.

DIY Hyperion Planning – Ingredient List

Some Context . . .

This is the second post in a multi-part blog educating readers on how to build a personal “sandbox” environment for Hyperion Planning. Click here to see all nine posts in the series. Please note that the contents of this post are not appropriate for building production environments. Please be sure to engage a qualified EPM Infrastructure consultant for any “real” environments.

Also, note that this post does not cover Oracle’s “Rapid Deployment” option for Hyperion Planning. Because the Rapid Deployment option excludes certain products and does not really teach the reader about Hyperion Planning’s infrastructure, this topic will not be addressed.

Decisions . . . Decisions . . .

Before building your very own Hyperion Planning environment, some upfront planning is required. The following key decisions will need to be made. Think of these as the main ingredients in your Hyperion Planning recipe:

  • What kind of hardware will be used?
  • What kind of virtualization software will be used?
  • What operating system will be used?
  • What relational database will be used?

There are many, many options regarding the questions above. Let’s explore these a bit.

Hardware

Because I run demos at client sites and conferences, I prefer to host my Hyperion Planning environment on my laptop. But not just any old laptop will do . . . you’ll want something that’s “workstation” quality. The two best options currently available are Lenovo’s “W” and Dell’s “Precision” lines of laptops. The following features are critical:

  • Quad-Core Processor
  • 16GB of RAM (at least . . . I prefer 32GB)
  • 500GB SSD

Could you run Hyperion Planning on something less? Maybe, but it will take a very long time to start, and it will perform poorly once it’s running. Could you use a desktop computer? Absolutely – the same hardware requirements apply, but it’s not portable. Could you use cloud infrastructure like Amazon Web Services? Yes – you’ll just be paying by the hour, and will be limited by your current location’s available bandwidth. In summary, make sure you have beefy enough hardware. Installing Hyperion Planning takes a while, and you don’t want to find out at the very end of the process that your installation was successful, but you underestimated your hardware requirements.

For this post, I’ll be using a somewhat old Lenovo W520 with a Core i7 processor, 32GB of RAM and a 1TB Samsung 840 Evo SSD.

Virtualization Software

There are a handful of virtualization options from which to choose. Pick the one you’re most comfortable with. For the purposes of this post, we will be using VMware Workstation 11. Microsoft Hyper-V and Oracle VM VirtualBox will also get the job done.

Operating System

For Hyperion Planning 11.1.2.4, most users will either install Microsoft Windows Server 2012 R2 or some flavor of Linux. Just remember that several products are still not supported on Linux, including DRM, parts of EPMA and Strategic Finance. HFM is not currently supported on Linux unless you have an Exalytics box. For this post, we’ll be using Windows Server 2012 R2.

Database

I have to admit, I really like SQL Server. It’s so easy.  But because many people reading this won’t have access to the software, we will use Oracle Database 12c.

Downloading Oracle Database

The Oracle Database files can be downloaded from e-delivery here. After signing in and accepting the terms, select “Oracle Database” and “Microsoft Windows x64 (64-bit)”. Select “Oracle Database 12c Release 1 (12.1.0.1.0) Media Pack for Microsoft Windows x64 (64-bit)”. The following files are required:

File Contents
V38893-01 Oracle Database 12c Release 1 Client (12.1.0.1.0) for Microsoft Windows x64 (64-bit)
V38894-01 Part 1 of 2 Oracle Database 12c Release 1 (12.1.0.1.0) for Microsoft Windows x64 (64-bit) (Part 1 of 2)
V38894-01 Part 2 of 2 Oracle Database 12c Release 1 (12.1.0.1.0) for Microsoft Windows x64 (64-bit) (Part 2 of 2)

Downloading Hyperion Planning

Within e-delivery, select the menu options “Oracle Enterprise Performance Management System” and “Microsoft Windows x64 (64-bit)”. The following files are required:

File Contents
V74007-01 EPM System Release 11.1.2.4.0 Installation Documents and Readmes
V74025-01 EPM System Release 11.1.2.4.0 for Microsoft Windows (64-bit) Part 1
V74031-01 EPM System Release 11.1.2.4.0 for Microsoft Windows (64-bit) Part 2
V74011-01 EPM System Release 11.1.2.4.0 Part 3
V74037-01 EPM System Release 11.1.2.4.0 for Microsoft Windows (64-bit) Part 4
V74044-01 EPM System Release 11.1.2.4.0 for Microsoft Windows (64-bit) Part 5
V74050-01 EPM System Release 11.1.2.4.0 for Microsoft Windows (64-bit) Part 6
V74056-01 EPM System Release 11.1.2.4.0 for Microsoft Windows (64-bit) Part 7
V74016-01 EPM System Release 11.1.2.4.0 Client Installers for Microsoft Windows
V29856-01 Oracle WebLogic Server 11gR1 (10.3.6) Generic and Coherence
V74019-01 EPM System Release 11.1.2.4.0 for Microsoft Windows (64-bit) Oracle HTTP Server

Ready . . . Set . . . Go!

At this point, you have all of your ingredients. You have:

  • Hardware
  • Virtualization Software
  • Operating System
  • Relational Database
  • Oracle Hyperion Software

In the Next Post

With all of the hardware and software ingredients lined up, it’s time to start building. We will begin by installing VMware Workstation 11 on your host. Next, we will create a virtual server and install our operating system and relational database.  Click here for the next post in the series.