Oracle Hyperion Financial Management (HFM) Automation Using Java Heap Analysis Tool (JHAT)

Oracle’s Hyperion Financial Management (HFM) provides a “Task Flow” utility which is helpful in automating common HFM tasks such as data loads, data extracts, consolidations, calculations, etc. However, if you have used Task Flows in HFM Version, you will probably agree that this is not the most user-friendly EPM utility out there.  The initial setup and subsequent administration of these task flows is tedious.

One of its major disadvantages is that the native Task Flow scheduler does not work well. Oracle Support currently has a bug open for this issue, where a scheduled HFM Task Flow skips intermittent instances. Refer to “Doc ID 2425368.1” on Oracle Support for additional details. This issue is a huge concern, because without a fully functional scheduler any level of automation is difficult to achieve.

Java Heap Analysis Tool (JHAT) is a utility that lets you automate HFM tasks. It makes use of Windows batch scripting and the HFM API to achieve this automation. Since JHAT is batch script based, any scheduler like Windows Task Scheduler can be used to automate HFM tasks. This provides more flexibility in scheduling tasks and takes away the need to use the buggy Task Flow scheduler. So, how do you setup and use JHAT? Let’s find out!

Initial Setup

Every standard installation of HFM includes the JHAT utility. You can confirm this by locating the “jhat.bat” file under the “MIDDLEWARE_HOME\EPMSystem11R1\products\FinancialManagement\Server” directory on the server with HFM installation. Before you start using “JHAT,” a “setenv.cmd” file needs to be created, which points the “EPM_ORACLE_INSTANCE_FOR_JHAT” variable to the EPM instance.

Figure 1: A “setenv.cmd” file that points the “EPM_ORACLE_INSTANCE_FOR_JHAT” variable to the EPM instance

Next, edit the “jhat.bat” file, and ensure that the “ENV_SCRIPT” variable points to the correct location for the “setenv.cmd” file you just created.

Figure 2: The “ENV_SCRIPT” variable is pointing to the correct location for the “setenv.cmd” file in the “jhat.bat” file

Bonus tip: It might be worth getting rid of the “pause” command towards the end of the “jhat.bat” as this has caused the program to indefinitely hang when run through a scheduler. See below screenshot where the second-to-last line containing “pause” has been commented out.

Figure 3: Here, the second-to-last line containing “pause” has been commented out

Using JHAT

To use JHAT in a batch script, you must invoke it by providing the required input file parameter:

jhat.bat -I path\taskfile.txt

Here, “taskfile.txt” is a text file that lists HFM API functions in the order of execution. For example, the file below lists the functions needed to load data to the HFM application from a file.

Figure 4: The functions that are needed to load data to the HFM application from a file

The above file will enable JHAT to perform following steps in this order:

  1. Login to HFM

  2. Open connection to HFM application

  3. Load data to HFM application

  4. Close connection to HFM application

  5. Logout

Another parameter that can be used with JHAT is -O which helps writing output to a log file. The syntax for that is here:

jhat.bat -I path\taskfile.txt –O log_path\logfile.log

Do you want to learn more about HFM automation? Contact us here with any questions you may have, and stay tuned for future blogs!

#oracle #BatchScripting #Automation #HFMAPI #TaskFlowUtility #OracleEPMCloud #enterpriseperformancemanagement #EPM #HyperionFinancialManagementHFM #JavaHeapAnalysisToolJHAT #WindowsTaskScheduler