Wednesday, July 29, 2020

// // 2 comments

Automation of 'Maintain Application Folder' System Maintenance Task

Automation of 'Maintain ODI Session Data' System Maintenance Task

If you have not already gone through the above articles, I would suggest you read them first to get a comprehensive understanding of all the Hyperion Financial Data Quality Management (FDMEE) System Maintenance Tasks.

Note:
  • The demonstrating Hyperion environment has the 'Windows Server 2012 R2 Standard' operating system. 
  • The demonstrating Hyperion environment has 'Oracle database server 12.2.0.2 (18c)' as backend database. 
  • This post has been written and associated activities have been demonstrated on Oracle FDMEE version 11.1.2.4.220.
  • There is no outage required on the FDMEE application to execute these scripts. But it is advisable not to run any data loads during the activity.
  • Don't forget to take complete FDMEE schema backup before attempting to run these scripts. 
  • Different paths and folder names mentioned in this post may slightly vary for different Hyperion setups but at large it should be the same.  

Command syntax of FDMEE batch utility executescript.bat:
----------------------------------------------------------------------------------
executescript <username> <password> "<script name>" "<parameters>" <execution mode>

Where:
  • <username>: is your FDMEE user running the script
  • <password>: can be either the hard-coded password or a file with encoded password (-f:filename)
  • <script name>: is the name of the script registered in Script Registration page (not the python script filename). You find the script name here: Navigate-Administer-Data Management-Setup tab-Script Registration
  • <parameters>: are the script parameters in the form "Display Name=Parameter Value"
  • <execution mode>: is either SYNC (synchronous) or ASYNC (asynchronous). SYNC—Process runs immediately and control returns when process completes. ASYNC—When the ODI job is submitted, control returns. The load process continues to execute in ODI.
Now the command syntax in more detailed form will look like below:

executescript <username> <password> "<script name>" "<parameterdisplay1=value1>" "<parameterdisplay2=value2>" <SYNC | ASYNC>

If you are going to use an encrypted password (which is the recommended best practice), following will be the command syntax:

executescript <username> <password | -f:password.txt> "<script name>" "<parameterdisplay1=value1>" "<parameterdisplay2=value2>" <SYNC | ASYNC>

You will find the configuration steps for password encryption in the FDMEE admin guide as shown below:

Automation of 'Maintain Application Folder' System Maintenance Task

You need to ensure that your encrypted password.txt file is placed in the location defined in Navigate-Administer-Data Management-Setup tab-System Settings-Encrypted Password Folder.

Automating 'Maintain Application Folder' System Maintenance Task:
-------------------------------------------------------------------------------------------------
In this post, we will see how to automate 'Maintain Application Folder' System Maintenance Task. I suggest you to first read this post FDMEE: System Maintenance Tasks: Maintain Application Folder for theoretical understanding, manual implementation, and post-execution activities of 'Maintain Application Folder' System Maintenance Task.

When you execute ‘Maintain Application Folder’ purge script manually from Data Management console, it seeks the following input parameter:
  • Target Application
  • Days to keep Inbox directory
  • Days to keep Outbox directory
  • Days to keep Data directory
To run ‘Maintain Application Folder’ purge script using executescript.bat command-line utility below is the command syntax:

executescript username password "MaintainApplicationFolder" "Target Application=EnterYourTargetAppName" "Days to keep Inbox directory=EnterDaysInNumber" "Days to keep Outbox directory=EnterDaysInNumber" "Days to keep Data directory=EnterDaysInNumber" SYNC

Description:
  • TargetAppName should be entered the same as what you get in the output by running below query against FDMEE schema:
          SELECT APPLICATION_NAME FROM AIF_TARGET_APPLICATIONS; 

Automation of 'Maintain Application Folder' System Maintenance Task

Above query-output is same as what you see in Data Management console Target Applications list values as shown below:

Automation of 'Maintain Application Folder' System Maintenance Task
  • You need to enter the number of days you want to retain files/folders for, in FDMEE Inbox, Outbox and Data folders.
Suppose using FDMEE Admin user, you want to run 'Maintain Application Folder' purge script for 2 Target applications name TargetApp1, TargetApp and for 90 days (3 months) retention period i.e. you want to delete all the files/folders in FDMEE Inbox, Outbox and Data folders keeping only last 90 days (3 months) data. 

