Upload
ron-moore
View
157
Download
6
Embed Size (px)
Citation preview
Advanced Calculationsin Calc Manager
Ron Moore
TopDown Consulting, Inc.
�Solution Architect at TopDown Consulting
�Certified in Essbase and Planning
�Over 20 years experience with Essbase
�Over 30 years experience in forecasting, financial
modeling and predictive analytics
Ron Moore
�Use simple rolling forecast and driver based budgeting
examples
�Automate repetitive calculation development tasks
using Custom Defined Templates (CDTs)
�Answer some common CM questions
Objective
�Quick review of CDTs (for more keystrokes see
http://www.odtug.com/p/do/sd/sid=5349&type=0)
�Develop a conceptual framework for CDT
implementation
�Apply CDTs to a Driver Based Budgeting application
�Use Calc Manager to create a calculation in ASO
�Demonstrate some tricks with variables
Agenda
�CDTs are like wizards
● Executed during rule development
�Drag in Components
● Formula, Script, Condition, Member Block, Member Range, Fixed
Loop, Metadata Loop, DTP Assignment
�Design Time Prompts
● Prompt the designer for rule parameters
�CDT prompts
● Questions in the wizard pages
�Steps
● Pages in the wizard
Custom Defined Templates
�Categorize static and customized elements
�Create script components for static elements
�Parameterize the customizations
●Design Time Prompts : Outline /one time customizations
●Run Time Prompts: End user customizations
Conceptual Framework Design Steps
Conceptual framework
Question Answer Examples
What’s static? Patterns in the code Baseline Fixes
Mathematical logic
What’s
customized?
Dimension names
Member names
Slices
Accounts v Measures
Members to forecast
History years v Forecast years
Identify predictable common elements that can be packaged
Common Dimension types
Run Time Prompt v. Design Time Prompt Customizations
Prompt Design Time Run Time
Measure to Calculate vPctGrowthMember
Growth Percent vGrowthPct
Year dimension dtpYearDim
Period Dimension dtpPeriodDim
First Month dtpFirstMonth
Parameterize Slices Forecast Slice (user
rtp)
Business
Units Slice
(user rtp)
Stored Data Types Slice
(rule designer dtp)
CODE DESIGN CHOICES : PIVOTING THE CODE
CONVERT TO IF
Drivers on Accounts v. Drivers on View Dimension
“Forecast” = “Sales” * “Drivers”;
“COGS” = “Sales” * “COGS Driver”;
“Rent” = “Sales” * “Rent Driver”;
“Payroll” = “Sales” * “Payroll Driver”;
EtcD.
PUT DRIVERS ON THE VIEW DIMENSION
Strengths Weaknesses
Drivers on Accounts Dim • One less dimension • More maintenance
• Harder code
Drivers on View Dim • Easier maintenance
• Easier code
• One more dimension
TARGET CODE
PROMPT ANALYSIS
Code element Prompt
Business Unit Slice vBusUnits
Forecast Years Slice vFCYears
Stored Data Types Slice dtpStoredSlice
FCLeftSide dtpFCLeftSide
Method 1 Accounts vM1Accounts
Method 2 Accounts VM2Accounts
Year Dim dtpYearDim
Periods Dim dtpPeriodsDim
Driver Dim dtpDriverDim
Driver Member/s dtpDriverMb
�Create the variables
�Create the Custom Defined Template
●Drag in script component (Rolling Forecast code)
●Drag in member range components (FIXes)
●Create the DTPs
●Create steps
●Substitute RTPs/DTPs
�Create the rule
●Drag in the CDT
●Additional member ranges (FIXes)
CDT Workflow
Create the Template
• System View | APP/DB
• Right Click Templates |New• Drag in the FCLogic Script
SUBSTITUTE THE DPTS
SUBSTITUTE THE TIME FRAME DTPS
�Create the new rule
�Drag in the Custom Defined Template
�Execute the wizard
�Create additional Member Ranges
�Save
�Launch
Create the rule
FINAL RULE
WRITE A CALC MANAGER RULE
TO COPY DATA IN ASO
�Create a new rule
�Drag in the Point of View object
�Drag in the formula object inside the POV object
Create the rule
�Click the left node of the POV object
�Make the following selections
Configure the POV
Measures "Price Paid", "Original Price", "Transactions", "Returns", "Units"
Years Leave this blank
Time @Level0Descendants("MTD")
Transaction
Type
@Level0Descendants("Transaction Type")
Payment Type @Level0Descendants("Payment Type")
Promotions @Level0Descendants("Promotions")
Age @Level0Descendants("Age")
Income Level @Level0Descendants("Income Level")
Products @Level0Descendants("Products")
Stores @Level0Descendants("Stores")
Geography @Level0Descendants("Geography")
�Click the formula object
�Enter the formula :
�“Prev Year” = “Curr Year”
�Validate
�Save
Create the formula
Results
• Spreadsheet before the calc
• Launch the rule
�You must address every dimension. That is, any
dimension not addressed on the left side of the
formula/s must be addressed in the POV
�You cannot use any dynamic members in the POV or
formula.
What to watch out for:
DESIGN TIME PROMPTS
Setting Description
Type 14 types, we will use Member Range, Member and Dimension
Dependency Inclusive, Exclusive, None
Limits Dense/Sparse, Accounts/Time, Planning :required dimensions
Prompt it? Yes/No
Mandatory? Yes/No
Read Only Yes/No
DTP Text Custom text
Default value Depends on type
BUILT-IN DTPS
DTP Purpose
Application Type Project Planning or Public Sector Planning
Application Single or Multi currency
Upper POV Capture all upper fix dimensions to exclude or include in downstream DTPs
�Select the Design Time Prompt tab
�Click the + sign to create a new row
Create the Design Time Prompts
CREATE THE STEPS
Steps
1. Time Frame
−dtpYearDim
−dtpPeriodDim
−dtpFirstMonth
2. Input Data Types
−dtpInputDataTypes
SELECT DTP FOR MEMBER RANGE
Drag in the Template
Create the Rule
CODE AFTER CDT WIZARD EXECUTION
ADD BUSINESS UNITS MEMBER RANGE
ADD FORECAST SLICE MEMBER RANGE
CODE
1. Rollup driver denominator
2. Calculate driver %
3. Multiply driver % by total value to be allocated
Simple Allocation Code
Allocate Marketing based on Units driver
Calc Objective
Q & A