SlideShare a Scribd company logo
1 of 34
2
AGENDA Introductions
1
On-Premise vs. PBCS
2
What can we get?
3
What can’t we get?
4
Demos
5
Code Samples
6
Q&A
7
3
About Brian Marshall
 VP of Delivery
 20+ years IT and EPM/BI Experience
 15+ years with US-Analytics
 150+ projects with US-Analytics
 Presented at Kscope every year since 2010
 Frequent blogger at EPMMarshall.com
4
About US-Analytics
Dallas-based, Hyperion-focused for over 18 years with continuous business growth
 We are nimble and respond quickly to customers’ needs
 Over 500 clients and over 1,000 successful Hyperion engagements
 Seasoned business and technical acumen with EPM and BI initiatives
 Over 65 professionals with 12+ years each of Hyperion experience and certifications
 Active leaders in the Oracle community
 Founder of Hyperion Professional Women's Forum, advisory board leadership, conference
presentations, webinars, EPM Speaker of the Year at Kaleidoscope in 2015 and 2014
 Corporate culture of integrity with 100% customer commitment
 Managed services
 Managed services team is Dallas based, each with 10+ years of experience
 Proven processes for all aspects of managed services
ABOUT
US-ANALYTICS
Managed Services
Upgrades & Migrations
Implementations
Infrastructure
Process & Advisory
Services
Big Data
Data Governance
Business Intelligence
Financial Close & Consolidation
Planning & Forecasting
Solutions
Data Integration
Training
Accolades
– Original Oracle Hyperion and Pillar Partner
– Oracle Hyperion Financial Management 11
– Oracle Hyperion Planning 11
– Oracle Essbase 11
– Oracle Data Relationship Management 11
2013, 2014, 2015
2015 Oracle TOLA
EPM Partner of the Year
6
On-Premise vs. PBCS
 PBCS is Hyperion Planning + 4 years of constant development
 Very few features exist in on-premise that aren’t already available in PBCS
 The interface between the two applications has been the biggest deviation in the
technologies
 With that new interface have come a megaton of new features that may never make
it to the on-premise code-base
 On-Premise features that PBCS doesn’t include (yet):
▶Hybrid Essbase (not yet officially supports, but works great)
▶Essbase Ad-hoc functionality
▶Access to the Planning Repository
 PBCS features that PBCS doesn’t include (and may never):
▶This list includes somewhere around 100 features of significance
▶This list grows with every release of PBCS
▶On-Premise will get a patch eventually…but we still don’t know which features will make it
in
7
What Can We Get?
 Smart Push
 Dimension-based Smart Lists
 Year deletion
 ASO Essbase Ad-Hoc Functionality (take that PBCS!)
8
What Can’t We Get?
 I’d need 10 slides to capture the answer to this question…but here are some of
the highlights:
▶Form Exclusions, Ranges, and Formatting
▶Smart Forms
▶Periods based on Plan Types
▶Valid Intersections (this one is huge)
▶Attribute Dimensions in Forms and Smart View (also huge)
▶Navigation Flows
▶Localization
▶Groovy
▶To see more details, I have a blog post on this very topic:
‒ https://www.epmmarshall.com/pbcs-vs-premise-hyperion-planning-new-features/
9
Smart Push
 So how do we get Smart Push working in on-premise Planning?
 We build a complex set of rules that call rules that call rules that eventually
move some data.
 There are a few ways to get there…one way looks like this:
 Just a few steps…
Form
Business Rule
(on save)
MaxL Script
Data
Export
Business Rule MaxL Script Load Rule
10
Smart Push
 Ok…but maybe this would be better:
 That’s more like it…
Form
Business Rule
(on save)
MDXDataCopy
11
Introduction
MDXDataCopy
 One of the many functions that is included with Calculation Manager
 Magically copies data from one cube to another using MDX…my favorite
language of all time
 Requires some setup:
▶Generate a calcmgr encryption key
▶Encrypt your username using that key
▶Encrypt your password using that key
▶Build your calculation script or business rule to execute the script
 This is definitely not the same thing as the keys you generate using MaxL