In order to achieve the above goal, create a batch script name 'MaintainApplicationFolder.bat' under folder E:\Admin\scripts having the following content: 

MaintainApplicationFolder.bat:
--------------------------------------------------
@echo off

REM Set the value for the variables 
set "username=admin"
set "password=YourAdminPassword"
set "DaystokeepInboxdirectory=90"
set "DaystokeepOutboxdirectory=90"
set "DaystokeepDatadirectory=90"
set "logfile=E:\Admin\scripts\MaintainApplicationFolder.log"

REM Clear the content of existing logfile
rem.> %logfile%

REM Navigate the executescript.bat utility folder
cd "E:\apps\OracleEPM\Middleware\user_projects\epmsystem_fdm\FinancialDataQuality"

REM Run executescript to perform "MaintainApplicationFolder" for a set of 2 Target Applications and 90 days to keep the application directories

for %%f in (TargetApp1 TargetApp2) do (
   echo call executescript %username% %password% "MaintainApplicationFolder" "Target Application=%%f" "Days to keep Inbox directory=%DaystokeepInboxdirectory%" "Days to keep Outbox directory=%DaystokeepOutboxdirectory%" "Days to keep Data directory=%DaystokeepDatadirectory%" SYNC
   call executescript %username% %password% "MaintainApplicationFolder" "Target Application=%%f" "Days to keep Inbox directory=%DaystokeepInboxdirectory%" "Days to keep Outbox directory=%DaystokeepOutboxdirectory%" "Days to keep Data directory=%DaystokeepDatadirectory%" SYNC
   
echo ------------------------------------------------------------------------------
echo ------------------------------------------------------------------------------
) >>%logfile%

cd E:\Admin\scripts

Change the paths and variables mentioned in the script as per your requirement and FDMEE application setup.

You can put your Target Application names in the segment (TargetApp1 TargetApp2 ) separated by a single space. 

Now login to your FDMEE server, open an Administrator Command prompt and run MaintainApplicationFolder.bat.

After completion of the script your MaintainApplicationFolder.log will be generated in below format:

Automation of 'Maintain Application Folder' System Maintenance Task

To verify whether your process IDs have successfully completed or not, you can navigate to Process Details page (In Data Management console, click on the Process Details link under the Workflow tab—Monitor—Process Details):

Automation of 'Maintain Application Folder' System Maintenance Task

We can see our process IDs have executed successfully. Click on the 'Show' button for a particular Process ID to open the corresponding log file to see more details. Similarly, you can verify other process IDs recorded in the log file for all the Target Applications.

That's all for this post.

I hope this article has helped you.
Your suggestions/feedback are most welcome.
Keep learning and Have a great day!!!
Read More

Thursday, July 23, 2020

// // Leave a Comment

Automation of 'Maintain ODI Session Data' System Maintenance Task

In 'FDMEE System Maintenance Tasks' blog series, we have already covered the following topics :

Manual implementation:

FDMEE: System Maintenance Tasks: Maintain FDMEE Data Tables
FDMEE: System Maintenance Tasks: Maintain ODI Session Data
FDMEE: System Maintenance Tasks: Maintain Application Folder
FDMEE: System Maintenance Tasks: Maintain Process Tables
FDMEE: System Maintenance Tasks: Maintain EBS GL Balances Table

Automation:

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

If you have not already gone through the above articles, I would suggest you read them first to get a comprehensive understanding of all the Hyperion Financial Data Quality Management (FDMEE) System Maintenance Tasks.

Note:
  • The demonstrating Hyperion environment has the 'Windows Server 2012 R2 Standard' operating system. 
  • The demonstrating Hyperion environment has 'Oracle database server 12.2.0.2 (18c)' as backend database. 
  • This post has been written and associated activities have been demonstrated on Oracle FDMEE version 11.1.2.4.220.
  • There is no outage required on the FDMEE application to execute these scripts. But it is advisable not to run any data loads during the activity.
  • Don't forget to take complete FDMEE schema backup before attempting to run these scripts. 
  • Different paths and folder names mentioned in this post may slightly vary for different Hyperion setups but at large it should be the same.  

