LinkedIn

There are many considerations that must be carefully planned when addressing an upgrade to version 9 or 11, or creating a backup strategy.  Manually moving all the components involved can take days and is extremely error prone.  There is more to it than moving Essbase databases.  Essbase calc scripts, reports, and load rules have to be considered.  Server variables need to be moved.  All the Maxl and EssCmd scripts need to be copied and changed to reflect the new server and security model.  Security filters need to be copied and altered slightly if moving to a new version of Essbase.  All the security users and groups need to be created. As with any endeavor of this capacity, it can be time consuming. The benefits of the improved stability and features far outweigh the efforts. 

Completing this for one server is tough enough.  Imagine if corporate policy dictates that everything has to be done in a QA and/or test environment before it is moved to the new production area.  Now factor in the number of Essbase servers and the fact that the security model might have to be consolidated to one (this occurs when upgrading from anything before 9, to version 9 or 11).  Don’t forget that there is only a very small window for the current production servers to be down.  If 4 Essbase servers exist, this effort might have to occur 12 times! 

Doing the same work 3 times for every server is obviously redundant.  I developed a small .NET application that significantly reduces the work involved.  It virtually eliminates the need for any manual or redundant effort.  .NET was selected because it was the quickest for me to develop the application, but JAVA, Perl, or any other similar development language could be used.  The .NET application accepted the results of the following Maxl display commands.

display application all;
display database all;
display filter row all;
display variable all;
display privilege group all;
alter system load application all;
display partition all advanced;

Maxl scripts were created from the process to

  1. create all the applications and databases
  2. assign all relevant application and database settings
  3. rebuild and update security filters
  4. replicate all server variables

This Maxl can be executed on the destination server to setup the new environment.  Examples of the scripts generated from the .NET application below.

/* Create Application:  BUDGET */

create or replace application 'BUDGET' type nonunicode_mode;
alter application 'BUDGET' set lock_timeout after 300;
alter application 'BUDGET' set max_lro_file_size unlimited;
alter application 'BUDGET' set minimum permission no_access;
alter application 'BUDGET' enable startup;
alter application 'BUDGET' disable autostartup;
alter application 'BUDGET' enable commands;
alter application 'BUDGET' enable updates;
alter application 'BUDGET' enable connects;
alter application 'BUDGET' enable security;

/* Create Database:  BUDGET */
create database 'BUDGET'.'Budget';
alter database 'BUDGET'.'Budget' set data_file_cache_size 1024000000;
alter database 'BUDGET'.'Budget' set index_cache_size 76800000;
alter database 'BUDGET'.'Budget' enable startup;
alter database 'BUDGET'.'Budget' enable autostartup;
alter database 'BUDGET'.'Budget' set minimum permission no_access;
alter database 'BUDGET'.'Budget' set retrieve_buffer_size 102400;
alter database 'BUDGET'.'Budget' enable two_pass_calc;
alter database 'BUDGET'.'Budget' enable aggregate_missing;
alter database 'BUDGET'.'Budget' enable compression;
alter database 'BUDGET'.'Budget' disable create_blocks;
alter database 'BUDGET'.'Budget' disable committed_mode;
alter database 'BUDGET'.'Budget' set implicit_commit after 10000 blocks;
alter database 'BUDGET'.'Budget' disable cache_pinning;
alter database 'BUDGET'.'Budget' set retrieve_buffer_size 102400;
alter database 'BUDGET'.'Budget' set compression bitmap;
alter database 'BUDGET'.'Budget' set retrieve_buffer_size 102400;
alter database 'BUDGET'.'Budget' set retrieve_sort_buffer_size 102400;
alter database 'BUDGET'.'Budget' set data_cache_size 512000000;
alter database 'BUDGET'.'Budget' set io_access_mode buffered;
alter database 'BUDGET'.'Budget' set note '';
alter system unload application 'BUDGET';

/* Create Filter:  MRP100206310000 */
create or replace filter 'BUDGET'.'Budget'.'Audit' write on '@DESCENDANTS("Time"),@DESCENDANTS("Year"),"Input","Working Budget",@DESCENDANTS("Product"),@DESCENDANTS("Total Audit"),@DESCENDANTS("Expenses")';
 

DOS and UNIX scripts were generated to copy all of the database objects, data files, and Maxl and EssCmd scripts from the source server to the destination server.  The program also created all the files to import into Version 9 and System 11 to add users, groups, and replicate the security model.  