12
Setup
MDXDataCopy
 First, log into your CalcMgr server
 Open a command prompt and ensure that java is in your path:
▶ path e:OracleMiddlewarejdk160_35bin
 Next, change directory to the path where you find calcmgrCmdLine.jar:
▶ cd OracleMiddlewareEPMSystem11R1commoncalcmgr11.1.2.0lib
 Generate a key:
▶ java -jar calcmgrCmdLine.jar –gk
▶ For me, this generated the key i8V9DF5ed7J66CgE9fyEbf
 Memorize that key and use it to encrypt your username:
▶ java -jar calcmgrCmdLine.jar -encrypt -key i8V9DF5ed7J66CgE9fyEbf admin
▶ For me, this generated the encrypted username yGnSWsRl9n7IJibBn5DlpqUYggM1VwKc1EC4GFSubmshYRMGwBmntj6JIJ7jNG6T
 Now use the same key to encrypt your password:
▶ java -jar calcmgrCmdLine.jar -encrypt -key i8V9DF5ed7J66CgE9fyEbf GetYourOwnPassword
▶ For me, this generated the encrypted password MkAWnNRVgYxnuINAaOV8vIJLdxp8qU00lPqgVP+VeMLHwUHDPa2Ibj9QHtuqvVjb
13
The Function
MDXDataCopy
 The MDXDataCopy function has the following parameters:
▶ Key that we just generated
▶ Username that we just encrypted
▶ Password that we just encrypted
▶ Source Essbase Application
▶ Source Essbase Database
▶ Target Essbase Application
▶ Target Essbase Database
▶ MDX column definition
▶ MDX row definition
▶ Source mapping
▶ Target mapping
▶ POV for any dimensions in the target, but not the source
▶ Number of rows to commit
▶ Log file path
 That is a ridiculous number of parameters…
14
Finally…the actual data copy
MDXDataCopy
 So what does the actual code look like?
RUNJAVA com.hyperion.calcmgr.common.cdf.MDXDataCopy
"i8V9DF5ed7J66CgE9fyEbf"
"yGnSWsRl9n7IJibBn5DlpqUYggM1VwKc1EC4GFSubmshYRMGwBmntj6JIJ7jNG6T"
"MkAWnNRVgYxnuINAaOV8vIJLdxp8qU00lPqgVP+VeMLHwUHDPa2Ibj9QHtuqvVjb"
"VisionM"
"Plan1"
"VMASO"
"VMASO"
"{[Jul]}"
"CrossJoin({[No
Account]},CrossJoin({[FY16]},CrossJoin({[Forecast]},CrossJoin({[Working]
},CrossJoin({[No Entity]},{[No Product]})))))"
""
""
""
"-1"
"e:mdxdatacopy.log";
15
Demo
 Smart Push On-Premise
16
Gotchas and Code
 Clearly this is hard-coded
 Easy to pop into CalcMgr and add in some parameters
 Depending on the form layout, you will likely need more than one, if not many
versions of this script to properly support all of your forms
 But overall…pretty awesome
17
Dimension-Based Smart Lists
 Dimension-based Smart Lists are one of the easier things to replicate from
PBCS
 In PBCS, every member has a new alias that contains the ID for the member in
the HSP_OBJECT table
 First we need to mimic that:
 Now that we have an alias table to reference we can use that to also create
our Smart List:
Dim
Extract
Query the
Repository
Outline Load
Utility
Update the
Aliases
Outline Load
Utility
Modify
Extract
SL
Extract
SL
Deletes
Outline Load
Utility
Dim
Extract
Outline Load
Utility
Update the
Aliases
18
Setup
Dimension-Based Smart Lists
 Before we actually get our Smart List created, we need to make sure that we
can reference back to the members in the dimension
 To do this, we will query the Planning Repository to product a list of all of the
dimension members along with their OBJECT_ID
 We will then add an alias table to the application so that we can store this
information
 This OBJECT_ID will then be used to create or update the alias so that all
members will have this property
 You can also do this via DRM or your favorite MDM solution rather than using