Command syntax of FDMEE batch utility executescript.bat:
----------------------------------------------------------------------------------
executescript <username> <password> "<script name>" "<parameters>" <execution mode>

Where:
  • <username>: is your FDMEE user running the script
  • <password>: can be either the hard-coded password or a file with encoded password (-f:filename)
  • <script name>: is the name of the script registered in Script Registration page (not the python script filename). You find the script name here: Navigate-Administer-Data Management-Setup tab-Script Registration
  • <parameters>: are the script parameters in the form "Display Name=Parameter Value"
  • <execution mode>: is either SYNC (synchronous) or ASYNC (asynchronous). SYNC—Process runs immediately and control returns when process completes. ASYNC—When the ODI job is submitted, control returns. The load process continues to execute in ODI.
Now the command syntax in more detailed form will look like below:

executescript <username> <password> "<script name>" "<parameterdisplay1=value1>" "<parameterdisplay2=value2>" <SYNC | ASYNC>

If you are going to use an encrypted password (which is the recommended best practice), following will be the command syntax:

executescript <username> <password | -f:password.txt> "<script name>" "<parameterdisplay1=value1>" "<parameterdisplay2=value2>" <SYNC | ASYNC>

You will find the configuration steps for password encryption in the FDMEE admin guide as shown below:

Automation of 'Maintain ODI Session Data' System Maintenance Task

You need to ensure that your encrypted password.txt file is placed in the location defined in Navigate-Administer-Data Management-Setup tab-System Settings-Encrypted Password Folder.

Automating 'Maintain ODI Session Data' System Maintenance Task:
-------------------------------------------------------------------------------------------------
In this post, we will see how to automate 'Maintain ODI Session Data' System Maintenance Task. I suggest you to first read this post FDMEE: System Maintenance Tasks: Maintain ODI Session Data for theoretical understanding, manual implementation, and post-execution activities of 'Maintain ODI Session Data' System Maintenance Task.

When you execute ‘Maintain ODI Session Data’ purge script manually from Data Management console, it seeks one input parameter: Days to keep ODI Sessions

To run ‘Maintain ODI Session Data’ purge script using executescript.bat command-line utility below is the command syntax:

executescript username password "MaintainODISessionData" "Days to keep sessions=EnterDaysInNumber" SYNC

You need to enter the number of days you want to retain data for in ODI tables.

Note: Maintain ODI Session Data scrip takes some time to execute so its advisable not to purge too much in one go.

Suppose using FDMEE Admin user, you want to run 'Maintain ODI Session Data' purge script for 90 days (3 months) i.e. you want to delete all the ODI Sessions details keeping only last 90 days (3 months) details.

In order to achieve the above goal, create a batch script name 'MaintainODISessionData.bat' under folder E:\Admin\scripts having the following content: 

MaintainODISessionData.bat:
--------------------------------------------------
@echo off

REM Set the value for the variables  
set "username=Admin"
set "password=YourAdminPassword"
set "DaysToKeepODISessions=90"
set "logfile=E:\Admin\scripts\MaintainODISessionData.log"

REM Clear the content of existing logfile
rem.> %logfile%

REM Navigate the executescript.bat utility folder
cd "E:\apps\OracleEPM\Middleware\user_projects\epmsystem_fdm\FinancialDataQuality"

REM Run executescript to perform "MaintainODISessionData" for the mentioned days to keep ODI Sessions 


> %logfile% (
echo call executescript %username% %password% "MaintainODISessions" "Days to keep sessions=%DaysToKeepODISessions%" SYNC
call executescript %username% %password% "MaintainODISessions" "Days to keep sessions=%DaysToKeepODISessions%" SYNC
)

cd E:\Admin\scripts

Change the paths and variables mentioned in the script as per your requirement and FDMEE application setup.

Now login to your FDMEE server, open an Administrator Command prompt and run MaintainODISessionData.bat.

After completion of the script your MaintainODISessionData.log will be generated in below format:

Automation of 'Maintain ODI Session Data' System Maintenance Task
To verify whether your process ID has successfully completed or not, you can navigate to Process Details page (In Data Management console, click on the Process Details link under the Workflow tab—Monitor—Process Details):

