Professional Documents
Culture Documents
AdvancedEPM at a Glance
An Enterprise Performance Management (EPM) firm laser focused solely on Oracle / Hyperion solutions. Oracle Platinum Partner Recognized by Oracle for our in-depth expertise and excellence across the entire suite of Oracle Hyperion EPM solutions. Serve leading global organizations (including 11 of the top 100 companies and 28 of the top 500 according to the latest Fortune rankings). Expert consultants that have been working in the Hyperion space for more than a decade, across all products and platforms.
Automation of entire EPM suite of products. AdvancedEPM knows how to leverage tools and technologies like Perl, Java, VBScript, JavaScript, MaxL, etc. to truly make the life of an administrator much easier
Topics Covered
Fixes Nested fixes, Conditional fixes, Exceptions Minimizing Xrefs calls Macros in Business Rules Dense Fixes / Calculation Blocks Launching Business Rules remotely Handling Duplicate Ranks in loops Loop Counters and breaking out of loops Creating Blocks Data export using Calculation scripts MaxL and Calculation scripts Allocations considerations in Essbase. Dynamic Currency Conversions Ranking across two different measures
Nested Fixes
Nested fixes are used for a number of tasks. Fixes are used to limit the portion of the database on which calculations are performed. They can also be useful in optimizing calculations. These are the tasks I will be covering.
Fixes used to limit passes through the database Fixes used to handle exceptions in the calculation process Fixes used to control conditional execution of code segments
Loop example
This is an abbreviated section of the code used. There may be additional assignments and a fix as well. Var breakpt = #Missing LOOP (30,breakpt) "Title Slate Rank"( IF( "Title Slate Rank" <= RankCount and "Calc_Completion" <> 1) "Running LF" = @ANCESTVAL("Studio",-2,"Running LF") "Calc_Completion" = 1; RankCount = RankCount +1; if(@ANCESTVAL("Studio",-2,"Title Slate Rank") < RankCount) breakpt = 1; ENDIF; ENDLOOP
Creating Blocks
Essbase is very picky in creating blocks. Often you will write assignments that wont seem to work. This is generally a block creation issue. There are a number of ways to create blocks. DataCopy: This method is best used when you really need to copy data from a sparse to a sparse dimension example Version to Version. If all you need do is create blocks, consider writing a 0 to a single dense member intersection. CREATEBLOCKONEQ: Creates blocks if a sparse member has its value set by something other than a constant. Default is off. I would set this to on either in the database or most scripts. CREATENONMISSINGBLK This command is much more sensitive. It processes all potential blocks and creates any where the formula returns a nonmissing value. It is very slow! Use only within Fix commands on small portions of the database. Use SET CREATENONMISSINGBLK off to stop processing blocks when not needed.
DATAEXPORTOPTIONS Command
DataExportLevel - All, Level0, Input. DataExportDynamicCalc Do you want dynamically calculated members exported? This will slow exports if on since the values need to be calculated. DataExportNonExistingBlocks Exports all potential blocks, used with export dynamic calcs to get all data. DataExportColFormat If on it exports in column format. I would recommend this, especially for backups and exports to other systems. DataExportColHeader For text outputs, it sets the dense dimension to be used as column headers. Pick a small dense dimension or the number of columns may be excessive. DataExportRelationalFile - Formats the file for a relational export. DataExportOverwriteFile Only for text files. It will overwrite existing files if on.
DATAEXPORTOPTIONS Example
SET DATAEXPORTOPTIONS { DataExportLevel LEVEL0 ; DataExportDynamicCalc OFF ; DataExportNonExistingBlocks OFF ; DataExportPrecision 9 ; DataExportColFormat ON ; DataExportColHeader "Period" ; DataExportRelationalFile OFF ; DataExportOverwriteFile ON ; };
DATAEXPORT command
File - exports a text file. You specify file/path, Delimiter, and MissingChar. Essbase interprets the path in context to the server. Export files cannot be written to a client. I didnt find a way to have tab as a delimiter. MissingChar defaults to #MI. You can use NONE to get an empty field. Relational output. dsnName, table name, user, and password. The table must exactly match the output columns. The table is not cleared by this command. Substitution variables can be used. BIN output. Requires only file name. It is used for static backups Both the outline and file must have the same date time stamp .
DATAEXPORT Examples
Relational Export FIX("Final", &GETSPlan_FcstYear, @LEVMBRS("Legal Entity", 0), &GETSPlan_FcstScn, "Jan":"Dec) DATAEXPORT "DSN" "Oracle Wire Protocol" "GET_FR_MOD_GETSPLAN_FINAL_T" User" Password" ; ENDFIX File Export FIX("Final", &GETSPlan_FcstYear, @LEVMBRS("Legal Entity", 0), &GETSPlan_FcstScn, "Jan":"Dec) DATAEXPORT FILE" ," E:\hyperion\Essbase\app\test1\test1\PlanFin.txt #MI ; ENDFIX
Ranking example
Fix(FY08) "Title DFR Rank"( if ("DFR Actual" > 0) "Title DFR Rank" = @RANK(SKIPBOTH,"DFR Actual", @RANGE( "DFR Actual",@RELATIVE([Entity_Prompt],0))); "Avail_Rank" = @RANK(SKIPBOTH,Avail date", @RANGE( Avail date",@RELATIVE([Entity_Prompt],0))); "Combined_Rank"= -1*((100*"Title DFR Rank")+"Avail_Rank"); endif; ) endfix;
Contacts
Eric Cuka
Business Development Director
8803 Brecksville Rd., Suite 7-198 / Brecksville, Ohio 44141 Cell: (952) 239-5324/ eFax: (440) 201-7486 ecuka@advancedepm.com www.advancedepm.com
Todd Rebner
Managing Partner
8803 Brecksville Rd., Suite 7-198 / Brecksville, Ohio 44141 Cell: (330) 212-3097 / eFax: (440) 201-7486 trebner@advancedepm.com www.advancedepm.com
Ash Jain
Managing Partner
2538 Acadiana Lane / Seabrook, Texas 77586 Cell: (832) 428-3339 / eFax: (440) 201-7486 ajain@advancedepm.com www.advancedepm.com