the repository
19
Alias Query
Dimension-Based Smart Lists
 Once, the alias has been added, we need a query to get the OBJECT_ID and
put it into an alias:
SELECT
mo.OBJECT_NAME AS [Product]
,po.OBJECT_NAME AS [Parent]
,'SL_' + CAST(mo.OBJECT_ID AS VARCHAR) AS [Alias: SL_Alias]
FROM
HSP_MEMBER m
INNER JOIN
HSP_OBJECT mo ON
m.MEMBER_ID = mo.OBJECT_ID
INNER JOIN
HSP_OBJECT do ON
m.DIM_ID = do.OBJECT_ID
INNER JOIN
HSP_OBJECT po ON
mo.PARENT_ID = po.OBJECT_ID
WHERE
do.OBJECT_NAME = 'Product'
20
Demo
 Let’s execute the query
 Once we have the results, we’ll update the alias
 This can all be automated, but for demo purposes…we will do it manually
21
Delete The Smart List
Dimension-Based Smart Lists
 When we update a dimension, we may add or delete members
 We don’t really know which operations have occurred
 Because we don’t know…we just remove the Smart List
22
Demo
 Let’s have a look at the file and then perform the delete
SmartList Name, Operation, Label, Display Order, Missing Label, Use Form Missing Label, Entry ID, Entry Name, Entry Label
SL_Product,deletesmartlist,,,,,,,
23
Create The Smart List
Dimension-Based Smart Lists
 Now that we have deleted the Smart List…let’s re-create it
 First, let’s build a query to get the dimension info for the Smart List
SELECT
'SL_Product' AS [SmartList Name]
,'addentry' AS [Operation]
,'' AS [Label]
,'' AS [Display Order]
,'' AS [Missing Label]
,'' AS [Use Form Missing Label]
,m.MEMBER_ID AS [Entry ID]
,mo.[OBJECT_NAME] AS [Entry Name]
,mo.OBJECT_NAME AS [Entry Label]
FROM
HSP_MEMBER m
INNER JOIN
HSP_OBJECT mo ON m.MEMBER_ID = mo.OBJECT_ID
INNER JOIN
HSP_OBJECT do ON m.DIM_ID = do.OBJECT_ID
INNER JOIN
HSP_OBJECT po ON mo.PARENT_ID = po.OBJECT_ID
WHERE
do.OBJECT_NAME = 'Product'
24
Demo
 Now let’s use the results of the query to re-create the Smart List
 Again, this will be manual for demo purposes
 This can easily be automated using the outline load utility
25
Gotchas and Code
 There are a lot of steps to this code as well…but generally speaking not a lot
of gotchas
26
Deleting Years
 PBCS has a handy button for this purpose…but On-Premise requires basic SQL
code
 The good new is…we’ve been doing this for years…long before PBCS even
existed
 Finally…something that doesn’t require 20 steps…
Update
HSP_Calendar
Delete From
HSP_Member
Delete from
HSP_Object
Restart
Planning
27
Gotchas and Code
 This one is pretty simple…
SELECT * FROM HSP_CALENDAR --First Year is 2009 and current year is 50002
SELECT * FROM HSP_OBJECT WHERE OBJECT_NAME = 'FY09' --Search for FY09...who needs consistency anyway
SELECT * FROM HSP_OBJECT WHERE OBJECT_NAME = 'FY10' --Find FY10 ID
UPDATE HSP_CALENDAR SET FIRST_YEAR = '2010'
DELETE FROM HSP_MEMBER WHERE OBJECT_ID = (SELECT OBJECT_ID FROM HSP_OBJECT WHERE OBJECT_NAME = 'FY09')
--Get rid of member first...foreign key constraint
DELETE FROM HSP_OBJECT WHERE OBJECT_NAME = 'FY09' --now get rid of object
28
ASO Plan Types with Essbase Ad Hoc
 In Hyperion Planning, you can access Essbase using an Ad-Hoc connection in
Smart View
 This works great with BSO, and even has check box during refresh to build