Automation of 'Maintain ODI Session Data' System Maintenance Task

Click on the 'Show' button against the Process ID to open the corresponding log file to see more details. 

That's all for this post.

I hope this article has helped you.
Your suggestions/feedback are most welcome.
Keep learning and Have a great day!!!
Read More

Monday, July 20, 2020

// // 4 comments

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

For those who are new to my blog, we have already covered all the Oracle Hyperion Financial Data Quality Management (FDMEE) System Maintenance Tasks with the step-by-step process to manually execute them. If you have not already gone through those articles, I would suggest you click on the below links and read them first to get a comprehensive understanding of all the Hyperion Financial Data Quality Management (FDMEE) System Maintenance Tasks.

FDMEE: System Maintenance Tasks: Maintain FDMEE Data Tables
FDMEE: System Maintenance Tasks: Maintain ODI Session Data
FDMEE: System Maintenance Tasks: Maintain Application Folder
FDMEE: System Maintenance Tasks: Maintain Process Tables
FDMEE: System Maintenance Tasks: Maintain EBS GL Balances Table

Running 'FDMEE System Maintenance Tasks' manually for multiple combinations of Target Applications and Categories requires a lot of manual effort causing it to be a tiresome process because for each maintenance task you need to manually select all the combinations of target applications and categories one by one in Data Management (FDMEE) console for a particular set of start and end period. So why not have a script which does all of these tasks for us and make life easier.

But now using below given automated script you no more need to do all these activities manually These automated jobs can be scheduled in Windows Task Scheduler to run at any chosen day/time. Also, these automated scripts don’t require any outage on FDMEE application and run smoothly using only the inbuilt functionality of FDMEE.

Note:
  • The demonstrating Hyperion environment has the 'Windows Server 2012 R2 Standard' operating system. 
  • The demonstrating Hyperion environment has 'Oracle database server 12.2.0.2 (18c)' as backend database. 
  • This post has been written and associated activities have been demonstrated on Oracle FDMEE version 11.1.2.4.220.
  • There is no outage required on the FDMEE application to execute these scripts. But it is advisable not to run any data loads during the activity.
  • Don't forget to take complete FDMEE schema backup before attempting to run these scripts. 
  • Different paths and folder names mentioned in this post may slightly vary for different Hyperion setups but at large it should be the same.  
In this blog series, we are going to learn how can we automate these 'FDMEE System Maintenance Tasks' one-by-one and schedule it via Windows Task Scheduler to run whenever we want to do FDMEE System maintenance activities.

FDMEE batch utility executescript.bat
------------------------------------------------------------
Oracle provides a utility called executescript.bat to run each of these System Maintenance Tasks as well as other custom scripts from the command line. This command-line utility allows us to execute custom scripts either from Windows or Unix/Linux systems. Unfortunately, this topic is not well documented in the FDMEE admin guide.

You will find the executescript.bat (among others) in the folder E:\apps\OracleEPM\Middleware\user_projects\epmsystem_fdm\FinancialDataQuality.

Using utility executescript.bat you can automate all the FDMEE System Maintenance Tasks.

Command syntax of FDMEE batch utility executescript.bat:
----------------------------------------------------------------------------------
executescript <username> <password> "<script name>" "<parameters>" <execution mode>

Where:
  • <username>: is your FDMEE user running the script
  • <password>: can be either the hard-coded password or a file with encoded password (-f:filename)
  • <script name>: is the name of the script registered in Script Registration page (not the python script filename). You find the script name here: Navigate-Administer-Data Management-Setup tab-Script Registration
  • <parameters>: are the script parameters in the form "Display Name=Parameter Value"
  • <execution mode>: is either SYNC (synchronous) or ASYNC (asynchronous). SYNC—Process runs immediately and control returns when process completes. ASYNC—When the ODI job is submitted, control returns. The load process continues to execute in ODI.
Now the command syntax in more detailed form will look like below:

executescript <username> <password> "<script name>" "<parameterdisplay1=value1>" "<parameterdisplay2=value2>" <SYNC | ASYNC>

If you are going to use an encrypted password (which is the recommended best practice), following will be the command syntax:

executescript <username> <password | -f:password.txt> "<script name>" "<parameterdisplay1=value1>" "<parameterdisplay2=value2>" <SYNC | ASYNC>

You will find the configuration steps for password encryption in the FDMEE admin guide as shown below:

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

You need to ensure that your encrypted password.txt file is placed in the location defined in Navigate-Administer-Data Management-Setup tab-System Settings-Encrypted Password Folder.

Automating 'Maintain FDMEE Data Tables' System Maintenance Task:
--------------------------------------------------------------------------------------------
In this post, we will see how to automate 'Maintain FDMEE Data Tables' System Maintenance Task. I suggest you to first read this post FDMEE: System Maintenance Tasks: Maintain FDMEE Data Tables for theoretical understanding, manual implementation, and post-execution activities of 'Maintain FDMEE Data Tables' System Maintenance Task.

When you execute ‘Maintain FDMEE Data Tables’ purge script manually from Data Management console, it seeks the following input parameters:
  • Target Application
  • Start Period
  • End Period
  • Category
To run ‘Maintain FDMEE Data Tables’ purge script using executescript.bat command-line utility below is the command syntax:

executescript username password "MaintainFDMEEDataTables" "Target Application=TargetAppName" "Start Period=YYYY-MM-DD" "End Period=YYYY-MM-DD" "Select Category=CategoryKey" SYNC

Description:
  • TargetAppName should be entered the same as what you get in the output by running below query against FDMEE schema:
          SELECT APPLICATION_NAME FROM AIF_TARGET_APPLICATIONS; 

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

Above query-output is same as what you see in Data Management console Target Applications list values as shown below:

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task
  • Start Period and End Period can be chosen from the values what you get in the output by running below query against FDMEE schema:
          SELECT PERIODDESC, PERIODKEY FROM TPOVPERIOD;

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

Above query-output is same as what you see in Data Management console Period list values as shown below:

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

If you want to quickly check what is the min and max value of period to help you choose your Start Period and End Period, you can run below query against FDMEE schema:

           SELECT MIN(PERIODKEY), MAX(PERIODKEY) FROM TPOVPERIOD; 

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

Note: Start Period and End Period values must be entered in the 'YYYY-MM-DD' format only.
  • In Category segment, you need to enter the 'Category Key (number)' what you get in the output by running below query against FDMEE schema:
          SELECT CATNAME, CATKEY FROM TPOVCATEGORY;

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

Above query-output is same as what you see in Data Management console Category list values as shown below:

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

Most of the time, we need to run 'MaintainFDMEEDataTables' purge script for many combinations of various Target applications and Categories for a selected Start Period and End Period range.

Let's understand the automation script for 'MaintainFDMEEDataTables' with the help of an example.

Suppose using FDMEE Admin user, you want to run 'MaintainFDMEEDataTables' purge script for 4 Target applications name TargetApp1, TargetApp2, TargetApp3, TargetApp4, and 3 Categories keys name CategoryKey1, CategoryKey2, CategoryKey3 for Start Period Oct 2017 to End Period Apr 2018.

In order to achieve the above goal, create a batch script name 'MaintainFDMEEDataTables.bat' under folder E:\Admin\scripts having the following content:

MaintainFDMEEDataTables.bat:
--------------------------------------------------
@echo off

REM Set the value for the variables 
set "username=Admin"
set "password=YourAdminPassword"
set "startperiod=2017-10-01"
set "endperiod=2018-04-01"
set "logfile=E:\Admin\scripts\output.log"

REM Clear the content of existing logfile
rem.> %logfile%

REM Navigate the executescript.bat utility folder
cd "E:\apps\OracleEPM\Middleware\user_projects\epmsystem_fdm\FinancialDataQuality"

REM Run executescript to trigger "MaintainFDMEEDataTables" for all combinations of 4 Target applications and 3 Category Keys for the mentioned Start and End Period range

for %%f in (TargetApp1 TargetApp2 TargetApp3 TargetApp4) do (
    for %%i in (CategoryKey1 CategoryKey2 CategoryKey3) do (
      echo call executescript %username% %password% "MaintainFDMEEDataTables" "Target Application=%%f" "Start Period=%startperiod%" "End Period=%endperiod%" "Select  Category=%%i" SYNC
call executescript %username% %password% "MaintainFDMEEDataTables" "Target Application=%%f" "Start Period=%startperiod%" "End Period=%endperiod%" "Select Category=%%i" SYNC
)
echo ------------------------------------------------------------------------------
echo ------------------------------------------------------------------------------
) >>%logfile%