All the Maxl and EssCmd scripts (username, password, server names, file paths, etc.) were updated so they could be executed on the new servers.  

This process makes it extremely simple to migrate, or move, any Essbase application from one server to another.  The entire process could be completed in hours, rather than days, and eliminates the possibility of human error.  What would be budgeted to take weeks with several resources can take less than a day.

The question many Accounting/Finance organizations are facing is when and how do they adopt the IFRS (International Financial Reporting Standards) that need to be adopted by the year 2014.  The SEC has published a Roadmap document to discuss various areas of consideration for participants looking to be early adopters of the change. “ The Commission is proposing this Roadmap towards requiring the use of International Financial Reporting Standards (“IFRS”) as issued by the International Accounting Standards Board (“IASB”)  by U.S. issuers as part of its consideration of the role a single set of high-quality accounting standards plays in investor protection and the efficiency and effectiveness of capital formation and allocation.  As capital markets have become increasingly global, U.S. investors have a corresponding increase in international investment opportunities. In this environment, we believe that U.S. investors would benefit from an enhanced ability to compare financial information of U.S. companies with that of non-U.S. companies international investment opportunities.” Based on the current economic climate and the fluctuating currency positions, it is inevitable that this change is coming.   

A large amount of Global companies have experience with IFRS reporting, however, many of the local ledgers have a GAAP focus.  Approximately 113 countries around the world currently require or permit IFRS reporting for domestic, listed companies.   Many organizations already have some adjustments being made to accommodate the consolidation requests of the Parent US companies to comply to GAAP requirements.    

What is truly required to accommodate the required change?  In my opinion, I believe there is an easy solution from the technical Hyperion Financial Management perspective to accommodate this request.   The overall solution requires a functional understanding of the Standard changes as it relates to GAAP vs. IFRS so that the appropriate adjustments can be made.  There are a number of continuing education opportunities provided by the major Accounting firms to help you gain a clear understanding of the differences.   Once you have the clear understanding, then you can attack the technical aspect of your application design change to accommodate the request.

So from an HFM design perspective, a couple key questions need to be answered:

  • Do you want <Entity Currency> in HFM to be IFRS or to be Local GAAP?
  • Do you want <Entity Curr Adjs> to store the local GAAP to IFRS adjustments?

Hyperion Financial Management stores all Journal Entries in a Value named <Entity Curr Adjs>.  This value can only be populated by Journals and provides clear audit trail from the unadjusted trial balance loaded to the Entity Currency value, to the overall Contribution to the parent with the “adjustments” loaded to <Entity Currency Adj>.   If you choose <Entity Currency> to be IFRS, then Financial Data Quality Management has to be the source of your local GAAP to IFRS adjustments.  The Excel Journal Templates in FDM can be leveraged to enter the IFRS adjustments if the local source ledger contains the GAAP information.   The IFRS Journal adjustments get merged into the existing GAAP Trial Balance Extract and are loaded to the <Entity Currency> Value of HFM.  

If you wanted <Entity Curr Adjs> to store the local GAAP to IFRS adjustments, you then have an option for Financial Data Quality Management or Hyperion Financial Management.  The general ledger extract would load to the <Entity Currency> value dimension.   You could provide further transparency to the source of the transaction by leveraging one of the 4 custom dimensions in your application design.  With FDM, you would have to use a separate location that would be set to load its data as an HFM journal to <Entity Curr Adjs>.  You could then use an FDM Excel journal to populate this entity.  It would need to be a separate entity though as FDM can be set to load to different value dimension members on a location by location basis.  One FDM location can only load to one Value dimension.

The problem I see with using FDM with adjustments to load to the Entity currency is the reliance you would be putting on the FDM reporting engine.  Now don’t get me wrong, there is a robust reporting repository of FDM reports that will provide transparency, however, I think you will have more flexibility with your end user community by leveraging the BI+ reporting capability with proper application design.   I would go with the hybrid solution of creating a separate location in FDM for adjustments only, that way you will be able to load directly to the Entity Currency Adjustments and it will be considered a journal entry.   

These are two very basic solutions that will not require a large amount of effort to deploy from the Hyperion Financial Management perspective.  The effort will be spent on the functional side to address the ledger changes.   A seasoned TUSC FM consultant would be able to guide you through the roadmap of meeting this challenge and explain the clear vision to deploying a quick and easy solution.