your security filters
 ASO on the other hand…not really
 So how do we do this?
▶First, patch Planning (this only works on 11.1.2.4.04+)
▶Update your Planning application properties to deploy an ASO cube
▶Backup and Delete your ASO cube in EAS
▶Restart Planning and Redeploy
▶Run the magical script included in the addendum
29
After the Patch
ASO Plan Types with Essbase Ad Hoc
 We update the properties of the application and restart planning:
30
After the Patch
ASO Plan Types with Essbase Ad Hoc
 Now we have to back up our ASO cube…
▶Log into your Essbase server and backup the entire directory
 Then we delete the application in EAS
▶Yes…I said delete your application
 Then we refresh our application in Planning
 Finally, we restore our backed up artifacts
31
Gotchas and Code
 Like many things in On-Prem…lots of steps
 We actually found a few bugs in Essbase that had to be worked around to get
this working
 We had to rebuild the Planning security model in Essbase…that was fun…
▶Using MaxL, we extract the current filters from the model
▶We then use the results to build a MaxL script the removes those filters
▶Finally we create a new set of filters using the security from the Planning Repository
‒ This is somewhere around 1 million lines of code…at least it felt like it
 I’ll upload the code for this one as it is waaaaay too big to fit here
32
Q&A
33
Shameless Plug
 Visit my blog:
▶EPMMarshall.com
▶Formerly HyperionEPM.com
 Visit my benchmark:
▶EssBench.com
 Connect to #orclepm on twitter:
bmarshall teaching Calculation Manager on prem

More Related Content

Similar to bmarshall teaching Calculation Manager on prem

Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsSalesforce Developers
 
Sap business-object-universe-idt-lab-i
Sap business-object-universe-idt-lab-iSap business-object-universe-idt-lab-i
Sap business-object-universe-idt-lab-iAmit Sharma
 
Using power shell to improve sharepoint management
Using power shell to improve sharepoint managementUsing power shell to improve sharepoint management
Using power shell to improve sharepoint managementMitch Darrow
 
Informatica complex transformation i
Informatica complex transformation iInformatica complex transformation i
Informatica complex transformation iAmit Sharma
 
Using feature teams to deliver high business value
Using feature teams to deliver high business valueUsing feature teams to deliver high business value
Using feature teams to deliver high business valueThoughtworks
 
need help completing week 6 ilab.. i will upload what I currently ha.docx
need help completing week 6 ilab.. i will upload what I currently ha.docxneed help completing week 6 ilab.. i will upload what I currently ha.docx
need help completing week 6 ilab.. i will upload what I currently ha.docxniraj57
 
Evolutionary db development
Evolutionary db development Evolutionary db development
Evolutionary db development Open Party
 
Stored procedures by thanveer danish melayi
Stored procedures by thanveer danish melayiStored procedures by thanveer danish melayi
Stored procedures by thanveer danish melayiMuhammed Thanveer M
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBIntroducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBMongoDB
 
Your admin toolbelt is not complete without Salesforce DX
Your admin toolbelt is not complete without Salesforce DXYour admin toolbelt is not complete without Salesforce DX
Your admin toolbelt is not complete without Salesforce DXDaniel Stange
 
Building LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDBBuilding LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDBMongoDB
 
SQL vs SOQL for Salesforce Analytics
SQL vs SOQL for Salesforce AnalyticsSQL vs SOQL for Salesforce Analytics
SQL vs SOQL for Salesforce AnalyticsSumit Sarkar
 
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...Julian Hyde
 
Sql interview question part 8
Sql interview question part 8Sql interview question part 8
Sql interview question part 8kaashiv1
 
With big data comes big responsibility
With big data comes big responsibilityWith big data comes big responsibility
With big data comes big responsibilityERPScan
 

Similar to bmarshall teaching Calculation Manager on prem (20)

Apex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong FoundationsApex Enterprise Patterns: Building Strong Foundations
Apex Enterprise Patterns: Building Strong Foundations
 