cd E:\Admin\scripts

Change the paths and variables mentioned in the script as per your requirement and FDMEE application setup.

You can put your Target Application names in the segment (TargetApp1 TargetApp2 TargetApp3 TargetApp4) and Category Keys in (CategoryKey1 CategoryKey2 CategoryKey3) separated by single space. 

Now login to your FDMEE server, open an Administrator Command prompt, and run 'MaintainFDMEEDataTables.bat'.

After completion of the script your output.log will be generated in below format:

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

To verify whether your process IDs 8237, 8238... have successfully completed or not, we can navigate to Process Details page (In Data Management console, click on the Process Details link under the Workflow tab—Monitor—Process Details):

Automation of 'Maintain FDMEE Data Tables' System Maintenance Task

We can see our process IDs 8237, 8238 have executed successfully. Click on the 'Show' button for Process IDs 8237 to open the corresponding log file to see more details. Similarly, you can verify other process IDs recorded in output.log file for various combinations of Target Applications and Categories.

That's all for this post.

I hope this article has helped you.
Your suggestions/feedback are most welcome.
Keep learning and Have a great day!!!
Read More

Wednesday, July 8, 2020

// // Leave a Comment

HFM Patch Set Update 11.1.2.4.209 (Patch 29343616)

In April 2020 CPU (Critical Patch Update) alert, Oracle had released HFM (Hyperion Financial Management) PSU 11.1.2.4.209 (Patch 29343616). You can find the patch details on this link: https://blogs.oracle.com/proactivesupportepm/psu_hfm_11124209

I thought let's upgrade my Hyperion Financial Management (HFM) application from the existing version 11.1.2.4.204 to this latest patch level to be up to date with HFM bug fixes. So let's see how it goes.

Note: The demonstrating Hyperion Financial Management (HFM) environment has the 'Windows Server 2012 R2 Standard' operating system. 

As usual, the first thing to check was the prerequisites. Going through the README document of the patch, we come to know that the following prerequisites patches need to be installed before installing HFM PSU 11.1.2.4.209 (Patch 29343616):

HFM Patch Set Update 11.1.2.4.209 (Patch 29343616)

As I was already having HFM 11.1.2.4.204 version running in my Hyperion environment so I was fully confident that following 2 prerequisites patches must have been already installed on my HFM servers as part of HFM 11.1.2.4.204 (Patch 25192566) patching:
  1. Fusion Middleware (FMW) - WebServices  Patch 13866584
  2. Fusion Middleware (FMW) - WebLogic  Patch 16810628
Why is it so? because these two patches are required to be installed as prerequisite patches even for HFM 11.1.2.4.204 (Patch 25192566) patching. You can check the same on this link: https://blogs.oracle.com/proactivesupportepm/patch-set-update-for-oracle-hyperion-financial-management-11124204-is-available

Let's cross-check from the HFM server itself. 

As Fusion Middleware (FMW) - WebServices  Patch 13866584 is a file-replacement kind of patch, so it will not be registered under home E:\apps\OracleEPM\Middleware\oracle_common. But if you know your last HFM patching date, you can match it with the modification date of the file E:\apps\OracleEPM\Middleware\oracle_common\modules\oracle.webservices_11.1.1\oracle.webservices.standalone.client.jar to confirm the Patch 13866584 applied.

Fusion Middleware (FMW) - WebLogic  Patch 16810628 can be checked using a command as shown below:

HFM Patch Set Update 11.1.2.4.209 (Patch 29343616)

Now coming to the third prerequisite patch Fusion Middleware (FMW) Patch 30378046, its README document suggests:

Ensure the patch for bug 16964825 has already been applied before you proceed with the current patch.

If you remember, Oracle JDeveloper ADF Patch 16964825 is already included in HFM 11.1.2.4.100 installation itself. When upgrading Hyperion environment from 11.1.2.4 to 11.1.2.4.100 one of the prerequisites is to “Install the ADF patch 21240419”. The prerequisite to 21240419 is “patch 16964825(mandatory)”. 

