SlideShare a Scribd company logo
www.finitsolutions.com
Finit Solutions
Introduction
Finit as a company:
Who we are…Why? How?
www.finitsolutions.com
- 2 -
Finit Overview
• Founded in 2002
• 75+ employees in 20+ states, 14 dedicated to the OneStream practice
– Mostly CPAs, MBAs
– We have extensive CPM product and financial reporting backgrounds
• 50+ Planning / Essbase Clients
• 80+ HFM Clients
– Managed several of the largest EPM projects in the U.S.
– Including the largest roll-out of HFM in North America
• 15 OneStream Clients
– Lead the implementation of the first 3 live OneStream customers
• AAA Life (Consolidation & Budgeting), Guardian and Henniges
• Market Leader in ARM/FCM
• World Leader in FDM implementations and custom solutions
www.finitsolutions.com
- 3 -
• We make and deliver personalized financial
reporting solutions and experiences.
– By listening, questioning, and analyzing
– By building relationships
…not company to company, but person to person.
– We are Makers and Doers
WHY is Finit Here?
www.finitsolutions.com
- 4 -
We Run Finit like a Family
• Invest in our employees
• All owners actively involved in the business
• No debt or external owners
– Prioritize the customer, not profitability
• Long term stability
– Hire employees, not subcontractors
• Compensation model based on client
satisfaction
HOW do we achieve our beliefs?
www.finitsolutions.com
- 5 -
Our values, on which we ask you to provide
consultant feedback:
Finit Values
www.finitsolutions.com
- 6 -
Question and Answer
www.finitsolutions.com
- 7 -
About the Presenter
Phil Brosnan
(pbrosnan@finitsolutions.com)
2+ Years of OneStream experience
• Led the first live Enterprise to
OneStream project
17+ years in Automotive Finance
• Traditional roles: Cost Accountant to
Finance Director
• System implementations: MfgPro, SAP,
EssBase, Global HFM (1,200+ users).
Based in Detroit
www.finitsolutions.com
I didn’t know you could do that!
Cool pieces of OneStream functionality you might
not be using (but should).
Phil Brosnan – Finit Solutions
www.finitsolutions.com
- 9 -
Objectives
• Many presentations are awesome, but don’t give
you anything tangible to implement in your App.
This presentation
• See 10 pieces of OneStream functionality
• Learn a couple things you didn’t know
• Take at least one tangible item back to your
project.
www.finitsolutions.com
- 10 -
Problem
• You need a list of certain members:
– All IC Entities, IC Accounts, foreign entities, etc…
• You can make Business Rules for Member lists,
but they are moderately complicated.
1. Easy member lists
www.finitsolutions.com
- 11 -
Solution
• .where member expansion is super-easy.
• Almost limitless when combined with Text fields
– E#Root.base.where(Currency <> USD)
– E#Root.descendants.where(IsIC = True)
– UD1#Top.base.where(Text1 = HR)
– .where((Text1 = HR) and (Text2 contains Blue))
• User defined dims have 8 text fields (use them!)
1. Easy member lists
www.finitsolutions.com
- 12 -
Usage
• E#allorgs.base.where(Currency <> USD)
• E#allorgs.base.where(Text1 = [SAP GL])
1. Easy member lists
www.finitsolutions.com
- 13 -
Problem
• Confirmation rules that need to validate both
positive and negative variances
• Can be a little complicated:
If args.ConfirmationRuleArgs.DisplayValue > 100 Then
Return False ‘Fail
Else If args.ConfirmationRuleArgs.DisplayValue < -100 Then
Return False ‘Fail
Else
Return True ‘Pass
2. Using VB.Net Math functions
www.finitsolutions.com
- 14 -
Solution
• Use VB.Net Math functions to simplify rules:
If Math.Abs(args.ConfirmationRuleArgs.DisplayValue)>100
• Math.Abs Returns the absolute value of a number.
• Math.Max Returns the larger of two numbers.
• Math.Round Returns a rounded number
• Math.Sign Returns the sign of the value
• Many others as well
2. Using VB.Net Math functions
www.finitsolutions.com
- 15 -
Usage
• The Math functions are just the tip of the VB.NET
iceberg.
• Lots of resources available on line:
– http://www.microsoftvirtualacademy.com/training-
courses/vb-fundamentals-for-absolute-beginners
– http://www.dotnetperls.com/keyword-vbnet
– Just Google it.
2. Using VB.Net Math functions
www.finitsolutions.com
- 16 -
Problem
• For design and usability purposes, you want a
blank row in a cube view.
3. Truly blank rows in a cubeview
www.finitsolutions.com
- 17 -
Solution
• You could set white text on a white background,
or mess with Row height/padding/etc…
• Easier is to use the “Transparent” color
• Can be used on just the text, or both the text and
background.
3. Truly blank rows in a cubeview
www.finitsolutions.com
- 18 -
Usage
• Works in CubeView, Report, and Excel (mostly).
• Credit to Michelle Johnson at Graco for this one!
3. Truly blank rows in a cubeview
www.finitsolutions.com
- 19 -
Problem
• Exchange rates are stored outside the cube.
• Can’t report on exchange rates in a Cube View.
• There is an XFGet…, but not end-user friendly.
4. Pull Exchange Rates into Cube
www.finitsolutions.com
- 20 -
Solution
• Create Dynamic Calc formula to pull exchange
rates into the cube.
• Actual Formula is in the appendix
4. Pull Exchange Rates into Cube
www.finitsolutions.com
- 21 -
Usage
4. Pull Exchange Rates into Cube
www.finitsolutions.com
- 22 -
Problem
• Two separate cubes:
– Main Cube and Sales Analysis or HR or Project cubes
• How do you link key accounts across the cubes?
– Net Sales and Std Cost for the Sales Analysis Cube
– Headcount and Salary expense for an HR cube
5. Cross-cube calculations
www.finitsolutions.com
- 23 -
Solution
• Cross-cube calculations:
CB#Main:A#Headcount = CB#HR:A#TotalHeads
• Normal formula rules apply:
– If a dimension is left out of the formula (ie: flow or
UD2 above), it runs for every member of that dim.
– So, if your dims are different in the 2 cubes, make sure
you pick that up in your formula.
CB#Sales:A#CustSales:UD1#noCustomer =
CB#Main:A#NetSales:UD1#TopCostCenter
5. Cross-cube calculations
www.finitsolutions.com
- 24 -
Usage
• See “50100 – Health Ins” from Golfstream
5. Cross-cube calculations
Houston Houston Heights New York
Cube Account
GolfStream 50200 - Base 100,000 100,000 100,000
Drivers Health 11% 11% 8%
GolfStream 50200 - Base 11,000 11,000 8,000
www.finitsolutions.com
- 25 -
Problem
• You want to give users a starting point:
– Copying from a prior forecast as a starting point
– Loading a headcount file from HR
– Loading prior year as the start point for Budget
• But, you want users to be able to change data
– And you want to track the changes.
6. Loading data to O#BeforeAdj
www.finitsolutions.com
- 26 -
Solution
• Use O#BeforeAdj for the data entry form
• Form will show the baseline data (in O#Import)
• When the user changes the value, Onestream
squeezes the difference into O#Forms
6. Loading data to O#BeforeAdj
www.finitsolutions.com
- 27 -
6. Loading data to O#BeforeAdj
Type into BeforeAdj member
Difference saved to
Forms member
Data previously copied into
Import member from other
scenario
Import 1000
Forms -
BeforeAdj 1000
Typed 1200 into BeforeAdj
Import 1000
Forms -
BeforeAdj 1200
200
1
2
3
Squeeze diff
to Forms
www.finitsolutions.com
- 28 -
Usage
• Demo
6. Loading data to O#BeforeAdj
www.finitsolutions.com
- 29 -
Problem
• You want to load an excel budget template into
OneStream thru workflow (not XFSetCell).
• The file has 12 columns (one per month).
– Or, cost centers in columns
– Or, segments in columns
– Or, accounts in columns, etc…
7. Load Matrix Excel file thru WF
www.finitsolutions.com
- 30 -
Solution
• Matrix Load file
• Multiple columns in the xfd range.
• Amounts are in the matrix’d columns, not in Amt.
7. Load Matrix Excel file thru WF
A# IC# T#:[]:[]:[2015M1] T#:[]:[]:[2015M2] T#:[]:[]:[2015M3]
GrossSales None 100.00 200.00 300.00
www.finitsolutions.com
- 31 -
Usage
• Demo an Excel file, with the xfd range
• There are examples in the Reference Document
7. Load Matrix Excel file thru WF
www.finitsolutions.com
- 32 -
Problem
• The main hierarchy has foreign entities rolling to a
foreign parent:
• But, you want to see PlantA and PlantB in USD.
8. Auto translate to a currency
North America (USD)
Mexico Legal (MXN)
Mexico PlantA (MXN)
Mexico PlantB (MXN)
www.finitsolutions.com
- 33 -
Solution
• The old way would be to force translate, or
• Create an alt hierarchy to trigger the translation
• But in 3.5, use “Auto Translation Currencies”
8. Auto translate to a currency
Mexico_in_USD (USD)
Mexico PlantA (MXN)
Mexico PlantB (MXN)
www.finitsolutions.com
- 34 -
Usage
• Demo
8. Auto translate to a currency
www.finitsolutions.com
- 35 -
Problem
• You want to limit (or extend) the entities that
have confirmation rules run.
• Example: Balance Sheet only balances at the Legal
entity level, not at every entity (plants).
9. Control confirmation entities
www.finitsolutions.com
- 36 -
Solution
• Workflow Calculation Definitions also control
confirmations
1. Will consolidate and also confirm
2. Will consolidate, but won’t confirm
3. Won’t consolidate, but will confirm
9. Control confirmation entities
www.finitsolutions.com
- 37 -
Usage
Result
9. Control confirmation entities
www.finitsolutions.com
- 38 -
Problem
• Where do Beginning Balances come from?
• OneStream always pulls from the same scenario
– 14 Budget rolls to 15 Budget to 16 Budget, etc…
• BUT, what if that’s not what you want?
10. BegBal from a different scenario
Scenario
Jan-14
…
Dec-14
Jan-15
…
Sep-15
Oct-15
Nov-15
Dec-15
Jan-16
…
Dec-16
Jan-17
…
Dec-17
Actual
Q3 Forecast
Budget '15 Budget from '14 Actual 16 Bud from Fcst 17 Bud from Bud
www.finitsolutions.com
- 39 -
Solution
• Custom Business Rule that can be called from any
member formula.
• Custom Business Rule that can be called from
Cube Views and Quick Views.
• Copy of the BR is in a separate file.
• Simple maintenance (In the Scenario text field)
2014=Actual, 2015=Forecast, 2016=Budget
10. BegBal from a different scenario
www.finitsolutions.com
- 40 -
Usage
• Demo
10. BegBal from a different scenario
www.finitsolutions.com
- 41 -
Business Rule
• The Business Rule to run this functionality is
available from Fint.
• Please contact anyone on the Sales team for a
copy
– Jeremy Bulman (jbulman@finitsolutions.com)
– Joe Mizerk (jmizerk@finitsolutions.com)
– Greg Barrett (gbarrett@finitsolutions.com)
10. BegBal from a different scenario
www.finitsolutions.com
- 42 -
Business Rule
• The Business Rule to run this functionality is
available from Fint.
• Please contact anyone on the Sales team for a
copy
– Jeremy Bulman (jbulman@finitsolutions.com)
– Joe Mizerk (jmizerk@finitsolutions.com)
– Greg Barrett (gbarrett@finitsolutions.com)
www.finitsolutions.com
- 43 -
APPENDIX
Code samples and configuration settings
www.finitsolutions.com
- 44 -
Dim viewMember As ViewMember = ViewMember.GetItem(api.Pov.View.MemberPk.MemberId)
If viewMember.IsAnnotationType Then
'Return an empty string if this is a text-based dataCell.
Return ""
Else
Dim destCurrId As Integer = api.Pov.Cons.MemberPk.MemberId
If destCurrId = Currency.USD.Id Then
Return 1.0
Else
Dim rateType As FxRateType = api.FxRates.GetFxRateTypeForRevenueExp() 'AverageRate
'Dim rateType As FxRateType = api.FxRates.GetFxRateTypeForAssetLiability() 'ClosingRate
Dim cubeId As Integer = api.Pov.Cube.CubeId
Dim timeId As Integer = api.Pov.Time.MemberPk.MemberId
Dim sourceCurrId As Integer = Currency.USD.Id
Dim rate As Decimal = api.FxRates.GetCalculatedFxRate(rateType, cubeId, timeId, sourceCurrId,
destCurrId)
Return rate
End If
End If
The EndRate formula would be the same, except pulling the rate type for
AssetLiability.
AvgRate formula
www.finitsolutions.com
- 45 -
Call from inside a Member Formula:
If api.Time.IsFirstPeriodInYear() Then
Dim priorScenarioBR As New OneStream.BusinessRule.Finance.PriorScenario.MainClass
Dim priorScenario As String = priorScenarioBR.FindPriorScenario(si, api, args, _
api.Pov.Scenario, api.Pov.time)
api.Data.Calculate("F#BegBalMth=F#EndBal:S#" & priorScenario & ":T#PovPrior1“)
Else
api.Data.Calculate("F#BegBalMth=F#EndBal:T#PovPrior1")
End If
Call from inside a CubeView member filter:
T#PovPriorYearM12:getdatacell("BR#[PriorScenario,|POVScenario|,|PovYear|]")
T#PovPriorYearM12:getdatacell("BR#[PriorScenario,Budget,2015]")
The Business Rule is available. Contact the Finit Sales team for details.
PriorScenario business rule

More Related Content

PDF
Finit formula and business rule efficiency in one stream
PDF
Finit OneStream - What's Possible Part II
PDF
OneStream - What's Possible?
PDF
OneStream Deep Dive
PDF
Currency Translation in HFM
PPT
FDMEE Tutorial - Part 1
PDF
Data-Driven Rules in HFM
PPTX
Deep dive on dynamic member lists
Finit formula and business rule efficiency in one stream
Finit OneStream - What's Possible Part II
OneStream - What's Possible?
OneStream Deep Dive
Currency Translation in HFM
FDMEE Tutorial - Part 1
Data-Driven Rules in HFM
Deep dive on dynamic member lists

What's hot (20)

PPT
HFM-Implementation
PDF
HFM Business Rule Writing Tips and Techniques
DOCX
HFM Zero view settings
PDF
Where Did That Come From? Techniques for Debugging HFM
PDF
Cash flow in hfm – simplified
PDF
HFM Member List Tips
PPTX
Cash Flow Series, Part I: 2-dimensional vs 3-dimensional
PDF
Finit solutions getting the most out of hfm process management and phased sub...
PPT
Hfm rule custom consolidation
PPTX
Dimensionality & Dimensions of Hyperion Planning
PDF
Understanding HFM System Tables
PPTX
Oracle FCCS: A Deep Dive
PDF
Groovy and PBCS is Game Changing
PPTX
Cash Flow Series, Part 2: How to make HFM do the dirty work
PDF
How to go from HFM (on prem) to FCCS(cloud) with a horizontal learning curve
PDF
Finit solutions getting the most out of hfm - web data forms tips and tricks
PPTX
03. data forms in hyperion planning
PDF
FDMEE Taking Source Filters to the Next Level
PDF
Best Practices in HFM Application Design
PDF
Finit - Creative Solutions for FX Analysis in HFM
HFM-Implementation
HFM Business Rule Writing Tips and Techniques
HFM Zero view settings
Where Did That Come From? Techniques for Debugging HFM
Cash flow in hfm – simplified
HFM Member List Tips
Cash Flow Series, Part I: 2-dimensional vs 3-dimensional
Finit solutions getting the most out of hfm process management and phased sub...
Hfm rule custom consolidation
Dimensionality & Dimensions of Hyperion Planning
Understanding HFM System Tables
Oracle FCCS: A Deep Dive
Groovy and PBCS is Game Changing
Cash Flow Series, Part 2: How to make HFM do the dirty work
How to go from HFM (on prem) to FCCS(cloud) with a horizontal learning curve
Finit solutions getting the most out of hfm - web data forms tips and tricks
03. data forms in hyperion planning
FDMEE Taking Source Filters to the Next Level
Best Practices in HFM Application Design
Finit - Creative Solutions for FX Analysis in HFM
Ad

Similar to OneStream Functionality You Might Not be Using (But Should Be) (20)

PDF
Finit solutions intro to fdmee 11.1.2.4 032715
PDF
Finit solutions arm_deep_dive_feb_2014(1)
PDF
Supplemental Data Manager - What is it? What are some use cases? How do I get...
PPTX
Getting the Most Out of EPM: A deep dive into Account Reconciliation Manager
PDF
Introduction to Oracle Hyperion Planning - New Features in 11.1.2.4
PPTX
Finit solutions Getting the Most Out of EPM: Comparison between EPMA versus ...
PDF
Finit solutions series_fdm_batch_loader_041410_final
PPTX
Getting the Most out of EPM: Insight and Considerations related to upgrading ...
PPTX
Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2
PDF
Finit solutions epma_hfm_managingmetadata_201403
PDF
Finit solutions epma_hfm_managingmetadata_201403
PPTX
Finit solutions hfm managing metadata epma versus classic_march 2014
PDF
Getting Started with Calc Manager for HFM
PDF
Finit how to let go - enterprise archive apps
PDF
Finit - what would happen greatest hits and disasters
PDF
Finit solutions fcm_arm_introduction_webinar
PDF
Advanced Topics in Calc Manager for HFM
PPTX
Getting the Most out of EPMA: HFM Managing Metadata with EPMA
PDF
Finit solutions troubleshoot fdm like a pro august 2011
PDF
Finit creative solutions for cash flow fx analysis through dashboarding
Finit solutions intro to fdmee 11.1.2.4 032715
Finit solutions arm_deep_dive_feb_2014(1)
Supplemental Data Manager - What is it? What are some use cases? How do I get...
Getting the Most Out of EPM: A deep dive into Account Reconciliation Manager
Introduction to Oracle Hyperion Planning - New Features in 11.1.2.4
Finit solutions Getting the Most Out of EPM: Comparison between EPMA versus ...
Finit solutions series_fdm_batch_loader_041410_final
Getting the Most out of EPM: Insight and Considerations related to upgrading ...
Finit Solutions - What is New in Hyperion Financial Management 11.1.2.2
Finit solutions epma_hfm_managingmetadata_201403
Finit solutions epma_hfm_managingmetadata_201403
Finit solutions hfm managing metadata epma versus classic_march 2014
Getting Started with Calc Manager for HFM
Finit how to let go - enterprise archive apps
Finit - what would happen greatest hits and disasters
Finit solutions fcm_arm_introduction_webinar
Advanced Topics in Calc Manager for HFM
Getting the Most out of EPMA: HFM Managing Metadata with EPMA
Finit solutions troubleshoot fdm like a pro august 2011
Finit creative solutions for cash flow fx analysis through dashboarding
Ad

More from finitsolutions (17)

PPTX
Lumberjack: Finit's Oracle EPM - Hyperion System Monitoring Tool
PDF
Finit - Breaking Through the Cloud Part II: FCCS, Closing in on Full Parity w...
PDF
Finit - Breaking Through the Cloud: An Overview of Oracle EPM Cloud
PDF
Finit - State of Oracle EPM
PDF
Finit - Hybrid Cubes to the Rescue
PDF
Finit Hyperion Planning & PBCS Simplified User Interface
PDF
Finit one small step - tips and tricks for transitioning from fdm to fdmee
PDF
Finit - All Things Chart of Accounts
PDF
Finit - What's Trending: Topics on the Cloud and Infrastructure
PDF
Introduction to HPCM
PPTX
Planning Process Considerations
PDF
Finit - Driver Based Forecasting 021216
PDF
Finit solutions - Automating Data Loads with FDMEE
PDF
Finit solutions - The Benefits of a Rolling Forecast
PDF
Redesigning Hyperion Planning - Is going from Block Storage (BSO) to Aggregat...
PDF
Upgrading to 11.1.2.4 and Other Technical Considerations
PDF
Data options with hyperion planning and essbase
Lumberjack: Finit's Oracle EPM - Hyperion System Monitoring Tool
Finit - Breaking Through the Cloud Part II: FCCS, Closing in on Full Parity w...
Finit - Breaking Through the Cloud: An Overview of Oracle EPM Cloud
Finit - State of Oracle EPM
Finit - Hybrid Cubes to the Rescue
Finit Hyperion Planning & PBCS Simplified User Interface
Finit one small step - tips and tricks for transitioning from fdm to fdmee
Finit - All Things Chart of Accounts
Finit - What's Trending: Topics on the Cloud and Infrastructure
Introduction to HPCM
Planning Process Considerations
Finit - Driver Based Forecasting 021216
Finit solutions - Automating Data Loads with FDMEE
Finit solutions - The Benefits of a Rolling Forecast
Redesigning Hyperion Planning - Is going from Block Storage (BSO) to Aggregat...
Upgrading to 11.1.2.4 and Other Technical Considerations
Data options with hyperion planning and essbase

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
KodekX | Application Modernization Development
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
cuic standard and advanced reporting.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
A Presentation on Artificial Intelligence
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Machine learning based COVID-19 study performance prediction
PDF
Empathic Computing: Creating Shared Understanding
PDF
Modernizing your data center with Dell and AMD
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Approach and Philosophy of On baking technology
PPT
Teaching material agriculture food technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
20250228 LYD VKU AI Blended-Learning.pptx
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
KodekX | Application Modernization Development
Understanding_Digital_Forensics_Presentation.pptx
NewMind AI Monthly Chronicles - July 2025
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Spectral efficient network and resource selection model in 5G networks
cuic standard and advanced reporting.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
A Presentation on Artificial Intelligence
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Machine learning based COVID-19 study performance prediction
Empathic Computing: Creating Shared Understanding
Modernizing your data center with Dell and AMD
Advanced methodologies resolving dimensionality complications for autism neur...
Approach and Philosophy of On baking technology
Teaching material agriculture food technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...

OneStream Functionality You Might Not be Using (But Should Be)

  • 2. www.finitsolutions.com - 2 - Finit Overview • Founded in 2002 • 75+ employees in 20+ states, 14 dedicated to the OneStream practice – Mostly CPAs, MBAs – We have extensive CPM product and financial reporting backgrounds • 50+ Planning / Essbase Clients • 80+ HFM Clients – Managed several of the largest EPM projects in the U.S. – Including the largest roll-out of HFM in North America • 15 OneStream Clients – Lead the implementation of the first 3 live OneStream customers • AAA Life (Consolidation & Budgeting), Guardian and Henniges • Market Leader in ARM/FCM • World Leader in FDM implementations and custom solutions
  • 3. www.finitsolutions.com - 3 - • We make and deliver personalized financial reporting solutions and experiences. – By listening, questioning, and analyzing – By building relationships …not company to company, but person to person. – We are Makers and Doers WHY is Finit Here?
  • 4. www.finitsolutions.com - 4 - We Run Finit like a Family • Invest in our employees • All owners actively involved in the business • No debt or external owners – Prioritize the customer, not profitability • Long term stability – Hire employees, not subcontractors • Compensation model based on client satisfaction HOW do we achieve our beliefs?
  • 5. www.finitsolutions.com - 5 - Our values, on which we ask you to provide consultant feedback: Finit Values
  • 7. www.finitsolutions.com - 7 - About the Presenter Phil Brosnan (pbrosnan@finitsolutions.com) 2+ Years of OneStream experience • Led the first live Enterprise to OneStream project 17+ years in Automotive Finance • Traditional roles: Cost Accountant to Finance Director • System implementations: MfgPro, SAP, EssBase, Global HFM (1,200+ users). Based in Detroit
  • 8. www.finitsolutions.com I didn’t know you could do that! Cool pieces of OneStream functionality you might not be using (but should). Phil Brosnan – Finit Solutions
  • 9. www.finitsolutions.com - 9 - Objectives • Many presentations are awesome, but don’t give you anything tangible to implement in your App. This presentation • See 10 pieces of OneStream functionality • Learn a couple things you didn’t know • Take at least one tangible item back to your project.
  • 10. www.finitsolutions.com - 10 - Problem • You need a list of certain members: – All IC Entities, IC Accounts, foreign entities, etc… • You can make Business Rules for Member lists, but they are moderately complicated. 1. Easy member lists
  • 11. www.finitsolutions.com - 11 - Solution • .where member expansion is super-easy. • Almost limitless when combined with Text fields – E#Root.base.where(Currency <> USD) – E#Root.descendants.where(IsIC = True) – UD1#Top.base.where(Text1 = HR) – .where((Text1 = HR) and (Text2 contains Blue)) • User defined dims have 8 text fields (use them!) 1. Easy member lists
  • 12. www.finitsolutions.com - 12 - Usage • E#allorgs.base.where(Currency <> USD) • E#allorgs.base.where(Text1 = [SAP GL]) 1. Easy member lists
  • 13. www.finitsolutions.com - 13 - Problem • Confirmation rules that need to validate both positive and negative variances • Can be a little complicated: If args.ConfirmationRuleArgs.DisplayValue > 100 Then Return False ‘Fail Else If args.ConfirmationRuleArgs.DisplayValue < -100 Then Return False ‘Fail Else Return True ‘Pass 2. Using VB.Net Math functions
  • 14. www.finitsolutions.com - 14 - Solution • Use VB.Net Math functions to simplify rules: If Math.Abs(args.ConfirmationRuleArgs.DisplayValue)>100 • Math.Abs Returns the absolute value of a number. • Math.Max Returns the larger of two numbers. • Math.Round Returns a rounded number • Math.Sign Returns the sign of the value • Many others as well 2. Using VB.Net Math functions
  • 15. www.finitsolutions.com - 15 - Usage • The Math functions are just the tip of the VB.NET iceberg. • Lots of resources available on line: – http://www.microsoftvirtualacademy.com/training- courses/vb-fundamentals-for-absolute-beginners – http://www.dotnetperls.com/keyword-vbnet – Just Google it. 2. Using VB.Net Math functions
  • 16. www.finitsolutions.com - 16 - Problem • For design and usability purposes, you want a blank row in a cube view. 3. Truly blank rows in a cubeview
  • 17. www.finitsolutions.com - 17 - Solution • You could set white text on a white background, or mess with Row height/padding/etc… • Easier is to use the “Transparent” color • Can be used on just the text, or both the text and background. 3. Truly blank rows in a cubeview
  • 18. www.finitsolutions.com - 18 - Usage • Works in CubeView, Report, and Excel (mostly). • Credit to Michelle Johnson at Graco for this one! 3. Truly blank rows in a cubeview
  • 19. www.finitsolutions.com - 19 - Problem • Exchange rates are stored outside the cube. • Can’t report on exchange rates in a Cube View. • There is an XFGet…, but not end-user friendly. 4. Pull Exchange Rates into Cube
  • 20. www.finitsolutions.com - 20 - Solution • Create Dynamic Calc formula to pull exchange rates into the cube. • Actual Formula is in the appendix 4. Pull Exchange Rates into Cube
  • 21. www.finitsolutions.com - 21 - Usage 4. Pull Exchange Rates into Cube
  • 22. www.finitsolutions.com - 22 - Problem • Two separate cubes: – Main Cube and Sales Analysis or HR or Project cubes • How do you link key accounts across the cubes? – Net Sales and Std Cost for the Sales Analysis Cube – Headcount and Salary expense for an HR cube 5. Cross-cube calculations
  • 23. www.finitsolutions.com - 23 - Solution • Cross-cube calculations: CB#Main:A#Headcount = CB#HR:A#TotalHeads • Normal formula rules apply: – If a dimension is left out of the formula (ie: flow or UD2 above), it runs for every member of that dim. – So, if your dims are different in the 2 cubes, make sure you pick that up in your formula. CB#Sales:A#CustSales:UD1#noCustomer = CB#Main:A#NetSales:UD1#TopCostCenter 5. Cross-cube calculations
  • 24. www.finitsolutions.com - 24 - Usage • See “50100 – Health Ins” from Golfstream 5. Cross-cube calculations Houston Houston Heights New York Cube Account GolfStream 50200 - Base 100,000 100,000 100,000 Drivers Health 11% 11% 8% GolfStream 50200 - Base 11,000 11,000 8,000
  • 25. www.finitsolutions.com - 25 - Problem • You want to give users a starting point: – Copying from a prior forecast as a starting point – Loading a headcount file from HR – Loading prior year as the start point for Budget • But, you want users to be able to change data – And you want to track the changes. 6. Loading data to O#BeforeAdj
  • 26. www.finitsolutions.com - 26 - Solution • Use O#BeforeAdj for the data entry form • Form will show the baseline data (in O#Import) • When the user changes the value, Onestream squeezes the difference into O#Forms 6. Loading data to O#BeforeAdj
  • 27. www.finitsolutions.com - 27 - 6. Loading data to O#BeforeAdj Type into BeforeAdj member Difference saved to Forms member Data previously copied into Import member from other scenario Import 1000 Forms - BeforeAdj 1000 Typed 1200 into BeforeAdj Import 1000 Forms - BeforeAdj 1200 200 1 2 3 Squeeze diff to Forms
  • 28. www.finitsolutions.com - 28 - Usage • Demo 6. Loading data to O#BeforeAdj
  • 29. www.finitsolutions.com - 29 - Problem • You want to load an excel budget template into OneStream thru workflow (not XFSetCell). • The file has 12 columns (one per month). – Or, cost centers in columns – Or, segments in columns – Or, accounts in columns, etc… 7. Load Matrix Excel file thru WF
  • 30. www.finitsolutions.com - 30 - Solution • Matrix Load file • Multiple columns in the xfd range. • Amounts are in the matrix’d columns, not in Amt. 7. Load Matrix Excel file thru WF A# IC# T#:[]:[]:[2015M1] T#:[]:[]:[2015M2] T#:[]:[]:[2015M3] GrossSales None 100.00 200.00 300.00
  • 31. www.finitsolutions.com - 31 - Usage • Demo an Excel file, with the xfd range • There are examples in the Reference Document 7. Load Matrix Excel file thru WF
  • 32. www.finitsolutions.com - 32 - Problem • The main hierarchy has foreign entities rolling to a foreign parent: • But, you want to see PlantA and PlantB in USD. 8. Auto translate to a currency North America (USD) Mexico Legal (MXN) Mexico PlantA (MXN) Mexico PlantB (MXN)
  • 33. www.finitsolutions.com - 33 - Solution • The old way would be to force translate, or • Create an alt hierarchy to trigger the translation • But in 3.5, use “Auto Translation Currencies” 8. Auto translate to a currency Mexico_in_USD (USD) Mexico PlantA (MXN) Mexico PlantB (MXN)
  • 34. www.finitsolutions.com - 34 - Usage • Demo 8. Auto translate to a currency
  • 35. www.finitsolutions.com - 35 - Problem • You want to limit (or extend) the entities that have confirmation rules run. • Example: Balance Sheet only balances at the Legal entity level, not at every entity (plants). 9. Control confirmation entities
  • 36. www.finitsolutions.com - 36 - Solution • Workflow Calculation Definitions also control confirmations 1. Will consolidate and also confirm 2. Will consolidate, but won’t confirm 3. Won’t consolidate, but will confirm 9. Control confirmation entities
  • 37. www.finitsolutions.com - 37 - Usage Result 9. Control confirmation entities
  • 38. www.finitsolutions.com - 38 - Problem • Where do Beginning Balances come from? • OneStream always pulls from the same scenario – 14 Budget rolls to 15 Budget to 16 Budget, etc… • BUT, what if that’s not what you want? 10. BegBal from a different scenario Scenario Jan-14 … Dec-14 Jan-15 … Sep-15 Oct-15 Nov-15 Dec-15 Jan-16 … Dec-16 Jan-17 … Dec-17 Actual Q3 Forecast Budget '15 Budget from '14 Actual 16 Bud from Fcst 17 Bud from Bud
  • 39. www.finitsolutions.com - 39 - Solution • Custom Business Rule that can be called from any member formula. • Custom Business Rule that can be called from Cube Views and Quick Views. • Copy of the BR is in a separate file. • Simple maintenance (In the Scenario text field) 2014=Actual, 2015=Forecast, 2016=Budget 10. BegBal from a different scenario
  • 40. www.finitsolutions.com - 40 - Usage • Demo 10. BegBal from a different scenario
  • 41. www.finitsolutions.com - 41 - Business Rule • The Business Rule to run this functionality is available from Fint. • Please contact anyone on the Sales team for a copy – Jeremy Bulman (jbulman@finitsolutions.com) – Joe Mizerk (jmizerk@finitsolutions.com) – Greg Barrett (gbarrett@finitsolutions.com) 10. BegBal from a different scenario
  • 42. www.finitsolutions.com - 42 - Business Rule • The Business Rule to run this functionality is available from Fint. • Please contact anyone on the Sales team for a copy – Jeremy Bulman (jbulman@finitsolutions.com) – Joe Mizerk (jmizerk@finitsolutions.com) – Greg Barrett (gbarrett@finitsolutions.com)
  • 43. www.finitsolutions.com - 43 - APPENDIX Code samples and configuration settings
  • 44. www.finitsolutions.com - 44 - Dim viewMember As ViewMember = ViewMember.GetItem(api.Pov.View.MemberPk.MemberId) If viewMember.IsAnnotationType Then 'Return an empty string if this is a text-based dataCell. Return "" Else Dim destCurrId As Integer = api.Pov.Cons.MemberPk.MemberId If destCurrId = Currency.USD.Id Then Return 1.0 Else Dim rateType As FxRateType = api.FxRates.GetFxRateTypeForRevenueExp() 'AverageRate 'Dim rateType As FxRateType = api.FxRates.GetFxRateTypeForAssetLiability() 'ClosingRate Dim cubeId As Integer = api.Pov.Cube.CubeId Dim timeId As Integer = api.Pov.Time.MemberPk.MemberId Dim sourceCurrId As Integer = Currency.USD.Id Dim rate As Decimal = api.FxRates.GetCalculatedFxRate(rateType, cubeId, timeId, sourceCurrId, destCurrId) Return rate End If End If The EndRate formula would be the same, except pulling the rate type for AssetLiability. AvgRate formula
  • 45. www.finitsolutions.com - 45 - Call from inside a Member Formula: If api.Time.IsFirstPeriodInYear() Then Dim priorScenarioBR As New OneStream.BusinessRule.Finance.PriorScenario.MainClass Dim priorScenario As String = priorScenarioBR.FindPriorScenario(si, api, args, _ api.Pov.Scenario, api.Pov.time) api.Data.Calculate("F#BegBalMth=F#EndBal:S#" & priorScenario & ":T#PovPrior1“) Else api.Data.Calculate("F#BegBalMth=F#EndBal:T#PovPrior1") End If Call from inside a CubeView member filter: T#PovPriorYearM12:getdatacell("BR#[PriorScenario,|POVScenario|,|PovYear|]") T#PovPriorYearM12:getdatacell("BR#[PriorScenario,Budget,2015]") The Business Rule is available. Contact the Finit Sales team for details. PriorScenario business rule