Getting Started with Calc Manager for Hyperion Financial Management

Post on 22-Jan-2015

4,533 views 2 download

description

 

transcript

Getting started withGetting started with

Calc Manager forCalc Manager forHyperion Financial Hyperion Financial

ManagementManagement

Chris BarbieriPractice Director

Edgewater Ranzalcbarbieri@ranzal.com

Session 7610

Chris BarbieriChris Barbieri

� Established HFM performance tuning techniques and statistics widely used today

� 4+ years as Sr. Product Issues Manager at Hyperion

� HFM, Smart View, Shared Services, MDMMember of HFM launch team in 2001,

� HFM, Smart View, Shared Services, MDM� Member of HFM launch team in 2001,

certified in HFM and Enterprise� MBA, Babson College� B.S. Finance & Accounting, Boston College� Co-founded the HFM Performance Tuning

Lab at Ranzal with infrastructure expert Kurt Schletter

� Awarded Oracle ACE status

Calc ManagerCalc Manager

� Intro: What, where, and why would I use it?

� Object hierarchies◦ Variables

◦ Rule sets

◦ Objects

� Hung up on naming schemes

� Deploying, importing, exporting

� Troubleshooting

Why Use Calc Manager?Why Use Calc Manager?

� Code and document better◦ Flow metaphor better describes the decision process

◦ Enforces structured variables

◦ Easy re-use of objects◦ Easy re-use of objects

� New feature in 11.1.1.0: EPMA apps only

� 11.1.1.3 added support for Classic apps

� Very useable

Object HierarchyObject Hierarchy

� System View: primary view when you enter Calc Manager

� Choose the product

ApplicationApplication

� Once you select a product, you will see the available applications for each

Calculation TypeCalculation Type� These are the available HFM subroutines

� A rule set is like a playlist

� Usually have one main set

� One “blank” set

� And one “debug” set◦ Add or remove individual rules until you found the culprit

◦ Revert to the normal one when ready

Rule SetsRule Sets

◦ Revert to the normal one when ready

� … per calculation type

� View > Deployment View

� Manage which set will be the deployed one◦ Only one can be

Deployment ViewDeployment View

◦ Only one can be checked

◦ All can be unchecked

� Double-click on a set to see the contained rules◦ Puts you into rule set manager

◦ Drag a rule in, or right-click to remove

◦ Sequence matters!

ManageManage a Rule Seta Rule Set

� How do you define a rule?◦ A logical grouping of conditions, ranges, and formulas that perform a distinct task

� Rules don’t have to be included in a set◦ They won’t run if they are not in a deployed set

And finally…And finally… Rules!Rules!

VariablesVariables

� Tools > Variables

� Replacement

� Execution

Replacement VariablesReplacement Variables

� “Type less” – Jim “the rules guy” Heflin

� Type fewer variables

ReplacementReplacement VariablesVariables

� Constants

Execution VariablesExecution Variables

• Some are defined with the variable, so the same definition can be used by all rules.

• In most cases however, especially string and number variables, we defined them and number variables, we defined them inside the rule itself. In these cases, the variable is part of a common formula, but the contents are rule specific.

• Boolean• String• Number

Execution VariablesExecution Variables

Boolean VariablesBoolean Variables

� True/False responses

� Define the scope for each variable

� Most are “Rule” specific

� Some, like Tax Rates, are applicationspecific

Variable ScopeVariable Scope

specific

Variable GroupsVariable Groups

� Useful for sorting or associating the variables

Numeric VariablesNumeric Variables

� Most often populated at the rule level

� nData is the most useful, as part of Data Range (HS.OpenDataUnit)

String VariablesString Variables

� Second most popular

� Useful for storing and managing metadata member names or attributes

� Do this before you make changes

� Select an application name from System View and File > Export

Export RulesExport Rules

� Import the entire collection, includingvariables, by choosing File > Import

Import RulesImport Rules

> Import

� Browse for the .XML file

� Choose the target application.� Update Location Details

� This has no connection to the application you highlighted

� Click Import

Import Rules, cont’dImport Rules, cont’d

� Helpful scheme while looking at various list views

� RS_ for “Rule Set”◦ RS_Blank

◦ RS_Calculate

◦ RS_Debug

� RO_ for “Rule Object”◦ RS_number if they are readily sequenced◦ RS_number if they are readily sequenced

◦ RS_ObviousPurposeInTitleCase

� Within a rule, provide intuitive Captions for each object

Object NamingObject Naming

Be Obvious, Not CrypticBe Obvious, Not Cryptic

� Does the graphical flow make sense?

AnotherAnother Rule ExampleRule Example

� Use long names� HFM supports up to 50 alphanumeric

characters for the rule name

� And feel sorry for Essbase users ☺

Create a New RuleCreate a New Rule

Select the Calculation TypeSelect the Calculation Type

1. Condition

2. Formula

3. Data Range

4. Member Range

5. Script

6. Fixed Loop

The Rule PaletteThe Rule Palette

� 99% of your rules should have some

� Most important performance aspect of your application

� Always ask yourself:◦ Value dimension member?

◦ Which entities?

◦ Which period?

ConditionsConditions

◦ Which period?

� Used to populate variables

� And for most functions◦ HS.Exp

◦ HS.SetDataWithPOV

◦ HS.Clear

◦ Many more

FormulaFormula

Populate a VariablePopulate a Variable

HS.ClearHS.Clear

� Like Windows, shows a little hand on the icon

� Usage◦ Check this if you want to change or delete the formula.

Shared FormulasShared Formulas

� Does not appear in graphical◦ Just set two intersections equal to each other

◦ Still a concept of left and right

� Pull to the left

HS.ExpHS.Exp

� Last one in wins!

Multiple RowsMultiple Rows

� Blank for a dimension implies all base members with data

� Fill in a single parent member

� Use lists

Data RangeData Range

� Evaluate the account◦ We only want accounts beginning with “3”

String FunctionsString Functions

� Translate balance sheet accounts at average rate, using PVA

TranslateTranslate

� Simple example

� The only time you can write to anotherentity◦ A sibling

◦ [Proportion] or [Elimination] only

◦ Use a condition to avoid consolidating to a particular entity

ConsolidateConsolidate

particular entity

� Only accounts flagged Consolidated are available

Consolidate, cont’dConsolidate, cont’d

Consolidate, cont’dConsolidate, cont’d

� Cycle through a list of members within a given dimension

� Can be defined in the rules “Parent”,”[Base]”

� Or from custom member lists“OverrideAccounts”

� Most common inNoInput rules

Member RangeMember Range

� Most common inNoInput rules

NoInputNoInput

TestTest User Defined FieldsUser Defined Fields

� Note the use of a different formula for each View

DynamicDynamic

NoInputNoInput FormulaFormula

ZoomZoom

� Is the rule running? Did it pass each condition?

� Add a formula {i} = {i}

� Enable Logging◦ Rule Level

Debugging, aka “Debugging, aka “WriteToFileWriteToFile””

� Icon indicates you can enter text

� Also add variables to see their contents at that point in the rule

Debugging,Debugging, cont’dcont’d

� Within data range, but before accountcondition

Debugging ExampleDebugging Example

� After the condition

OutputOutput log samplelog sample

� Possible, but…◦ … chicken’s way out

� Take you just as long to write in script as it would to use graphical mode◦ And it would still be better written

ScriptScript

� No idea…

Fixed LoopFixed Loop