So it must be there on my HFM server. Let's verify with opatch lsinventory in E:\apps\OracleEPM\Middleware\oracle_common that patch 16964825 is already present.

HFM Patch Set Update 11.1.2.4.209 (Patch 29343616)

Now its turn to install Fusion Middleware (FMW) Patch 30378046.

When I ran the OPatch command to install Fusion Middleware (FMW) Patch 30378046, it was throwing the following issue:

HFM Patch Set Update 11.1.2.4.209 (Patch 29343616)

Actually, Patch 30378046 was conflicting with the patch 20326778.  

In such cases Oracle recommendation is:

Obtain a copy of each patch and compare the 'inventory' file or the 'readme' file. These files contain a list of bugs fixed by each patch. Compare the bugs listed. Make sure that the patch being applied has all the bugs mentioned that are fixed in the existing patch.
If all the patches listed in the existing patch are included in the patch being applied you can safely continue the patch.

In some cases, the patch being applied may not contain all the bug fixes that are included with the existing patch. If you do not require the missing patches you can safely continue the new patch installation.

If you do require the missing patches then you should stop the patch installation and log a service request with Oracle Support requesting a "Merge Label Request, MLR" of the existing patch and the patch being applied.

Following the recommendation, I compared the two patches and noticed that following three bugs fixed in EXISTING Patch 20326778, are not included in the NEW Patch 30378046:
  • 17890124: BLR BACKPORT 17776065 TO 11.1.1.7.1: FF25, ALL RTL TEXT IS MISALIGNED FOR DVT HT
  • 18601128: BLR BACKPORT OF BUG 18233049 ON TOP OF 11.1.1.7.1 (BLR #3572140)
  • 18954287: BLR BACKPORT OF BUG 18820382 ON TOP OF 11.1.1.7.1 (BLR #3789756)
But, if you dig deep you will notice that these are BACKPORT Bugs and their sources (17776065, 18233049, 18820382) are included in the new Patch 30378046. So it's safe to move with installing over Patch 20326778. It was also making sense as Patch 30378046 is the latest patch available for JDeveloper ADF and the other Patch 20326778 was outdated by 5 years at least.

I did the same as shown below:

HFM Patch Set Update 11.1.2.4.209 (Patch 29343616)

As you can see OPatch itself will first uninstall the Patch 20326778 and then install the new Patch 30378046. 

For the fourth prerequisite ADF Patch 25113405, it was self-explanatory:

If you are applying this HFM PSU 11.1.2.4.209 Patch 29343616 to version 11.1.2.4.203 or an earlier version, this Financial Management patch requires Oracle Application Development Framework (ADF)  Patch 25113405.

Finally, its time to install the main Hyperion Financial Management PSU 11.1.2.4.209 Patch 29343616.  As all the prerequisites were clear, It got installed successfully without any issue:

HFM Patch Set Update 11.1.2.4.209 (Patch 29343616)

After applying the HFM Patch 29343616, don't forget to execute the sql commands as per your database type mentioned in the README document of HFM PSU 11.1.2.4.209 Patch 29343616

As I have HFM version 11.1.2.4.204 and Oracle Database 18c, so I ran the below commands by logging to HFM schema (Refer the README document of Patch 29343616 for more details):

1- Executed the following sql command to upgrade the schema against the Financial Management database:

<EPM_ORACLE_HOME>\products\FinancialManagement\Server\conf\Oracle_from_11.1.2.4.208_to_11.1.2.4.209_SchemaUpgrade.sql

2- For the 'Importing Applications' feature, executed the following sql commands:

<EPM_ORACLE_HOME>\products\FinancialManagement\Server\conf\Oracle_Create_ImportApp.sql
<EPM_ORACLE_HOME>\products\FinancialManagement\Server\conf\Oracle_Create_InsightDetails.sql

Make sure these sql commands are executed without any error message.

Post Hyperion services restart, all users should clear cached files from their browsers before login to Workspace.

That's all for this post.

I hope this article has helped you. 
Your suggestions/feedback are most welcome.
Keep learning and Have a great day!!!
Read More