2. #Kscope
Welcome
l Speaker Introduction
● Education
● Career
● Finance
● Education
● Management
● Technical
● Rolta Solutions
● In2Hyperion
BBA / Finance
Technical Training
Management Training
3. #Kscope
Welcome
l Speaker Introduction
● Education
● Career
● Finance
● Education
● Management
● Technical
● Rolta Solutions
● In2Hyperion
Auditor
Accountant
Financial Reporting
University Adjunct Faculty
Financial Systems / IT
4. #Kscope
Welcome
l Speaker Introduction
● Education
● Career
● Finance
● Education
● Management
● Technical
● Rolta Solutions
● In2Hyperion
TheLimited
Bank One / JPMorgan Chase
Franklin University
Rolta Solutions
5. #Kscope
Welcome
l Speaker Introduction
● Education
● Career
● Finance
● Education
● Management
● Technical
● Rolta Solutions
● In2Hyperion
Free Tools
Creative Ideas
Community of over 1,000
Connect to peers through
social media
6. #Kscope
Rules For Today
l Be interactive, interrupt me! (Really!)
l Tweet and share your thoughts #In2Hyperion
l It is OK to text your notes
l Stretch – stand up if you get tired!
l Be nice: none of us know everything there is to
know
7. #Kscope
Something For Everybody
l Business focus
l Different angle on common functions
l Show possibilities
l Technology focus
l What needs to be implemented
l Steps to implement
8. #Kscope
Topic Overview
l Overview of spreads and driver based planning
l Develop spread functionality
● JavaScript
● Smart Lists
● Business Rules
● Web Forms
10. #Kscope
Make It Personal
l Build plan based on history or other drivers
8,333 * 1.035
1,250 *
(50 / Total Year)
11. #Kscope
Business/System Requirements
● Driver-based planning
● Spread pattern defined at low levels of the business
● Example will be at account / department
● Easily repeatable
● Easily updatable
● Driven by users
● Shouldn’t add burden to administrators
● Results must be reliable
● Results must be meaningful
15. #Kscope
Step 1: The Custom Period
l Why Period
l Most flexibility
l Can be
version/scenario/year
specific
l Limit block creation
challenges
16. #Kscope
Step 2: Define Spread Methods
l Spread method = business driver
l Select spreads that users implement the most
l Select spreads that will impact the decision
making the highest
l Examples
l Trend like LY Sales or units(Corp or Dept)
l Trend like CY Sales or units(Corp or Dept)
l Trend like LY Trend
l Evenly / 4-5-4 / Fill
l Growth
l 3/6 month trend
17. #Kscope
Step 3: Smart Lists
l Drop down list
l Meaningful name
l Mapping table
l Saves to
Essbase as value
19. #Kscope
What Is Evaluation Order?
l Defines which smart list wins when multiple
smart lists are relevant
l The dimension which is first in the order takes
the precedence over the next
What is displayed?
24. #Kscope
Step 6: JavaScript
l Don’t FREAK OUT - JavaScript is NOT Java
l What is ValidateData.js
l Customization options
l Validation
l Pre-form setup
l How to edit ValidateData.js
l Why this requirement utilizes ValidateData.js
25. #Kscope
ValidateData.js
function customCellEnterPost(row, col, cell) {
// Insert custom code here
return;
}
function customCellValidatePre(row, col, cell) {
// Insert custom code here
return true;
}
function customCellValidatePost(row, col, cell) {
// Insert custom code here
return;
}
function customSpread_Pre(row,col) {
// Insert custom code here
return true;
}
function customSpread_Post(row,col) {
// Insert custom code here
return;
}
function customCellEnterPost(row, col, cell) {
// Insert custom code here
return;
}
function customCellValidatePre(row, col, cell) {
// Insert custom code here
return true;
}
function customCellValidatePost(row, col, cell) {
// Insert custom code here
return;
}
function customSpread_Pre(row,col) {
// Insert custom code here
return true;
}
function customSpread_Post(row,col) {
// Insert custom code here
return;
}
26. #Kscope
Customize validateForm
function validateForm()
{
// Insert custom code here
if(equalsIgnoreCase(applicationName,"ANFPlan")) {
// loop through each row. if the spread (start column + 1) is selected, make beg bal = to 1
// Save the members of the first column, which will be used to evaluate whether this form
// should run the spread logic on it - looking for Spread_Method
var cellMemberList1 = getMembersOfCell(currentDataGrid.startRow, currentDataGrid.startCol);
// Save the members of the last column, which will be used to evaluate whether this form
// should run the spread logic on it - looking for BegBalance
var cellMemberList2 = getMembersOfCell(currentDataGrid.startRow, currentDataGrid.numberGridCols-1);
// only run the code when the first column is the spread and the last column is beg bal
// The spread business rule only runs where BegBalance = 1
// To ensure that spreads are only executed on accounts on the form saved, not all accounts on the block
Store column
header of column 1
Store column
header of the last
column
27. #Kscope
Customize validateForm (continued)
if(listContainsName(cellMemberList2, "BegBalance") && listContainsName(cellMemberList1, "Spread_Method")){
for (r = currentDataGrid.startRow; r < currentDataGrid.numberGridRows; r++){
if(currentDataGrid.fullPrecision[r][currentDataGrid.startCol] >= 1){
// Set the BegBalance to 1
// The spread business rule will look to run the spread ONLY on accounts where BegBalance = 1
currentDataGrid.fullPrecision[r][currentDataGrid.numberGridCols-1] = 1;
redisplayCell(r,currentDataGrid.numberGridCols-1);
}
else
{
// Set BegBalance to #Missing
currentDataGrid.fullPrecision[r][currentDataGrid.numberGridCols-1] = "";
redisplayCell(r,currentDataGrid.numberGridCols-1);
// Set Spread_Amount to #Missing
currentDataGrid.fullPrecision[r][currentDataGrid.startCol + 1] = "";
redisplayCell(r,currentDataGrid.startCol);
}
}
}
}
return true;
}
Loop through all
rows in the grid
Set BegBal to 1 if a
spread is selected
Set BegBalance to #Mi and
Spread $ to #Mi if NO
spread is selected
If Col 1 is Spread Method & the
last column is BegBalance
29. #Kscope
Business Rule Overview
SET …
FIX(…)
[Scenario](
/* Spread Method for Annual Budget */
IF("BegBalance" == 1)
/* LY's Dept Sales */
IF("Spread_Method"==1)
calculation
/* LY's Corp Sales */
ELSEIF("Spread_Method"==2)
calculation
ELSEIF …
END IF
ENDIF)
IF("BegBalance" == 1)
set BegBalance to #Missing
ENDIF)
ENDFIX
Execute if BegBalance is set to 1
Execute for Spread Method of 1
Execute for Spread Method of 2
Set BegBalance to #Missing
31. #Kscope
Referencing SmartList Values
Smart List values can also be referenced as
[SmartList Name].[Smart List Value]
Example:
[Spread_Method.LY_Dept_Sales]
/* LY's Dept Sales */
IF("Spread_Method"==1)
…
33. #Kscope
Other Possibilities
l Spreads based on growth rates
l Increase from last year
l Metric Based
l Benefits (% of Salary)?
l Cost (% of Sales)
l 6 month trending history
l Load defaults
l Update spread amount to reflect actuals in
forecast scenario
35. #Kscope
Benefits for Users
l Enables users to enter an annual value
l Produces defensible/explainable results
l Reduces effort to produce detailed budget
l Forecast can be updated monthly with minimal
effort
l Better data, better decisions, stronger business
l Spread decisions are not hard coded and can
be changed by the user
36. #Kscope
Benefits For Administrators
l What do administrators have to do to support?
1. Maintain period dimension?
2. Update spread methods?
3. Update smart lists?
4. Update evaluation order?
5. Update web forms to use functionality?
6. Update the JavaScript?
7. Update business rules?
l No to all, only if enhancements are required!
l More time for development
37. #Kscope
Why this method works
● Provides flexibility
● Enables users to enter an annual value
● Produces defensible/explainable results
● Reduces maintenance
● Updated automatically
l Business prospective presented at Collaborate
2011
l Contacted by OAUG to write article for Insight
Summer Edition
l “Best budget ever, better knowledge than we
have ever seen before”
38. #Kscope
Stay In Touch
l Email
● In2Hyperion@gmail.com
● Kyle.Goodfriend@RoltaSolutions.com
l In2Hyperion
● Sign up for email updates at www.In2Hyperion.com
● Follow us via Twitter (@In2Hyperion)
● Like us on Facebook
● Join the In2Hyperion LinkedIn group
● More than 1,000 people follow In2Hyperion through
social media
● More than 3,000 people visit In2hyperion daily
39. #Kscope
Other Collateral
l Collaborate 2011 – Business Presentation
● Download Presentation
l OAUG Insight - Summer 2012 issue
● Coming in July/August
● Article will be available at In2Hyperion.com