Sap business-object-universe-idt-lab-i
Sap business-object-universe-idt-lab-iSap business-object-universe-idt-lab-i
Sap business-object-universe-idt-lab-i
 
Using power shell to improve sharepoint management
Using power shell to improve sharepoint managementUsing power shell to improve sharepoint management
Using power shell to improve sharepoint management
 
Informatica complex transformation i
Informatica complex transformation iInformatica complex transformation i
Informatica complex transformation i
 
Using feature teams to deliver high business value
Using feature teams to deliver high business valueUsing feature teams to deliver high business value
Using feature teams to deliver high business value
 
need help completing week 6 ilab.. i will upload what I currently ha.docx
need help completing week 6 ilab.. i will upload what I currently ha.docxneed help completing week 6 ilab.. i will upload what I currently ha.docx
need help completing week 6 ilab.. i will upload what I currently ha.docx
 
Evolutionary db development
Evolutionary db development Evolutionary db development
Evolutionary db development
 
Insight
InsightInsight
Insight
 
Stored procedures by thanveer danish melayi
Stored procedures by thanveer danish melayiStored procedures by thanveer danish melayi
Stored procedures by thanveer danish melayi
 
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDBIntroducing MongoDB Stitch, Backend-as-a-Service from MongoDB
Introducing MongoDB Stitch, Backend-as-a-Service from MongoDB
 
Your admin toolbelt is not complete without Salesforce DX
Your admin toolbelt is not complete without Salesforce DXYour admin toolbelt is not complete without Salesforce DX
Your admin toolbelt is not complete without Salesforce DX
 
Building LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDBBuilding LinkedIn's Learning Platform with MongoDB
Building LinkedIn's Learning Platform with MongoDB
 
Mstr meetup
Mstr meetupMstr meetup
Mstr meetup
 
Sap business Objects certification note paper1
Sap business Objects certification note paper1Sap business Objects certification note paper1
Sap business Objects certification note paper1
 
SQL vs SOQL for Salesforce Analytics
SQL vs SOQL for Salesforce AnalyticsSQL vs SOQL for Salesforce Analytics
SQL vs SOQL for Salesforce Analytics
 
Create and Maintain COMPLEX HIERARCHIES easily
Create and Maintain COMPLEX HIERARCHIES easilyCreate and Maintain COMPLEX HIERARCHIES easily
Create and Maintain COMPLEX HIERARCHIES easily
 
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
Smarter Together - Bringing Relational Algebra, Powered by Apache Calcite, in...
 
Sql interview question part 8
Sql interview question part 8Sql interview question part 8
Sql interview question part 8
 
Ebook8
Ebook8Ebook8
Ebook8
 
With big data comes big responsibility
With big data comes big responsibilityWith big data comes big responsibility
With big data comes big responsibility
 

Recently uploaded

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 

Recently uploaded (20)

Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 

