div class='cap-left'/>

Planning Tutorial: How to deploy Planning Utilities Standalone!

Monday, July 4, 2016


If you ever had to publish Planning utilities for administrators in e.g. Terminal Server or Citrix, you experienced the difficulties of doing that. Planning utilities can only be executed on the server where Planning is installed. Solutions to provide access to these utilities range from full administrative (RDP) access on the Planning server to PowerShell scripts using remote execution. In my experience non of these solutions are ideal and at best cumbersome to maintain.

Already for a few years I though: "There must be another way".

... and now there is!

The concept

My idea was to create a standalone package that could be placed anywhere similar to a "normal" FAT client... automate the creation of the "package" and make it easy to maintain in case e.g. patches are installed for EPM. In addition I want to prevent the usage of third-party utilities or changing Oracle code. Last, but not least... all input and output files should be provided or created locally (not on the Planning server).

The solution (Draft)

Currently the solution is still in development, but I already wanted to share the solution in the stage as it is currently. The current solution consists of two batch files and a text file:
  • createPackage.cmd - Creates the packages
  • excludelist.txt - Contains a list of file and folder names to exclude. Used by the above script.
  • setHPenv.bat - Replacement of original provided by Oracle

There are a few things to be aware of:
  • Works only on Windows (tested on Windows 2008 R2 and 2012 R2).
  • Tested only in combination with EPM, however it should work for all 11.1.2.x versions.
  • Tested on JDK 1.6 and 1.7.
  • 64-bit only.
  • Current script assumes all files required are located on a single server.
  • When the environment in patched after using this script, the script has to be re-run in order to include all updates files.
  • The location that will run the Planning utilities must have full network access to the EPM servers. In the future I will provide a list of all the ports and protocols required, so you can configure the firewall(s) accordingly.
  • The package created is "connected" to the environment on which the script is run, so run the script on each environment e.g. production, test and development.
  • The package cannot connect to multiple environments (see comment above). 
  • Spaces in folders should be avoided.
  • Obviously totally unsupported by Oracle.
After running the script the following folder structure is created:

During first-run, the folders Diagnostic/logs/planning folders are created and contains all logs produces by the Planning Utilities.

The main steps

  1. Run the createPackage.cmd script on the (or one of the) Planning server(s);
  2. Replace the value of the variable "EPM_PLANNING_INSTANCE" with "%~dp0" for each script in the package root, except for setHPenv.bat;
  3. Zip the whole folder;
  4. On the target system change the JAVA_HOME variable value in the setHPenv.bat to match your environment.

The Scripts




Let's get to work

Copy the files to the Planning server and execute the createPackage.cmd script. A folder should be created with the structure as shown earlier. Make sure to check that the script completed without errors. In case files where missing, identify and copy them manually from another server. Personally I used Notepad++ to replace the variable EPM_PLANNING_INSTANCE value by opening all scripts (except setHPenv.bat) in Notepad++ and use the search / replace in all opened files option. Search for "D:\Oracle\Middleware\user_projects\epmsystem1/Planning/planning1" and replace with "%~dp0". Change the drive-letter in the search field with whatever matches you environment. Finally, ZIP the whole folder and you are done.

In case the target system has no java run-time installed, uncomment the Java copy command in the createPackage.cmd.

On the target, extract the ZIP file in a location of your choice. In case you included the Java run-time, you are done. In case you want to use an already installed Java JRE on the target system, change the variable "JAVA_HOME" in the setHPenv.bat accordingly.

Final notes

So far I have tested and confirmed following scripts to be working:
  • BroadCastMessage.cmd
  • CubeRefresh.cmd
  • ExportSecurity.cmd
  • FormDefUtil.cmd
  • HBRMigrateSecurity.cmd
  • HspUnlockApp.cmd
  • MaintenanceMode.cmd
  • MenuDefUtil.cmd
  • PasswordEncryption.cmd
  • TaskListDefUtil.cmd
  • UpdateUsers.cmd
  • CalcMgrCmdLineLauncher.cmd
  • HBRExport.cmd (only for EPM versions that still have Business Rules)
As soon time allows, I will confirm all other utilities. Please be aware that this solution is not supported by Oracle (or by me for that matter). The solution is provided as is, and I take no responsibility whatsoever (see my blog disclaimer). Feel free to test the solution and provide me your comments and/or suggestions.



  1. Updated this post so it now supports CalcMgrCmdLineLauncher.cmd.

  2. Hi Christian, great work indeed!

    i'm wondering is there any way of creating dynamic business rules (which includes lots of templates), deploying remotely then executing it.

    as far as i know, HBRExport utility allows us to export the BR; however there's no such utility which allows me to import rules, am i right?

    Do you have any recommendations?