SlideShare una empresa de Scribd logo
1 de 62
Descargar para leer sin conexión
GETTING STARTED WITH GROOVY FOR
THE NON-TECHNICAL SUPERSTARS
What you need to know to get started
Groovy is the icing on the cake, with pre-save validation on forms, real time
consolidation and plan type synchronization, and execute calculations in ASO
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 1
JOIN
IN2HYPERION • Hundreds of how to articles
• 60 Million hits to date with half a million
monthly
• The easiest way to stay in touch
» http://in2hyperion.com/newsletter-signup/
• Your information
» Confidential
» Never sold
» Only used for new posts and announcements
» Get access to everything for free
» Be notified about public “office hours” where you can
ask questions and get one-on-one help
ONLINE
TRAINING
MODULES • Online Training
» Self Paced
» Aggressively priced
• Modules In Progress
» Working on 10 modules to learn Groovy
• Future Modules
» 5-10 advanced Groovy modules
» Building an effective security model
PRESENTATION PROGRESSION
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
4
:25
KEYS TO GROOVY SUCCESS
Documentation and basic
concepts needed to get
started
:05 WHERE TO GO FROM HERE
Live demonstration
:10 LAST CALL
Q/A and conclusion
:05
HELLO WORLD
Write your first Groovy
calculation
:05 ACCELYTICS INTRODUCTION
Company history and focus
:10
LEARNING PATH
What to expect from today and
suggestion on how to pick this up
ABOUT ACCELYTICS
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 5
KYLE GOODFRIEND
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 6
Vice President at Accelytics / Oracle EPBCS Implementation Specialist
Professional and Personal
• BBA, concentration in Finance
• College professor for 5 years
• Started consulting in 2008
• 100% self taught (technology)
• Created In2Hyperion and the
Essbase Excel Ribbon
• Started the Columbus
Hyperion Customer
Community
(CHCC.In2Hyperion.com)
• Love playing ice hockey, scuba
diving, and rescue dogs
• Have a beautiful wife that I
drive nuts
• Raising a son that is a walking
medical deductible
Planning and Essbase
• Worked with Hyperion since
1997
• Started learning Groovy in
August of 2017
• Worked with the cloud since
2015
• Hold certification in Hyperion
Planning, PBCS, and EPBCS
• Hold specialization in Pre-
Sales, Sales, and Support for
both Planning and Essbase
• Also a Microsoft Certified
Professional
ABOUT
ACCELYTICS
• Accelerated Analytics = Accelytics
• Founded in 2015
• Over 40 process and technology experts
THE ACCELYTICS JOURNEY
ABOUT
ACCELYTICS
FOCUS
ABOUT
ACCELYTICS
ACCELYTICS STRENGTHS
ABOUT
ACCELYTICS
PBCS/EPBCS ACCELERATORS
• Our Accelerators fast track implementations
» Automation
» Training
» Building security
» User documentation
» Administrative framework
» Dimension builds
» Driver-based models
» UAT
» Project management
» Risk mitigation
» Module builds
ABOUT
ACCELYTICS
EPBCS MODULE QUICK START
• 4-6 week implementation
• We provide documentation on needs before
we start
• Client gets
» CapEx
» Financials
▸Income Statement
▸Balance Sheet
▸Cash Flow
» WFP
» Projects
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
12
PRESENTATION FORMAT
• If you have a question, ask
• Let’s make this as interactive as
possible
• Let’s go where you want to go with the
content
• I am here for you to benefit
LEARNING PATH
Knowing where to start can be overwhelming.
Understanding a few things will help you navigate a
path to success.
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 13
LEARNING
PATH
Creativity
Writing Groovy To
Use The API
Be Able To Learn Groovy
Understand How To Read The
EPBCS API Docs
PROGRESSION PYRAMID
HIGHLIGHTING GROOVY
A lot is possible
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 15
Slide 16
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
IMPROVED PERFORMANCE
• Fix on columns and rows
• Fix on only POV of cells that
were edited
• Dynamic Essbase
calculations
• Dynamic Data Maps/Smart
Pushes
Slide 17
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
REAL TIME REPORTING
• Inter-plan type data
movement on the fly
• Consistent dimensionality is
irrelevant
• Sub second performance
• No more consolidations
• No more data consistency
issues
• No more headaches
Slide 18
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
PRE-SAVE VALIDATION
• Stop data entry errors
• Provide users real time
warnings
• Options are limitless
» Can require cell comments
» Can dynamically change data
based on entry
Slide 19
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
ASO WRITE-BACK
•Write calculations
directly to ASO
» FX calculations
» Allocations
» Anything that can be done
in BSO and more
LEARNING
PATH
• MDX execution
• Read/Write to inbox
• Execution/Access to REST API
• Migrations
MORE TO COME
PATH TO BE FUNCTIONAL
Understanding a few directional concepts
will help you troubleshoot what you are
doing wrong
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 21
LEARNING
PATH
• Understand the pieces
» Groovy
» EPBCS API
• Think of a car as the ePBCS API
» Volume is available to change
» Gas pedal will accelerate the car
» Steering wheel will navigate directionally
• Think of Groovy as how you interact with the
above
» If song is good, turn up the volume
» If light turns green, push the pedal slowly
» If you need to turn left, turn the wheel counter
clockwise
MAKE IT SIMPLE
LEARNING
PATH
• ePBCS API allows you to do all kinds of things
» Independence now that you have a car
• Understanding how to read what is required to
use the API is a long learning curve
» This is your car’s user manual, but you have never
seen a car before, so you have a lot to learn
• Learning Groovy to be able to use the API can
also be challenging to learn
» Now that you have the car and read the manual, you
have to learn how to drive
» Street signs, the rules of the road, how others drive,
getting used to all the buttons and controls of the car
is a lot to consume
MAKE IT SIMPLE
LEARNING
PATH
• Don’t be overwhelmed by what has to be
consumed
• You can be productive with basic concepts with
the examples I have provided in days
• The 80/20 rules applies
» 80% of what you will want to do
» 20% of your learning curve
• When you will get the basics, you will find all
kinds of things that you will want to accomplish
LONG LEARNING CURVE
HELLO WORLD
There is a lot to understand to get started, so let’s just
dive in with a quick how and a few simple examples
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 25
Slide 26
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
CREATING A GROOVY CALCULATION
•Create a new rule
» Change the script
mode from Designer
to Edit Script
» Change the Script type
from Calc Script to
Groovy Script
•Templates and
Scripts can also be
Groovy
Slide 27
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
HELLO WORLD
•Simple example
•Print message
•Print the person who ran
the calculation
•Print the time in which it
was executed
KEYS TO SUCCESS
You won’t learn it overnight, but understanding some
basic concepts will build a foundation for success and
growth
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 28
KEYS TO
SUCCESS
• Revisit the car analogy
» Everything is muscle memory now, but think about how much you would have to
learn about flying a plane
▸ Controls are all different
▸ No idea what lanes to fly in
▸ No clue what the rules are
• Remember the learning pyramid
» ePBCS API is the foundation
» Know what is possible
» Know how to read it
▸ Iterate a grid
▸ Customizing an Essbase calculation
▸ Execute a data map
▸ Run time prompts
• Some key concepts you might want to focus on
» Collections
▸ Maps
▸ Lists
» Manipulating strings
▸ Basig string
▸ Gstring
▸ Tripple quoted string
• Be patient in the process with the process
SECTION AGENDA
EPBCS API
DOCUMENTATION
Understanding how to read the API docs
is important to be able to use it.
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 30
Slide 31
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
DOCUMENTATION HOME
•Packages
•Classes
•Helpful to me
» Index
» Examples are hidden
Slide 32
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
RUN TIME PROMPT DOCUMENTATION EXPLAINATION
•Provides the package it
is in
•Provides what the
method returns
•Some have basic
examples of use
Slide 33
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
RUN TIME PROMPT DOCUMENTATION DETAIL
•Constructor summary
» Detail on what parameters
are required
•Method summary
» This is the meat of what
the object (called a class)
can do
» These methods are what
makes the class useful
EXAMPLES
Let’s take the hello world example to the
next level and do something functional.
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 34
// iterate through every cell
operation.grid.dataCellIterator().each {
println("$it.memberNames, cell data: $it.data")
}
// iterate through edited cells
operation.grid.dataCellIterator({DataCell cell -> cell.edited}).each {
println("$it.memberNames, cell data: $it.data")
}
// iterate through cells that are related to Jan
operation.grid.dataCellIterator('Jan').each {
println("$it.memberNames, cell data: $it.data")
}
ITERATING THROUGH CELLS
Slide 35
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 36
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
COMMON CELL METHODS
• addValidationError – adds an error with a tooltip that stops the saving of the data
form
• crossDimCell() – references the same POV in the grid except what is defined in the
parameters
• getMemberName() – gets the name of the member in the cell POV of the
dimension passed
• getData() – gets the data in the cell
• getDataAsSmartListMemberName() – gets the smartlist label rather than the index
• hasCellNote() – returns true if there are any cell notes added
• isLocked() – returns true if the cell is locked
• setData() – updates the data in the cell to the value passed
• setToolTip() – creates a tooltop with the value of the parameter passed
Slide 37
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
COMMON USES FOR GRID ITERATION
•Get edited cells to pass to data maps or Essbase calculation scripts
•Check to see if validation passes
» If units are entered, is unit cost also entered
» Do the allocations equal 100%
» Has the user entered a value outside an acceptable range
» Ensure data entered is positive (units sold)
» Verify that the text value for phone number is 10 numeric characters
Slide 38
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
CUSTOMIZING AN ESSBASE CALCULATION
•Strings can be passed
Essbase calculations
•Variables defined by grid
iterations or other can
be used in the string
•Fix on only the data that
has changed to improve
performance
•Use RTPs just like you
would or or use Groovy
RTPs
← povMembers
← editedProducts
← editedMonths
FIX ("Local",
"Tutle_Crossing",
"Computers",
"Box Store",
"0EP_Plan",
"Webinar_Example",
"FY18",
"Units",
"Input" ,
@RELATIVE("Products",0),
@RELATIVE("Period",0))
"Revenue" = "Units" * "Price";
ENDFIX
BREAKING IT DOWN: ESSBASE CALCULATION
Slide 39
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
• Any Essbase calculation can
be used
• This example is a very
simple calculation
• I normally build this in a
calculation first and
validate, then bring it in
and make the adjustments
needed
• Nothing complicated about
this piece
// Define variables as Lists
List povMembers = operation.grid.pov*.essbaseMbrName
List editedProducts = []
List editedMonths = []
StringBuilder sEssCalc = StringBuilder.newInstance()
// Identify edited periods and products
operation.grid.dataCellIterator({DataCell cell ->
cell.edited}).each{ cell ->
editedProducts << cell.getMemberName("Product")
editedMonths << cell.getPeriodName()
}
// remove dymanic members if they exist on the data form
editedMonths.removeAll('Q1','Q2','Q3','Q4','YearTotal’)
BREAKING IT DOWN: GETTING EDITED CELLS
Slide 40
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
• Think back to our iterator
example
• A few variables have to be
defined
» Lists – get to know them them
like the back of your hand!
• This has some Groovy code
that will be new to you
• Our iteration example is in
use here
// triple quotes make it easy to add special characters like quotes
// when using complex formulas they have to be inside {}
// we are simply taking the lists and building a delimited list for
our fix statement
// Build Essbase calculation
sEssCalc <<"""
FIX("${povMembers.join('","')}" ,
"${editedProducts.unique().join('","')}",
"${editedMonths.unique().join('","')}")
"Revenue" = "Units" * "Price";
ENDFIX
"""
BREAKING IT DOWN: BUILDING THE ESSBASE CALCULATION
Slide 41
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
• We have a list of
the POV members
• We have a list of
the edited periods
• We have a list of
the edited
products
• Update the script
// If no products exist then no cells were edited
// If that happens, print out a message to the log
// that no data was edited
// Otherwise, print the calculation to the log and
// return the string, which executes the calculation
if(editedProducts.size() == 0){
println "No data was changed."
}
else{
println sEssCalc
return sEssCalc
}
BREAKING IT DOWN: SENDING THE STRING TO ESSBASE
Slide 42
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
• We have our essCalc string
built
• Let’s verify that data has
been changed so we don’t
get an error by sending a
bad calculation script to
Essbase
• How about we also write
the script to the log so we
can troubleshoot if there is
an error
// Define variables as Lists
List povMembers = operation.grid.pov*.essbaseMbrName
List editedProducts = []
List editedMonths = []
StringBuilder sEssCalc = StringBuilder.newInstance()
// Identify edited periods and products
operation.grid.dataCellIterator({DataCell cell -> cell.edited}).each{ cell ->
editedProducts << cell.getMemberName("Product")
editedMonths << cell.getPeriodName()
}
// remove dymanic members if they exist on the data form
editedMonths.removeAll('Q1','Q2','Q3','Q4','YearTotal’)
// Build Essbase calculation
sEssCalc <<"""
FIX("${povMembers.join('","')}" ,
"${editedProducts.unique().join('","')}",
"${editedMonths.unique().join('","')}")
"Revenue" = "Units" * "Price";
ENDFIX
"""
// Create log and send calculation to Essbase
if(editedProducts.size() == 0){
println "No data was changed."
}
else{
println sEssCalc
return sEssCalc
}
BREAKING IT DOWN: ONE LAST LOOK
Slide 43
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
DEMONSTRATION OF DYNAMIC
ESSBASE CALCULATION
Slide 44
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
View a live example of this code working in a real-world
situation
Slide 45
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
KEYS TO
SUCCESS
EXAMPLES
• Why not a smart push on a form?
» Not dynamic to cells that edited
» There are limits to what can be pushed
» Performance is better when only edited cells are in
the push
• We start with a generic data map that we
customize
EXECUTE A CUSTOMIZED SMART
PUSH
// same as what we used in the Essbase calculation
// customized calculation
def editedProducts = []
def editedMonths = []
def povMap = [:]
// get the edited products and months (same as
// previous example)
operation.grid.dataCellIterator({DataCell cell -> cell.edi
ted}).each{ cell ->
editedProducts << cell.getMemberName("Product")
editedMonths << cell.getPeriodName()
}
editedMonths.removeAll('Q1','Q2','Q3','Q4','YearTotal’)
// Add the POV dimensions and headers to the map
operation.grid.pov.each{povMap[it.dimName] = it.essbaseMbr
Name}
BREAKING IT DOWN: GETTING THE EDITED
Slide 47
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
• Start by getting the edited
periods and products
• Same as Essbase calculation
customization
// Add the POV dimensions and headers to the map
// dimensions is the key and the member is the value
operation.grid.pov.each{povMap[it.dimName] = it.essbaseMbrName}
// the pov includes all the dimensions except what is in the rows
// which are period and product
// The following adds the edited products and edited months, which we will
// add to the map
povMap.put('Product', '"' + editedProducts.unique().join('","') + '"')
povMap.put('Period', '"' + editedMonths.unique().join('","') + '”’)
Basically, the above creates a map with the following key/value pairs:
"Currency":"Local",
"Company":"BILB",
"Department":"Computers",
"Store_Type":"c01",
"Scenario":"OEP_Plan",
"Version":"Webinar_Example",
"Years":"FY18",
"Account":"Units",
"Source":"Input",
"Product":'"5481602","5511009","5595429","5600302","5600304","5622770”’,
"Period”:'"Jan","Feb”’
BREAKING IT DOWN: BUILDING THE MAP
Slide 48
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
• A Map is like a list, but it is a
combination of a key and a
value
» Company = 123
» Cost Center = xyz
» Scenario = OEP_Plan
• If a dimension isn’t defined,
the properties setup in the
data map are used
// Use the generic data map to create a smartpush and pass
// the map of dimensions and values to it
operation.application.getDataMap("Product_SmartPush")
.createSmartPush().execute(povMap)
BREAKING IT DOWN: EXECUTING THE SMARTPUSH
Slide 49
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
• Now that we have the
overrides defined, all that is
left is to execute the
smartpush
• Helpful notes
» Users can’t execute a data
map, only a smart push
» Not all dimensions need to be
overwritten if what is in the
data map is meaningful
BREAKING IT DOWN: THE JOB CONSOLE
Slide 50
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
• The job console will show
some valuable information
» Anything logged via println will
be in the completed dialogue
» Every smart push will be a child
item and can be analyzed
▸If 2 smart pushes are executed,
two child items will be visible
DEMONSTRATION OF
EVERYTHING PUT TOGETHER
Slide 51
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
View a live example of what this can do – real time
reporting with no more BSO consolidations!
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
52
WHERE TO GO FROM HERE
Review of resources and questions
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 53
WHERE TO
GO FROM
HERE
• Educate yourself on the Groovy PBCS API
• Walk through the examples at
www.in2hyperion.com
• Build a healthy understanding of collections
» Maps/Lists
» Interacting with them
• Understand string and date manipulation
• Grid iteration will probably be the first thing
you tackle
• Learn how to interact with grid builders
• Download the Groovy libraries and developer
app
SUGGESTED RESOURCES
WHERE TO
GO FROM
HERE
• Lack of knowledge of Groovy
• Complete misunderstanding of what the ePBCS
documents were for
» They are not to teach you Groovy
» If you don’t know Groovy and aren’t willing to learn it,
these documents will be interpreted as useless, which
they are not
• Complete oversight of understanding the type of
parameters the API methods required
• Not understanding how to know if variables were
instantiated correctly
» There are different types of string that may not play well
with the API
» There are multiple types of lists – would get errors that
say a list was passed and a list was required
MY STRUGGLES
LAST CALL
Thank you for attending
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Slide 56
WRAPPING UP
Slide 57
Getting Started With Groovy For The Non-Technical Superstar
Monday, June 24, 2019
Introduction to Groovy and
writing your first Groovy
calculation
01 Using Groovy variables and
validate user input06
Creating Groovy variables and
collections02 Building advanced user input
validation rules07
Looping through a Data Form
and manipulating Groovy
collections03 Query metadata
08
Using Groovy strings to create a
dynamic Essbase calculation04 Introduction to Grid Builders
09
Manipulating lists and maps to
efficiently execute jobs, Data
Maps, and Smart Pushes05
Advanced Grid Builder
concepts to move data
between plan types10
inHYPERION
ORACLE•EPBCS
LEARNINGCENTER
2
WRAPPING
UP
• Plan was missing 3MM in Salary
» Business Issue
▸Users changed employee properties from hourly to salary but
didn’t enter an annual salary rate
» Groovy
▸Added validation so it was impossible to save a form with missing
rates
• Leadership wanted real-time reporting, project
would be a failure without, was told PBCS could do
it during sales cycle
» Business Issue
▸When users changed product or WFP module data, it took 2-25
minutes to save every form (consolidations and data maps ran)
» Groovy
▸Consolidations were eliminated to complete and form saves took
2.5 seconds on average
REAL WORLD WINS
WRAPPING
UP
• Currency Conversion in ASO
» Procedural calculations
▸Had to be calculated at summary levels
▸Had to be split into more than 20 calculations
» Groovy
▸At level 0 of all dimensions
▸Daily processing time was roughly 20 minutes
• Reconciliate to HFM loaded at consolidated levels
» Procedural calculations
▸ Too complex for PBCS
▸Development could not get it to finish
» Groovy
▸Finished in 5 minutes for the entire year
▸Prompted for start and end month/year
▸One calculation
▸Developed in 4 hours
REAL WORLD WINS
WRAPPING
UP
• Eliminating DM
» Mapping done in calculation
▸Dynamically creating maps based on metadata
▸No mapping tables required
▸No maintenance required
» Groovy
▸At level 0 of all dimensions
▸20 times faster than DM process
REAL WORLD WINS
WRAPPING
UP
• ASO Only Planning
» All Calculations In Groovy
▸Allocations
▸Balance walk forwards
▸Versioning
▸Pre-save validation
▪ Ensuring allocations are 100%
▪ Transfer in/out are positive/negative
▪ Adjustments by %/$ entry
▸Adding lines to forms for data entry
▸Currency Conversion
▸Unit of Measure Conversion
▸Top Level adjustments
REAL WORLD WINS
WRAPPING
UP
• kgoodfriend@accelytics.com
• (614) 668-7324
• Sign up at www.in2hyperion.com to get emails
when information is shared
HOW TO CONTACT KYLE

Más contenido relacionado

La actualidad más candente

OATUG Forum - Utilizing Groovy and Data Maps for Instantaneous Analysis betw...
OATUG  Forum - Utilizing Groovy and Data Maps for Instantaneous Analysis betw...OATUG  Forum - Utilizing Groovy and Data Maps for Instantaneous Analysis betw...
OATUG Forum - Utilizing Groovy and Data Maps for Instantaneous Analysis betw...Alithya
 
IMPLEMENTATION BEST PRACTICES Sep 22.pdf
IMPLEMENTATION BEST PRACTICES Sep 22.pdfIMPLEMENTATION BEST PRACTICES Sep 22.pdf
IMPLEMENTATION BEST PRACTICES Sep 22.pdfudayabhaskar42
 
Data Lakehouse, Data Mesh, and Data Fabric (r1)
Data Lakehouse, Data Mesh, and Data Fabric (r1)Data Lakehouse, Data Mesh, and Data Fabric (r1)
Data Lakehouse, Data Mesh, and Data Fabric (r1)James Serra
 
A MARKETER'S GUIDE : " INTEGRATION PLATFORM AS A SERVICE (iPaaS) "
A MARKETER'S GUIDE : " INTEGRATION PLATFORM AS A SERVICE (iPaaS)  "A MARKETER'S GUIDE : " INTEGRATION PLATFORM AS A SERVICE (iPaaS)  "
A MARKETER'S GUIDE : " INTEGRATION PLATFORM AS A SERVICE (iPaaS) "MUHAMMAD HUZAIFA CHAUDHARY
 
Designing An Enterprise Data Fabric
Designing An Enterprise Data FabricDesigning An Enterprise Data Fabric
Designing An Enterprise Data FabricAlan McSweeney
 
Building a Logical Data Fabric using Data Virtualization (ASEAN)
Building a Logical Data Fabric using Data Virtualization (ASEAN)Building a Logical Data Fabric using Data Virtualization (ASEAN)
Building a Logical Data Fabric using Data Virtualization (ASEAN)Denodo
 
Introducing Azure SQL Database
Introducing Azure SQL DatabaseIntroducing Azure SQL Database
Introducing Azure SQL DatabaseJames Serra
 
Open core summit: Observability for data pipelines with OpenLineage
Open core summit: Observability for data pipelines with OpenLineageOpen core summit: Observability for data pipelines with OpenLineage
Open core summit: Observability for data pipelines with OpenLineageJulien Le Dem
 
Building Modern Data Platform with Microsoft Azure
Building Modern Data Platform with Microsoft AzureBuilding Modern Data Platform with Microsoft Azure
Building Modern Data Platform with Microsoft AzureDmitry Anoshin
 
Introducing Databricks Delta
Introducing Databricks DeltaIntroducing Databricks Delta
Introducing Databricks DeltaDatabricks
 
Data Center Migration to the AWS Cloud
Data Center Migration to the AWS CloudData Center Migration to the AWS Cloud
Data Center Migration to the AWS CloudTom Laszewski
 
Why Groovy is Game Changing
Why Groovy is Game ChangingWhy Groovy is Game Changing
Why Groovy is Game ChangingKyle Goodfriend
 
Introduction to Microsoft ERP Dynamics 365 for finance and operation
Introduction to Microsoft ERP Dynamics 365 for finance and operationIntroduction to Microsoft ERP Dynamics 365 for finance and operation
Introduction to Microsoft ERP Dynamics 365 for finance and operationAli Raza Zaidi
 
Data Mesh for Dinner
Data Mesh for DinnerData Mesh for Dinner
Data Mesh for DinnerKent Graziano
 
Best Practices for Designing and Building Integrations
Best Practices for Designing and Building IntegrationsBest Practices for Designing and Building Integrations
Best Practices for Designing and Building IntegrationsAlithya
 
nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud
nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud
nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud Alithya
 
Data Catalog for Better Data Discovery and Governance
Data Catalog for Better Data Discovery and GovernanceData Catalog for Better Data Discovery and Governance
Data Catalog for Better Data Discovery and GovernanceDenodo
 
Why and How to Implement Operation Transfer Pricing (OTP) with Oracle EPM Cloud
Why and How to Implement Operation Transfer Pricing (OTP) with Oracle EPM Cloud Why and How to Implement Operation Transfer Pricing (OTP) with Oracle EPM Cloud
Why and How to Implement Operation Transfer Pricing (OTP) with Oracle EPM Cloud Alithya
 

La actualidad más candente (20)

OATUG Forum - Utilizing Groovy and Data Maps for Instantaneous Analysis betw...
OATUG  Forum - Utilizing Groovy and Data Maps for Instantaneous Analysis betw...OATUG  Forum - Utilizing Groovy and Data Maps for Instantaneous Analysis betw...
OATUG Forum - Utilizing Groovy and Data Maps for Instantaneous Analysis betw...
 
IMPLEMENTATION BEST PRACTICES Sep 22.pdf
IMPLEMENTATION BEST PRACTICES Sep 22.pdfIMPLEMENTATION BEST PRACTICES Sep 22.pdf
IMPLEMENTATION BEST PRACTICES Sep 22.pdf
 
Data Lakehouse, Data Mesh, and Data Fabric (r1)
Data Lakehouse, Data Mesh, and Data Fabric (r1)Data Lakehouse, Data Mesh, and Data Fabric (r1)
Data Lakehouse, Data Mesh, and Data Fabric (r1)
 
A MARKETER'S GUIDE : " INTEGRATION PLATFORM AS A SERVICE (iPaaS) "
A MARKETER'S GUIDE : " INTEGRATION PLATFORM AS A SERVICE (iPaaS)  "A MARKETER'S GUIDE : " INTEGRATION PLATFORM AS A SERVICE (iPaaS)  "
A MARKETER'S GUIDE : " INTEGRATION PLATFORM AS A SERVICE (iPaaS) "
 
Designing An Enterprise Data Fabric
Designing An Enterprise Data FabricDesigning An Enterprise Data Fabric
Designing An Enterprise Data Fabric
 
Building a Logical Data Fabric using Data Virtualization (ASEAN)
Building a Logical Data Fabric using Data Virtualization (ASEAN)Building a Logical Data Fabric using Data Virtualization (ASEAN)
Building a Logical Data Fabric using Data Virtualization (ASEAN)
 
Oracle Cloud Infrastructure
Oracle Cloud InfrastructureOracle Cloud Infrastructure
Oracle Cloud Infrastructure
 
Introducing Azure SQL Database
Introducing Azure SQL DatabaseIntroducing Azure SQL Database
Introducing Azure SQL Database
 
Open core summit: Observability for data pipelines with OpenLineage
Open core summit: Observability for data pipelines with OpenLineageOpen core summit: Observability for data pipelines with OpenLineage
Open core summit: Observability for data pipelines with OpenLineage
 
Building Modern Data Platform with Microsoft Azure
Building Modern Data Platform with Microsoft AzureBuilding Modern Data Platform with Microsoft Azure
Building Modern Data Platform with Microsoft Azure
 
Introducing Databricks Delta
Introducing Databricks DeltaIntroducing Databricks Delta
Introducing Databricks Delta
 
Data Center Migration to the AWS Cloud
Data Center Migration to the AWS CloudData Center Migration to the AWS Cloud
Data Center Migration to the AWS Cloud
 
Why Groovy is Game Changing
Why Groovy is Game ChangingWhy Groovy is Game Changing
Why Groovy is Game Changing
 
Introduction to Microsoft ERP Dynamics 365 for finance and operation
Introduction to Microsoft ERP Dynamics 365 for finance and operationIntroduction to Microsoft ERP Dynamics 365 for finance and operation
Introduction to Microsoft ERP Dynamics 365 for finance and operation
 
Data Mesh for Dinner
Data Mesh for DinnerData Mesh for Dinner
Data Mesh for Dinner
 
Best Practices for Designing and Building Integrations
Best Practices for Designing and Building IntegrationsBest Practices for Designing and Building Integrations
Best Practices for Designing and Building Integrations
 
nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud
nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud
nter-pod Revolutions: Connected Enterprise Solution in Oracle EPM Cloud
 
Webinar Data Mesh - Part 3
Webinar Data Mesh - Part 3Webinar Data Mesh - Part 3
Webinar Data Mesh - Part 3
 
Data Catalog for Better Data Discovery and Governance
Data Catalog for Better Data Discovery and GovernanceData Catalog for Better Data Discovery and Governance
Data Catalog for Better Data Discovery and Governance
 
Why and How to Implement Operation Transfer Pricing (OTP) with Oracle EPM Cloud
Why and How to Implement Operation Transfer Pricing (OTP) with Oracle EPM Cloud Why and How to Implement Operation Transfer Pricing (OTP) with Oracle EPM Cloud
Why and How to Implement Operation Transfer Pricing (OTP) with Oracle EPM Cloud
 

Similar a GETTING STARTED WITH GROOVY FOR THE NON-TECHNICAL SUPERSTARS

October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCS
October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCSOctober 2018 ODTUG Webinar - Getting Started with Groovy in EPBCS
October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCSKyle Goodfriend
 
WEBINAR: 5 Ways to Engage Yellow Belts in Applying Their Skills After Certi...
WEBINAR: 5 Ways to Engage Yellow Belts in Applying Their Skills After Certi...WEBINAR: 5 Ways to Engage Yellow Belts in Applying Their Skills After Certi...
WEBINAR: 5 Ways to Engage Yellow Belts in Applying Their Skills After Certi...GoLeanSixSigma.com
 
ODTUG Getting Groovy with ePBCS
ODTUG Getting Groovy with ePBCSODTUG Getting Groovy with ePBCS
ODTUG Getting Groovy with ePBCSKyle Goodfriend
 
Things To Unlearn In Software Development
Things To Unlearn In Software DevelopmentThings To Unlearn In Software Development
Things To Unlearn In Software DevelopmentAlexey Krivitsky
 
How to Perform Model-Based Reviews
How to Perform Model-Based ReviewsHow to Perform Model-Based Reviews
How to Perform Model-Based ReviewsElizabeth Steiner
 
Developing mobile friendly content for adult education
Developing mobile friendly content for adult educationDeveloping mobile friendly content for adult education
Developing mobile friendly content for adult educationNell Eckersley
 
Northeast Ohio Women in Tech (NEOWIT) - Sharpening the Saw and Continuing Edu...
Northeast Ohio Women in Tech (NEOWIT) - Sharpening the Saw and Continuing Edu...Northeast Ohio Women in Tech (NEOWIT) - Sharpening the Saw and Continuing Edu...
Northeast Ohio Women in Tech (NEOWIT) - Sharpening the Saw and Continuing Edu...Copper CLE
 
Lean with MEAN (MEAN stack for Lean startup)
Lean with MEAN (MEAN stack for Lean startup)Lean with MEAN (MEAN stack for Lean startup)
Lean with MEAN (MEAN stack for Lean startup)Synerzip
 
Making agile work nicholas fourie
Making agile work   nicholas fourieMaking agile work   nicholas fourie
Making agile work nicholas fourieNicholas Fourie
 
Growing as a software craftsperson (part 1) From Pune Software Craftsmanship.
Growing as a software craftsperson (part 1)  From Pune Software Craftsmanship.Growing as a software craftsperson (part 1)  From Pune Software Craftsmanship.
Growing as a software craftsperson (part 1) From Pune Software Craftsmanship.Dattatray Kale
 
UXPA 2022 Build for action not distraction
UXPA 2022 Build for action not distractionUXPA 2022 Build for action not distraction
UXPA 2022 Build for action not distractionUXPA International
 
Lean startup - 8 techniques every dev team should know
Lean startup - 8 techniques every dev team should knowLean startup - 8 techniques every dev team should know
Lean startup - 8 techniques every dev team should knowAgileEngine
 
GRUG 2.0 3 October opening presentation 20171026
GRUG 2.0 3 October opening presentation 20171026GRUG 2.0 3 October opening presentation 20171026
GRUG 2.0 3 October opening presentation 20171026Glasgow Revit User Group
 
Content straContent Strategy: What is it and why is it Importanttegy
Content straContent Strategy: What is it and why is it ImportanttegyContent straContent Strategy: What is it and why is it Importanttegy
Content straContent Strategy: What is it and why is it ImportanttegyDenise Kadilak
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010Joel Gascoigne
 
Webinar: How to Manage Your Project to Completion Using the Project Builder
Webinar: How to Manage Your Project to Completion Using the Project BuilderWebinar: How to Manage Your Project to Completion Using the Project Builder
Webinar: How to Manage Your Project to Completion Using the Project BuilderGoLeanSixSigma.com
 
Where is Scheduling Headed?
Where is Scheduling Headed?Where is Scheduling Headed?
Where is Scheduling Headed?Basis
 

Similar a GETTING STARTED WITH GROOVY FOR THE NON-TECHNICAL SUPERSTARS (20)

October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCS
October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCSOctober 2018 ODTUG Webinar - Getting Started with Groovy in EPBCS
October 2018 ODTUG Webinar - Getting Started with Groovy in EPBCS
 
18.11 texas user group
18.11 texas user group18.11 texas user group
18.11 texas user group
 
Agile In Practice
Agile In PracticeAgile In Practice
Agile In Practice
 
WEBINAR: 5 Ways to Engage Yellow Belts in Applying Their Skills After Certi...
WEBINAR: 5 Ways to Engage Yellow Belts in Applying Their Skills After Certi...WEBINAR: 5 Ways to Engage Yellow Belts in Applying Their Skills After Certi...
WEBINAR: 5 Ways to Engage Yellow Belts in Applying Their Skills After Certi...
 
ODTUG Getting Groovy with ePBCS
ODTUG Getting Groovy with ePBCSODTUG Getting Groovy with ePBCS
ODTUG Getting Groovy with ePBCS
 
Things To Unlearn In Software Development
Things To Unlearn In Software DevelopmentThings To Unlearn In Software Development
Things To Unlearn In Software Development
 
How to Perform Model-Based Reviews
How to Perform Model-Based ReviewsHow to Perform Model-Based Reviews
How to Perform Model-Based Reviews
 
Developing mobile friendly content for adult education
Developing mobile friendly content for adult educationDeveloping mobile friendly content for adult education
Developing mobile friendly content for adult education
 
Redefining content with Infographics
Redefining content with InfographicsRedefining content with Infographics
Redefining content with Infographics
 
Northeast Ohio Women in Tech (NEOWIT) - Sharpening the Saw and Continuing Edu...
Northeast Ohio Women in Tech (NEOWIT) - Sharpening the Saw and Continuing Edu...Northeast Ohio Women in Tech (NEOWIT) - Sharpening the Saw and Continuing Edu...
Northeast Ohio Women in Tech (NEOWIT) - Sharpening the Saw and Continuing Edu...
 
Lean with MEAN (MEAN stack for Lean startup)
Lean with MEAN (MEAN stack for Lean startup)Lean with MEAN (MEAN stack for Lean startup)
Lean with MEAN (MEAN stack for Lean startup)
 
Making agile work nicholas fourie
Making agile work   nicholas fourieMaking agile work   nicholas fourie
Making agile work nicholas fourie
 
Growing as a software craftsperson (part 1) From Pune Software Craftsmanship.
Growing as a software craftsperson (part 1)  From Pune Software Craftsmanship.Growing as a software craftsperson (part 1)  From Pune Software Craftsmanship.
Growing as a software craftsperson (part 1) From Pune Software Craftsmanship.
 
UXPA 2022 Build for action not distraction
UXPA 2022 Build for action not distractionUXPA 2022 Build for action not distraction
UXPA 2022 Build for action not distraction
 
Lean startup - 8 techniques every dev team should know
Lean startup - 8 techniques every dev team should knowLean startup - 8 techniques every dev team should know
Lean startup - 8 techniques every dev team should know
 
GRUG 2.0 3 October opening presentation 20171026
GRUG 2.0 3 October opening presentation 20171026GRUG 2.0 3 October opening presentation 20171026
GRUG 2.0 3 October opening presentation 20171026
 
Content straContent Strategy: What is it and why is it Importanttegy
Content straContent Strategy: What is it and why is it ImportanttegyContent straContent Strategy: What is it and why is it Importanttegy
Content straContent Strategy: What is it and why is it Importanttegy
 
CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010CodeIgniter for Startups, cicon2010
CodeIgniter for Startups, cicon2010
 
Webinar: How to Manage Your Project to Completion Using the Project Builder
Webinar: How to Manage Your Project to Completion Using the Project BuilderWebinar: How to Manage Your Project to Completion Using the Project Builder
Webinar: How to Manage Your Project to Completion Using the Project Builder
 
Where is Scheduling Headed?
Where is Scheduling Headed?Where is Scheduling Headed?
Where is Scheduling Headed?
 

Más de Kyle Goodfriend

Improve The Planner Experience With Groovy
Improve The Planner Experience With GroovyImprove The Planner Experience With Groovy
Improve The Planner Experience With GroovyKyle Goodfriend
 
Using REST with EPM Cloud Planning
Using REST with EPM Cloud PlanningUsing REST with EPM Cloud Planning
Using REST with EPM Cloud PlanningKyle Goodfriend
 
Things you didn't know you could do with groovy
Things you didn't know you could do with groovyThings you didn't know you could do with groovy
Things you didn't know you could do with groovyKyle Goodfriend
 
Take groovy to places you never thought were possible
Take groovy to places you never thought were possibleTake groovy to places you never thought were possible
Take groovy to places you never thought were possibleKyle Goodfriend
 
Accelerators at Accelytics
Accelerators at AccelyticsAccelerators at Accelytics
Accelerators at AccelyticsKyle Goodfriend
 
ePBCS Gridbuilder Deep Dive - Last Minute KScope Souvenirs
ePBCS Gridbuilder Deep Dive - Last Minute KScope SouvenirsePBCS Gridbuilder Deep Dive - Last Minute KScope Souvenirs
ePBCS Gridbuilder Deep Dive - Last Minute KScope SouvenirsKyle Goodfriend
 
Top-Down and BottomS-Up Planning at Breakthru Beverage Group
Top-Down and BottomS-Up Planning at Breakthru Beverage GroupTop-Down and BottomS-Up Planning at Breakthru Beverage Group
Top-Down and BottomS-Up Planning at Breakthru Beverage GroupKyle Goodfriend
 
CHCC 2017 Q1 Event Overview
CHCC 2017 Q1 Event OverviewCHCC 2017 Q1 Event Overview
CHCC 2017 Q1 Event OverviewKyle Goodfriend
 
Top Down and Bottom Up Planning at Breakthru Beverage Group Follow Up
Top Down and Bottom Up Planning at Breakthru Beverage Group Follow UpTop Down and Bottom Up Planning at Breakthru Beverage Group Follow Up
Top Down and Bottom Up Planning at Breakthru Beverage Group Follow UpKyle Goodfriend
 
Top Down and Bottom Up Planning at Breakthru Beverage Group
Top Down and Bottom Up Planning at Breakthru Beverage GroupTop Down and Bottom Up Planning at Breakthru Beverage Group
Top Down and Bottom Up Planning at Breakthru Beverage GroupKyle Goodfriend
 
Ohio Valley Oracle Application User Group
Ohio Valley Oracle Application User GroupOhio Valley Oracle Application User Group
Ohio Valley Oracle Application User GroupKyle Goodfriend
 
Create Unlimited Custom Spreads for Driver Based Planning
Create Unlimited Custom Spreads for Driver Based PlanningCreate Unlimited Custom Spreads for Driver Based Planning
Create Unlimited Custom Spreads for Driver Based PlanningKyle Goodfriend
 
Automating Hyperion Planning Tasks
Automating Hyperion Planning TasksAutomating Hyperion Planning Tasks
Automating Hyperion Planning TasksKyle Goodfriend
 
Driving Accountability Through Disciplined Planning at Abercrombie & Fitch
Driving Accountability Through Disciplined Planning at Abercrombie & FitchDriving Accountability Through Disciplined Planning at Abercrombie & Fitch
Driving Accountability Through Disciplined Planning at Abercrombie & FitchKyle Goodfriend
 
Supercharge PBCS with PowerShell
Supercharge PBCS with PowerShellSupercharge PBCS with PowerShell
Supercharge PBCS with PowerShellKyle Goodfriend
 

Más de Kyle Goodfriend (15)

Improve The Planner Experience With Groovy
Improve The Planner Experience With GroovyImprove The Planner Experience With Groovy
Improve The Planner Experience With Groovy
 
Using REST with EPM Cloud Planning
Using REST with EPM Cloud PlanningUsing REST with EPM Cloud Planning
Using REST with EPM Cloud Planning
 
Things you didn't know you could do with groovy
Things you didn't know you could do with groovyThings you didn't know you could do with groovy
Things you didn't know you could do with groovy
 
Take groovy to places you never thought were possible
Take groovy to places you never thought were possibleTake groovy to places you never thought were possible
Take groovy to places you never thought were possible
 
Accelerators at Accelytics
Accelerators at AccelyticsAccelerators at Accelytics
Accelerators at Accelytics
 
ePBCS Gridbuilder Deep Dive - Last Minute KScope Souvenirs
ePBCS Gridbuilder Deep Dive - Last Minute KScope SouvenirsePBCS Gridbuilder Deep Dive - Last Minute KScope Souvenirs
ePBCS Gridbuilder Deep Dive - Last Minute KScope Souvenirs
 
Top-Down and BottomS-Up Planning at Breakthru Beverage Group
Top-Down and BottomS-Up Planning at Breakthru Beverage GroupTop-Down and BottomS-Up Planning at Breakthru Beverage Group
Top-Down and BottomS-Up Planning at Breakthru Beverage Group
 
CHCC 2017 Q1 Event Overview
CHCC 2017 Q1 Event OverviewCHCC 2017 Q1 Event Overview
CHCC 2017 Q1 Event Overview
 
Top Down and Bottom Up Planning at Breakthru Beverage Group Follow Up
Top Down and Bottom Up Planning at Breakthru Beverage Group Follow UpTop Down and Bottom Up Planning at Breakthru Beverage Group Follow Up
Top Down and Bottom Up Planning at Breakthru Beverage Group Follow Up
 
Top Down and Bottom Up Planning at Breakthru Beverage Group
Top Down and Bottom Up Planning at Breakthru Beverage GroupTop Down and Bottom Up Planning at Breakthru Beverage Group
Top Down and Bottom Up Planning at Breakthru Beverage Group
 
Ohio Valley Oracle Application User Group
Ohio Valley Oracle Application User GroupOhio Valley Oracle Application User Group
Ohio Valley Oracle Application User Group
 
Create Unlimited Custom Spreads for Driver Based Planning
Create Unlimited Custom Spreads for Driver Based PlanningCreate Unlimited Custom Spreads for Driver Based Planning
Create Unlimited Custom Spreads for Driver Based Planning
 
Automating Hyperion Planning Tasks
Automating Hyperion Planning TasksAutomating Hyperion Planning Tasks
Automating Hyperion Planning Tasks
 
Driving Accountability Through Disciplined Planning at Abercrombie & Fitch
Driving Accountability Through Disciplined Planning at Abercrombie & FitchDriving Accountability Through Disciplined Planning at Abercrombie & Fitch
Driving Accountability Through Disciplined Planning at Abercrombie & Fitch
 
Supercharge PBCS with PowerShell
Supercharge PBCS with PowerShellSupercharge PBCS with PowerShell
Supercharge PBCS with PowerShell
 

Último

Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 

Último (20)

Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 

GETTING STARTED WITH GROOVY FOR THE NON-TECHNICAL SUPERSTARS

  • 1. GETTING STARTED WITH GROOVY FOR THE NON-TECHNICAL SUPERSTARS What you need to know to get started Groovy is the icing on the cake, with pre-save validation on forms, real time consolidation and plan type synchronization, and execute calculations in ASO Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 1
  • 2. JOIN IN2HYPERION • Hundreds of how to articles • 60 Million hits to date with half a million monthly • The easiest way to stay in touch » http://in2hyperion.com/newsletter-signup/ • Your information » Confidential » Never sold » Only used for new posts and announcements » Get access to everything for free » Be notified about public “office hours” where you can ask questions and get one-on-one help
  • 3. ONLINE TRAINING MODULES • Online Training » Self Paced » Aggressively priced • Modules In Progress » Working on 10 modules to learn Groovy • Future Modules » 5-10 advanced Groovy modules » Building an effective security model
  • 4. PRESENTATION PROGRESSION Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 4 :25 KEYS TO GROOVY SUCCESS Documentation and basic concepts needed to get started :05 WHERE TO GO FROM HERE Live demonstration :10 LAST CALL Q/A and conclusion :05 HELLO WORLD Write your first Groovy calculation :05 ACCELYTICS INTRODUCTION Company history and focus :10 LEARNING PATH What to expect from today and suggestion on how to pick this up
  • 5. ABOUT ACCELYTICS Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 5
  • 6. KYLE GOODFRIEND Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 6 Vice President at Accelytics / Oracle EPBCS Implementation Specialist Professional and Personal • BBA, concentration in Finance • College professor for 5 years • Started consulting in 2008 • 100% self taught (technology) • Created In2Hyperion and the Essbase Excel Ribbon • Started the Columbus Hyperion Customer Community (CHCC.In2Hyperion.com) • Love playing ice hockey, scuba diving, and rescue dogs • Have a beautiful wife that I drive nuts • Raising a son that is a walking medical deductible Planning and Essbase • Worked with Hyperion since 1997 • Started learning Groovy in August of 2017 • Worked with the cloud since 2015 • Hold certification in Hyperion Planning, PBCS, and EPBCS • Hold specialization in Pre- Sales, Sales, and Support for both Planning and Essbase • Also a Microsoft Certified Professional
  • 7. ABOUT ACCELYTICS • Accelerated Analytics = Accelytics • Founded in 2015 • Over 40 process and technology experts THE ACCELYTICS JOURNEY
  • 10. ABOUT ACCELYTICS PBCS/EPBCS ACCELERATORS • Our Accelerators fast track implementations » Automation » Training » Building security » User documentation » Administrative framework » Dimension builds » Driver-based models » UAT » Project management » Risk mitigation » Module builds
  • 11. ABOUT ACCELYTICS EPBCS MODULE QUICK START • 4-6 week implementation • We provide documentation on needs before we start • Client gets » CapEx » Financials ▸Income Statement ▸Balance Sheet ▸Cash Flow » WFP » Projects
  • 12. Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 12 PRESENTATION FORMAT • If you have a question, ask • Let’s make this as interactive as possible • Let’s go where you want to go with the content • I am here for you to benefit
  • 13. LEARNING PATH Knowing where to start can be overwhelming. Understanding a few things will help you navigate a path to success. Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 13
  • 14. LEARNING PATH Creativity Writing Groovy To Use The API Be Able To Learn Groovy Understand How To Read The EPBCS API Docs PROGRESSION PYRAMID
  • 15. HIGHLIGHTING GROOVY A lot is possible Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 15
  • 16. Slide 16 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 IMPROVED PERFORMANCE • Fix on columns and rows • Fix on only POV of cells that were edited • Dynamic Essbase calculations • Dynamic Data Maps/Smart Pushes
  • 17. Slide 17 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 REAL TIME REPORTING • Inter-plan type data movement on the fly • Consistent dimensionality is irrelevant • Sub second performance • No more consolidations • No more data consistency issues • No more headaches
  • 18. Slide 18 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 PRE-SAVE VALIDATION • Stop data entry errors • Provide users real time warnings • Options are limitless » Can require cell comments » Can dynamically change data based on entry
  • 19. Slide 19 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 ASO WRITE-BACK •Write calculations directly to ASO » FX calculations » Allocations » Anything that can be done in BSO and more
  • 20. LEARNING PATH • MDX execution • Read/Write to inbox • Execution/Access to REST API • Migrations MORE TO COME
  • 21. PATH TO BE FUNCTIONAL Understanding a few directional concepts will help you troubleshoot what you are doing wrong Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 21
  • 22. LEARNING PATH • Understand the pieces » Groovy » EPBCS API • Think of a car as the ePBCS API » Volume is available to change » Gas pedal will accelerate the car » Steering wheel will navigate directionally • Think of Groovy as how you interact with the above » If song is good, turn up the volume » If light turns green, push the pedal slowly » If you need to turn left, turn the wheel counter clockwise MAKE IT SIMPLE
  • 23. LEARNING PATH • ePBCS API allows you to do all kinds of things » Independence now that you have a car • Understanding how to read what is required to use the API is a long learning curve » This is your car’s user manual, but you have never seen a car before, so you have a lot to learn • Learning Groovy to be able to use the API can also be challenging to learn » Now that you have the car and read the manual, you have to learn how to drive » Street signs, the rules of the road, how others drive, getting used to all the buttons and controls of the car is a lot to consume MAKE IT SIMPLE
  • 24. LEARNING PATH • Don’t be overwhelmed by what has to be consumed • You can be productive with basic concepts with the examples I have provided in days • The 80/20 rules applies » 80% of what you will want to do » 20% of your learning curve • When you will get the basics, you will find all kinds of things that you will want to accomplish LONG LEARNING CURVE
  • 25. HELLO WORLD There is a lot to understand to get started, so let’s just dive in with a quick how and a few simple examples Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 25
  • 26. Slide 26 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 CREATING A GROOVY CALCULATION •Create a new rule » Change the script mode from Designer to Edit Script » Change the Script type from Calc Script to Groovy Script •Templates and Scripts can also be Groovy
  • 27. Slide 27 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 HELLO WORLD •Simple example •Print message •Print the person who ran the calculation •Print the time in which it was executed
  • 28. KEYS TO SUCCESS You won’t learn it overnight, but understanding some basic concepts will build a foundation for success and growth Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 28
  • 29. KEYS TO SUCCESS • Revisit the car analogy » Everything is muscle memory now, but think about how much you would have to learn about flying a plane ▸ Controls are all different ▸ No idea what lanes to fly in ▸ No clue what the rules are • Remember the learning pyramid » ePBCS API is the foundation » Know what is possible » Know how to read it ▸ Iterate a grid ▸ Customizing an Essbase calculation ▸ Execute a data map ▸ Run time prompts • Some key concepts you might want to focus on » Collections ▸ Maps ▸ Lists » Manipulating strings ▸ Basig string ▸ Gstring ▸ Tripple quoted string • Be patient in the process with the process SECTION AGENDA
  • 30. EPBCS API DOCUMENTATION Understanding how to read the API docs is important to be able to use it. Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 30
  • 31. Slide 31 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 DOCUMENTATION HOME •Packages •Classes •Helpful to me » Index » Examples are hidden
  • 32. Slide 32 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 RUN TIME PROMPT DOCUMENTATION EXPLAINATION •Provides the package it is in •Provides what the method returns •Some have basic examples of use
  • 33. Slide 33 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 RUN TIME PROMPT DOCUMENTATION DETAIL •Constructor summary » Detail on what parameters are required •Method summary » This is the meat of what the object (called a class) can do » These methods are what makes the class useful
  • 34. EXAMPLES Let’s take the hello world example to the next level and do something functional. Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 34
  • 35. // iterate through every cell operation.grid.dataCellIterator().each { println("$it.memberNames, cell data: $it.data") } // iterate through edited cells operation.grid.dataCellIterator({DataCell cell -> cell.edited}).each { println("$it.memberNames, cell data: $it.data") } // iterate through cells that are related to Jan operation.grid.dataCellIterator('Jan').each { println("$it.memberNames, cell data: $it.data") } ITERATING THROUGH CELLS Slide 35 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019
  • 36. Slide 36 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 COMMON CELL METHODS • addValidationError – adds an error with a tooltip that stops the saving of the data form • crossDimCell() – references the same POV in the grid except what is defined in the parameters • getMemberName() – gets the name of the member in the cell POV of the dimension passed • getData() – gets the data in the cell • getDataAsSmartListMemberName() – gets the smartlist label rather than the index • hasCellNote() – returns true if there are any cell notes added • isLocked() – returns true if the cell is locked • setData() – updates the data in the cell to the value passed • setToolTip() – creates a tooltop with the value of the parameter passed
  • 37. Slide 37 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 COMMON USES FOR GRID ITERATION •Get edited cells to pass to data maps or Essbase calculation scripts •Check to see if validation passes » If units are entered, is unit cost also entered » Do the allocations equal 100% » Has the user entered a value outside an acceptable range » Ensure data entered is positive (units sold) » Verify that the text value for phone number is 10 numeric characters
  • 38. Slide 38 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 CUSTOMIZING AN ESSBASE CALCULATION •Strings can be passed Essbase calculations •Variables defined by grid iterations or other can be used in the string •Fix on only the data that has changed to improve performance •Use RTPs just like you would or or use Groovy RTPs ← povMembers ← editedProducts ← editedMonths
  • 39. FIX ("Local", "Tutle_Crossing", "Computers", "Box Store", "0EP_Plan", "Webinar_Example", "FY18", "Units", "Input" , @RELATIVE("Products",0), @RELATIVE("Period",0)) "Revenue" = "Units" * "Price"; ENDFIX BREAKING IT DOWN: ESSBASE CALCULATION Slide 39 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 • Any Essbase calculation can be used • This example is a very simple calculation • I normally build this in a calculation first and validate, then bring it in and make the adjustments needed • Nothing complicated about this piece
  • 40. // Define variables as Lists List povMembers = operation.grid.pov*.essbaseMbrName List editedProducts = [] List editedMonths = [] StringBuilder sEssCalc = StringBuilder.newInstance() // Identify edited periods and products operation.grid.dataCellIterator({DataCell cell -> cell.edited}).each{ cell -> editedProducts << cell.getMemberName("Product") editedMonths << cell.getPeriodName() } // remove dymanic members if they exist on the data form editedMonths.removeAll('Q1','Q2','Q3','Q4','YearTotal’) BREAKING IT DOWN: GETTING EDITED CELLS Slide 40 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 • Think back to our iterator example • A few variables have to be defined » Lists – get to know them them like the back of your hand! • This has some Groovy code that will be new to you • Our iteration example is in use here
  • 41. // triple quotes make it easy to add special characters like quotes // when using complex formulas they have to be inside {} // we are simply taking the lists and building a delimited list for our fix statement // Build Essbase calculation sEssCalc <<""" FIX("${povMembers.join('","')}" , "${editedProducts.unique().join('","')}", "${editedMonths.unique().join('","')}") "Revenue" = "Units" * "Price"; ENDFIX """ BREAKING IT DOWN: BUILDING THE ESSBASE CALCULATION Slide 41 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 • We have a list of the POV members • We have a list of the edited periods • We have a list of the edited products • Update the script
  • 42. // If no products exist then no cells were edited // If that happens, print out a message to the log // that no data was edited // Otherwise, print the calculation to the log and // return the string, which executes the calculation if(editedProducts.size() == 0){ println "No data was changed." } else{ println sEssCalc return sEssCalc } BREAKING IT DOWN: SENDING THE STRING TO ESSBASE Slide 42 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 • We have our essCalc string built • Let’s verify that data has been changed so we don’t get an error by sending a bad calculation script to Essbase • How about we also write the script to the log so we can troubleshoot if there is an error
  • 43. // Define variables as Lists List povMembers = operation.grid.pov*.essbaseMbrName List editedProducts = [] List editedMonths = [] StringBuilder sEssCalc = StringBuilder.newInstance() // Identify edited periods and products operation.grid.dataCellIterator({DataCell cell -> cell.edited}).each{ cell -> editedProducts << cell.getMemberName("Product") editedMonths << cell.getPeriodName() } // remove dymanic members if they exist on the data form editedMonths.removeAll('Q1','Q2','Q3','Q4','YearTotal’) // Build Essbase calculation sEssCalc <<""" FIX("${povMembers.join('","')}" , "${editedProducts.unique().join('","')}", "${editedMonths.unique().join('","')}") "Revenue" = "Units" * "Price"; ENDFIX """ // Create log and send calculation to Essbase if(editedProducts.size() == 0){ println "No data was changed." } else{ println sEssCalc return sEssCalc } BREAKING IT DOWN: ONE LAST LOOK Slide 43 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019
  • 44. DEMONSTRATION OF DYNAMIC ESSBASE CALCULATION Slide 44 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 View a live example of this code working in a real-world situation
  • 45. Slide 45 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019
  • 46. KEYS TO SUCCESS EXAMPLES • Why not a smart push on a form? » Not dynamic to cells that edited » There are limits to what can be pushed » Performance is better when only edited cells are in the push • We start with a generic data map that we customize EXECUTE A CUSTOMIZED SMART PUSH
  • 47. // same as what we used in the Essbase calculation // customized calculation def editedProducts = [] def editedMonths = [] def povMap = [:] // get the edited products and months (same as // previous example) operation.grid.dataCellIterator({DataCell cell -> cell.edi ted}).each{ cell -> editedProducts << cell.getMemberName("Product") editedMonths << cell.getPeriodName() } editedMonths.removeAll('Q1','Q2','Q3','Q4','YearTotal’) // Add the POV dimensions and headers to the map operation.grid.pov.each{povMap[it.dimName] = it.essbaseMbr Name} BREAKING IT DOWN: GETTING THE EDITED Slide 47 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 • Start by getting the edited periods and products • Same as Essbase calculation customization
  • 48. // Add the POV dimensions and headers to the map // dimensions is the key and the member is the value operation.grid.pov.each{povMap[it.dimName] = it.essbaseMbrName} // the pov includes all the dimensions except what is in the rows // which are period and product // The following adds the edited products and edited months, which we will // add to the map povMap.put('Product', '"' + editedProducts.unique().join('","') + '"') povMap.put('Period', '"' + editedMonths.unique().join('","') + '”’) Basically, the above creates a map with the following key/value pairs: "Currency":"Local", "Company":"BILB", "Department":"Computers", "Store_Type":"c01", "Scenario":"OEP_Plan", "Version":"Webinar_Example", "Years":"FY18", "Account":"Units", "Source":"Input", "Product":'"5481602","5511009","5595429","5600302","5600304","5622770”’, "Period”:'"Jan","Feb”’ BREAKING IT DOWN: BUILDING THE MAP Slide 48 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 • A Map is like a list, but it is a combination of a key and a value » Company = 123 » Cost Center = xyz » Scenario = OEP_Plan • If a dimension isn’t defined, the properties setup in the data map are used
  • 49. // Use the generic data map to create a smartpush and pass // the map of dimensions and values to it operation.application.getDataMap("Product_SmartPush") .createSmartPush().execute(povMap) BREAKING IT DOWN: EXECUTING THE SMARTPUSH Slide 49 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 • Now that we have the overrides defined, all that is left is to execute the smartpush • Helpful notes » Users can’t execute a data map, only a smart push » Not all dimensions need to be overwritten if what is in the data map is meaningful
  • 50. BREAKING IT DOWN: THE JOB CONSOLE Slide 50 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 • The job console will show some valuable information » Anything logged via println will be in the completed dialogue » Every smart push will be a child item and can be analyzed ▸If 2 smart pushes are executed, two child items will be visible
  • 51. DEMONSTRATION OF EVERYTHING PUT TOGETHER Slide 51 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 View a live example of what this can do – real time reporting with no more BSO consolidations!
  • 52. Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 52
  • 53. WHERE TO GO FROM HERE Review of resources and questions Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 53
  • 54. WHERE TO GO FROM HERE • Educate yourself on the Groovy PBCS API • Walk through the examples at www.in2hyperion.com • Build a healthy understanding of collections » Maps/Lists » Interacting with them • Understand string and date manipulation • Grid iteration will probably be the first thing you tackle • Learn how to interact with grid builders • Download the Groovy libraries and developer app SUGGESTED RESOURCES
  • 55. WHERE TO GO FROM HERE • Lack of knowledge of Groovy • Complete misunderstanding of what the ePBCS documents were for » They are not to teach you Groovy » If you don’t know Groovy and aren’t willing to learn it, these documents will be interpreted as useless, which they are not • Complete oversight of understanding the type of parameters the API methods required • Not understanding how to know if variables were instantiated correctly » There are different types of string that may not play well with the API » There are multiple types of lists – would get errors that say a list was passed and a list was required MY STRUGGLES
  • 56. LAST CALL Thank you for attending Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Slide 56
  • 57. WRAPPING UP Slide 57 Getting Started With Groovy For The Non-Technical Superstar Monday, June 24, 2019 Introduction to Groovy and writing your first Groovy calculation 01 Using Groovy variables and validate user input06 Creating Groovy variables and collections02 Building advanced user input validation rules07 Looping through a Data Form and manipulating Groovy collections03 Query metadata 08 Using Groovy strings to create a dynamic Essbase calculation04 Introduction to Grid Builders 09 Manipulating lists and maps to efficiently execute jobs, Data Maps, and Smart Pushes05 Advanced Grid Builder concepts to move data between plan types10 inHYPERION ORACLE•EPBCS LEARNINGCENTER 2
  • 58. WRAPPING UP • Plan was missing 3MM in Salary » Business Issue ▸Users changed employee properties from hourly to salary but didn’t enter an annual salary rate » Groovy ▸Added validation so it was impossible to save a form with missing rates • Leadership wanted real-time reporting, project would be a failure without, was told PBCS could do it during sales cycle » Business Issue ▸When users changed product or WFP module data, it took 2-25 minutes to save every form (consolidations and data maps ran) » Groovy ▸Consolidations were eliminated to complete and form saves took 2.5 seconds on average REAL WORLD WINS
  • 59. WRAPPING UP • Currency Conversion in ASO » Procedural calculations ▸Had to be calculated at summary levels ▸Had to be split into more than 20 calculations » Groovy ▸At level 0 of all dimensions ▸Daily processing time was roughly 20 minutes • Reconciliate to HFM loaded at consolidated levels » Procedural calculations ▸ Too complex for PBCS ▸Development could not get it to finish » Groovy ▸Finished in 5 minutes for the entire year ▸Prompted for start and end month/year ▸One calculation ▸Developed in 4 hours REAL WORLD WINS
  • 60. WRAPPING UP • Eliminating DM » Mapping done in calculation ▸Dynamically creating maps based on metadata ▸No mapping tables required ▸No maintenance required » Groovy ▸At level 0 of all dimensions ▸20 times faster than DM process REAL WORLD WINS
  • 61. WRAPPING UP • ASO Only Planning » All Calculations In Groovy ▸Allocations ▸Balance walk forwards ▸Versioning ▸Pre-save validation ▪ Ensuring allocations are 100% ▪ Transfer in/out are positive/negative ▪ Adjustments by %/$ entry ▸Adding lines to forms for data entry ▸Currency Conversion ▸Unit of Measure Conversion ▸Top Level adjustments REAL WORLD WINS
  • 62. WRAPPING UP • kgoodfriend@accelytics.com • (614) 668-7324 • Sign up at www.in2hyperion.com to get emails when information is shared HOW TO CONTACT KYLE