bmarshall teaching Calculation Manager on prem

  • 1.
  • 2. 2 AGENDA Introductions 1 On-Premise vs. PBCS 2 What can we get? 3 What can’t we get? 4 Demos 5 Code Samples 6 Q&A 7
  • 3. 3 About Brian Marshall  VP of Delivery  20+ years IT and EPM/BI Experience  15+ years with US-Analytics  150+ projects with US-Analytics  Presented at Kscope every year since 2010  Frequent blogger at EPMMarshall.com
  • 4. 4 About US-Analytics Dallas-based, Hyperion-focused for over 18 years with continuous business growth  We are nimble and respond quickly to customers’ needs  Over 500 clients and over 1,000 successful Hyperion engagements  Seasoned business and technical acumen with EPM and BI initiatives  Over 65 professionals with 12+ years each of Hyperion experience and certifications  Active leaders in the Oracle community  Founder of Hyperion Professional Women's Forum, advisory board leadership, conference presentations, webinars, EPM Speaker of the Year at Kaleidoscope in 2015 and 2014  Corporate culture of integrity with 100% customer commitment  Managed services  Managed services team is Dallas based, each with 10+ years of experience  Proven processes for all aspects of managed services
  • 5. ABOUT US-ANALYTICS Managed Services Upgrades & Migrations Implementations Infrastructure Process & Advisory Services Big Data Data Governance Business Intelligence Financial Close & Consolidation Planning & Forecasting Solutions Data Integration Training Accolades – Original Oracle Hyperion and Pillar Partner – Oracle Hyperion Financial Management 11 – Oracle Hyperion Planning 11 – Oracle Essbase 11 – Oracle Data Relationship Management 11 2013, 2014, 2015 2015 Oracle TOLA EPM Partner of the Year
  • 6. 6 On-Premise vs. PBCS  PBCS is Hyperion Planning + 4 years of constant development  Very few features exist in on-premise that aren’t already available in PBCS  The interface between the two applications has been the biggest deviation in the technologies  With that new interface have come a megaton of new features that may never make it to the on-premise code-base  On-Premise features that PBCS doesn’t include (yet): ▶Hybrid Essbase (not yet officially supports, but works great) ▶Essbase Ad-hoc functionality ▶Access to the Planning Repository  PBCS features that PBCS doesn’t include (and may never): ▶This list includes somewhere around 100 features of significance ▶This list grows with every release of PBCS ▶On-Premise will get a patch eventually…but we still don’t know which features will make it in
  • 7. 7 What Can We Get?  Smart Push  Dimension-based Smart Lists  Year deletion  ASO Essbase Ad-Hoc Functionality (take that PBCS!)
  • 8. 8 What Can’t We Get?  I’d need 10 slides to capture the answer to this question…but here are some of the highlights: ▶Form Exclusions, Ranges, and Formatting ▶Smart Forms ▶Periods based on Plan Types ▶Valid Intersections (this one is huge) ▶Attribute Dimensions in Forms and Smart View (also huge) ▶Navigation Flows ▶Localization ▶Groovy ▶To see more details, I have a blog post on this very topic: ‒ https://www.epmmarshall.com/pbcs-vs-premise-hyperion-planning-new-features/
  • 9. 9 Smart Push  So how do we get Smart Push working in on-premise Planning?  We build a complex set of rules that call rules that call rules that eventually move some data.  There are a few ways to get there…one way looks like this:  Just a few steps… Form Business Rule (on save) MaxL Script Data Export Business Rule MaxL Script Load Rule
  • 10. 10 Smart Push  Ok…but maybe this would be better:  That’s more like it… Form Business Rule (on save) MDXDataCopy
  • 11. 11 Introduction MDXDataCopy  One of the many functions that is included with Calculation Manager  Magically copies data from one cube to another using MDX…my favorite language of all time  Requires some setup: ▶Generate a calcmgr encryption key ▶Encrypt your username using that key ▶Encrypt your password using that key ▶Build your calculation script or business rule to execute the script  This is definitely not the same thing as the keys you generate using MaxL
  • 12. 12 Setup MDXDataCopy  First, log into your CalcMgr server  Open a command prompt and ensure that java is in your path: ▶ path e:OracleMiddlewarejdk160_35bin  Next, change directory to the path where you find calcmgrCmdLine.jar: ▶ cd OracleMiddlewareEPMSystem11R1commoncalcmgr11.1.2.0lib  Generate a key: ▶ java -jar calcmgrCmdLine.jar –gk ▶ For me, this generated the key i8V9DF5ed7J66CgE9fyEbf  Memorize that key and use it to encrypt your username: ▶ java -jar calcmgrCmdLine.jar -encrypt -key i8V9DF5ed7J66CgE9fyEbf admin ▶ For me, this generated the encrypted username yGnSWsRl9n7IJibBn5DlpqUYggM1VwKc1EC4GFSubmshYRMGwBmntj6JIJ7jNG6T  Now use the same key to encrypt your password: ▶ java -jar calcmgrCmdLine.jar -encrypt -key i8V9DF5ed7J66CgE9fyEbf GetYourOwnPassword ▶ For me, this generated the encrypted password MkAWnNRVgYxnuINAaOV8vIJLdxp8qU00lPqgVP+VeMLHwUHDPa2Ibj9QHtuqvVjb
  • 13. 13 The Function MDXDataCopy  The MDXDataCopy function has the following parameters: ▶ Key that we just generated ▶ Username that we just encrypted ▶ Password that we just encrypted ▶ Source Essbase Application ▶ Source Essbase Database ▶ Target Essbase Application ▶ Target Essbase Database ▶ MDX column definition ▶ MDX row definition ▶ Source mapping ▶ Target mapping ▶ POV for any dimensions in the target, but not the source ▶ Number of rows to commit ▶ Log file path  That is a ridiculous number of parameters…
  • 14. 14 Finally…the actual data copy MDXDataCopy  So what does the actual code look like? RUNJAVA com.hyperion.calcmgr.common.cdf.MDXDataCopy "i8V9DF5ed7J66CgE9fyEbf" "yGnSWsRl9n7IJibBn5DlpqUYggM1VwKc1EC4GFSubmshYRMGwBmntj6JIJ7jNG6T" "MkAWnNRVgYxnuINAaOV8vIJLdxp8qU00lPqgVP+VeMLHwUHDPa2Ibj9QHtuqvVjb" "VisionM" "Plan1" "VMASO" "VMASO" "{[Jul]}" "CrossJoin({[No Account]},CrossJoin({[FY16]},CrossJoin({[Forecast]},CrossJoin({[Working] },CrossJoin({[No Entity]},{[No Product]})))))" "" "" "" "-1" "e:mdxdatacopy.log";
  • 16. 16 Gotchas and Code  Clearly this is hard-coded  Easy to pop into CalcMgr and add in some parameters  Depending on the form layout, you will likely need more than one, if not many versions of this script to properly support all of your forms  But overall…pretty awesome
  • 17. 17 Dimension-Based Smart Lists  Dimension-based Smart Lists are one of the easier things to replicate from PBCS  In PBCS, every member has a new alias that contains the ID for the member in the HSP_OBJECT table  First we need to mimic that:  Now that we have an alias table to reference we can use that to also create our Smart List: Dim Extract Query the Repository Outline Load Utility Update the Aliases Outline Load Utility Modify Extract SL Extract SL Deletes Outline Load Utility Dim Extract Outline Load Utility Update the Aliases
  • 18. 18 Setup Dimension-Based Smart Lists  Before we actually get our Smart List created, we need to make sure that we can reference back to the members in the dimension  To do this, we will query the Planning Repository to product a list of all of the dimension members along with their OBJECT_ID  We will then add an alias table to the application so that we can store this information  This OBJECT_ID will then be used to create or update the alias so that all members will have this property  You can also do this via DRM or your favorite MDM solution rather than using the repository
  • 19. 19 Alias Query Dimension-Based Smart Lists  Once, the alias has been added, we need a query to get the OBJECT_ID and put it into an alias: SELECT mo.OBJECT_NAME AS [Product] ,po.OBJECT_NAME AS [Parent] ,'SL_' + CAST(mo.OBJECT_ID AS VARCHAR) AS [Alias: SL_Alias] FROM HSP_MEMBER m INNER JOIN HSP_OBJECT mo ON m.MEMBER_ID = mo.OBJECT_ID INNER JOIN HSP_OBJECT do ON m.DIM_ID = do.OBJECT_ID INNER JOIN HSP_OBJECT po ON mo.PARENT_ID = po.OBJECT_ID WHERE do.OBJECT_NAME = 'Product'
  • 20. 20 Demo  Let’s execute the query  Once we have the results, we’ll update the alias  This can all be automated, but for demo purposes…we will do it manually
  • 21. 21 Delete The Smart List Dimension-Based Smart Lists  When we update a dimension, we may add or delete members  We don’t really know which operations have occurred  Because we don’t know…we just remove the Smart List
  • 22. 22 Demo  Let’s have a look at the file and then perform the delete SmartList Name, Operation, Label, Display Order, Missing Label, Use Form Missing Label, Entry ID, Entry Name, Entry Label SL_Product,deletesmartlist,,,,,,,
  • 23. 23 Create The Smart List Dimension-Based Smart Lists  Now that we have deleted the Smart List…let’s re-create it  First, let’s build a query to get the dimension info for the Smart List SELECT 'SL_Product' AS [SmartList Name] ,'addentry' AS [Operation] ,'' AS [Label] ,'' AS [Display Order] ,'' AS [Missing Label] ,'' AS [Use Form Missing Label] ,m.MEMBER_ID AS [Entry ID] ,mo.[OBJECT_NAME] AS [Entry Name] ,mo.OBJECT_NAME AS [Entry Label] FROM HSP_MEMBER m INNER JOIN HSP_OBJECT mo ON m.MEMBER_ID = mo.OBJECT_ID INNER JOIN HSP_OBJECT do ON m.DIM_ID = do.OBJECT_ID INNER JOIN HSP_OBJECT po ON mo.PARENT_ID = po.OBJECT_ID WHERE do.OBJECT_NAME = 'Product'
  • 24. 24 Demo  Now let’s use the results of the query to re-create the Smart List  Again, this will be manual for demo purposes  This can easily be automated using the outline load utility
  • 25. 25 Gotchas and Code  There are a lot of steps to this code as well…but generally speaking not a lot of gotchas
  • 26. 26 Deleting Years  PBCS has a handy button for this purpose…but On-Premise requires basic SQL code  The good new is…we’ve been doing this for years…long before PBCS even existed  Finally…something that doesn’t require 20 steps… Update HSP_Calendar Delete From HSP_Member Delete from HSP_Object Restart Planning
  • 27. 27 Gotchas and Code  This one is pretty simple… SELECT * FROM HSP_CALENDAR --First Year is 2009 and current year is 50002 SELECT * FROM HSP_OBJECT WHERE OBJECT_NAME = 'FY09' --Search for FY09...who needs consistency anyway SELECT * FROM HSP_OBJECT WHERE OBJECT_NAME = 'FY10' --Find FY10 ID UPDATE HSP_CALENDAR SET FIRST_YEAR = '2010' DELETE FROM HSP_MEMBER WHERE OBJECT_ID = (SELECT OBJECT_ID FROM HSP_OBJECT WHERE OBJECT_NAME = 'FY09') --Get rid of member first...foreign key constraint DELETE FROM HSP_OBJECT WHERE OBJECT_NAME = 'FY09' --now get rid of object
  • 28. 28 ASO Plan Types with Essbase Ad Hoc  In Hyperion Planning, you can access Essbase using an Ad-Hoc connection in Smart View  This works great with BSO, and even has check box during refresh to build your security filters  ASO on the other hand…not really  So how do we do this? ▶First, patch Planning (this only works on 11.1.2.4.04+) ▶Update your Planning application properties to deploy an ASO cube ▶Backup and Delete your ASO cube in EAS ▶Restart Planning and Redeploy ▶Run the magical script included in the addendum
  • 29. 29 After the Patch ASO Plan Types with Essbase Ad Hoc  We update the properties of the application and restart planning:
  • 30. 30 After the Patch ASO Plan Types with Essbase Ad Hoc  Now we have to back up our ASO cube… ▶Log into your Essbase server and backup the entire directory  Then we delete the application in EAS ▶Yes…I said delete your application  Then we refresh our application in Planning  Finally, we restore our backed up artifacts
  • 31. 31 Gotchas and Code  Like many things in On-Prem…lots of steps  We actually found a few bugs in Essbase that had to be worked around to get this working  We had to rebuild the Planning security model in Essbase…that was fun… ▶Using MaxL, we extract the current filters from the model ▶We then use the results to build a MaxL script the removes those filters ▶Finally we create a new set of filters using the security from the Planning Repository ‒ This is somewhere around 1 million lines of code…at least it felt like it  I’ll upload the code for this one as it is waaaaay too big to fit here
  • 33. 33 Shameless Plug  Visit my blog: ▶EPMMarshall.com ▶Formerly HyperionEPM.com  Visit my benchmark: ▶EssBench.com  Connect to #orclepm on twitter: