SlideShare uma empresa Scribd logo
1 de 29
Incredible ODI tips to work
with Hyperion tools that
you ever wanted to know
Ricardo Giampaoli
Rodrigo Radtke
About the Speakers
Giampaoli, Ricardo
• Oracle Ace
• Master in Business
Administration and IT
management
• EPM training instructor
• Essbase/Planning/OBIEE/ODI
Certified Specialist
• Blogger @ devepm.com
Radtke, Rodrigo
• Oracle Ace
• Graduated in Computer
Engineering
• Software Developer Sr. Advisor
at Dell
• ODI, Oracle and Java Certified
• Blogger @ devepm.com
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
What we'll learn
• Looping ODI Objects
• Dynamic “OS” commands
• Powerful “Dynamic Variables”
• Substitution Tags and how useful they are
• Dynamic Topology
• “Third Command Tab“ Technic
• ODI custom execution information
• Stop, Start and Restart ODI priority jobs automatically
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Looping ODI Objects (Regular Way)
• Too much work to control complex loop order and parameter variables
• More ODI Objects to maintain
• Harder to make it dynamic
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Looping ODI Objects (Champion Way)
• Easy to control complex loop order and parameter variables
• Less ODI Objects to maintain
• Easier to make it dynamic
• Be careful about the Log Counter and parallel executions
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Looping ODI Objects (Champion Way)
• Command on Source
• Always a Select command
• Command on Target
• DML commands
• Inserts, Update, delete, truncate, create…
• ODI Commands
• odiStartScen, odiFileXxxx, OS Command...
• Programming languages
• Java/groove/jython…
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Looping ODI Objects (Champion Way)
• Loop virtually anything
• Can “Generate” dynamic code
• Using ALL_TAB_COLUMNS we can change the code in
the “command on target” dynamically
• Change the columns dynamically
• Change the code in the WHERE/AND statement
• Creating SQL code (regular expression depending on the
amount of columns of the source table/repository)
• Using LISTAGG we can build models dynamically
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Dynamic "OS" Commands
• Use the same loop approach to get dynamic information from the
source and apply on the target tab
• Any type of OS command
• Great to automate EPM environments
• Stop, Start and restart services
• Log windows events
• Execute Esscmd and Essmsh commands (needs to configure system variables
in the Agent server to enable the execution of the commands anywhere in
the system)
• Execute EPMAutomate for PBCS
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Dynamic "OS" Commands (Essmsh/Esscmd)
• For Essmsh/Esscmd commands we need to use the DOS command
“echo” with the option -i
• “echo” will echo all the command until the | to the next command
• “echo” allow us to connect and then execute a maxl command in Essbase
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Dynamic "OS" Commands (Essmsh/Esscmd)
• Command on Source
• None. Set just the connection information to be used in the
target tab
• Command on Target
• Essmsh
• Alter, Create, Display, Drop, Execute, Import, Export, Refresh and
Query
• Esscmd
• Get, Create, Delete, List, Rename, Set, Update, Validate, Reset,
Remove….
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Powerful “Global Variables“ (Regular way)
• Parameter table to store parameter
values
• One column is the Session Name to get
the parameter dynamically depending of
the Session being executed
• Three more columns to store the
parameter type, parameter name and
parameter value
• All Scenarios will start with the
SESSION_NM Variable
• This technic allow us to have just one
variable to get different “LOG_PATH” for
different scenarios
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Powerful “Global Variables“ (Champion way)
• The only thing that changes is the
select inside the variables:
• We use the previous query as a sub query
to test if the query will return any rows
from the parameter table for that specific
Session Name
• If the results in empty the NVL command
will return “GLOBAL”
• This allow us to create just one Global
parameter for all interfaces
• Also if anything changes,
we just need to insert a
new value for any session name and the
variable will bring that value just for that
scenario
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Powerful “Global Variables“ (Champion way)
• Less variables to maintain and easier for deployment
• In most part the value of the variables are the same for all
interfaces
• Servers name, paths, emails, application name…
• We can leverage this technic using ODI Global variables
• No need to create the same variable in all projects
• More flexible
• If a test needs to be performed or something changes the only
thing needed is an insert for that specific scenario
• To rollback we just need to delete the Session specific row
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Substitution Tags and how useful they are
• Substitution tags are part of the java substitution API
• The API methods are java methods that return a string value
• 4 type of Substitution Tags
• <%>, <?>, <@> and <$>
• All of them does the same thing but each one has its own parse phase
• <%>: generates the command when it is sent to the agent, but BEFORE it gets to the agent;
• <?>: generates the code in the agent server, BEFORE the command is sent to Operator
and BEFORE ODI variables are substituted
• <$> (available from 11.1.1.6 on): generates the code in the agent server, BEFORE the
command is sent to Operator but AFTER ODI variables are substituted
• <@>: generates the code in the agent server, AFTER the command appears in the Operator
and AFTER ODI variables are substituted
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Substitution Tags and how useful they are
• Create an ODI variable and write ‘TEST’ on it
• Execute in Jython technology:
• Raise ‘<%= System.getProperty("os.name") %> -
<%="#ODI_VAR"%>’
• Repeat for each substitution tag
• Agent is Windows server 2008
• Client is Windows server 2003
Subs Tag Code generated Results
<%> raise 'Windows 2003 - #KSCOPE.ODI_VAR' Windows 2003 - TEST
<?> raise 'Windows Server 2008 R2 - #KSCOPE.ODI_VAR' Windows Server 2008 R2 - TEST
<$> raise 'Windows Server 2008 R2 - TEST' Windows Server 2008 R2 - TEST
<@> raise '<@= System.getProperty("os.name") @> - <@="#KSCOPE.ODI_VAR"@>' Windows Server 2008 R2 - TEST
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Substitution Tags and how useful they are
• Different parse phases are useful to create dynamic code
• Heavily used in ODI KMs
• We may “loop” tags within tags
• We can have a code in % phase passing information to a ? Phase
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Dynamic Topology (Regular Way)
• Featured by multiple contexts
• One Physical for each DB
• One Logic For All Physics
• One Context for each Physical
• Context nightmare
• Tons of context to manage
• If users executes scenarios in
operator, multiple context make it
difficult
• In multiple projects one context
could mean nothing
Amer
Apj
Emea
N DB
Amer
Apj
Emea
N DB
Target DWGlobal
Physical
Context
Logical
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Dynamic Topology (Champion Way)
• Featured by dynamic topology
• One Physical for each DB + one
physical with variables (Dynamic)
• One Logical for each Physical
• One Context for all
• Context heaven
• One context to manage
• Easier for users to execute
• One context for all projects
• Works in ODI 11 and ODI 12 with
patch 21156142
Amer Apj Emea N DB
Global DWDynamic
Amer Apj Emea N DB
Dynamic
Physical
Context
Logical
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Dynamic Topology (Champion Way)
• Create one variable for each field in the
physical topology
• Data Server:
• User: #ODI_PROJECT.CONN_USER
• Password: #ODI_PROJECT.CONN_PASS
• JDBC URL: #ODI_PROJECT.CONN_URL
• Physical Schema:
• Schema: #ODI_PROJECT.CONN_DATA_USER
• Work Schema: #ODI_PROJECT.CONN_WORK_USER
• Need to inform the
project_code.variable_name
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Dynamic Topology (Champion Way)
• Create one procedure
• One step for each database to
get the connection information
• The connection information
will be retrieved from the
“Command on Source” tab
• “Command on Target” to
execute a scenario passing all
connection information needed
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
“Third Command Tab“ Technic
• Sometimes we need more than a
command on source and target
• Executions of Maxl in multiple Essbase
applications
• Select on source with application
information (Loop)
• Command on target (to execute what we
want)
• Since we are using the Oracle technology
in the command on source we cannot get
Essbase login information
• For this example we need a “Third
Command Tab”
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
“Third Command Tab“ Technic
• Create a new step to get the
connection information
• On the command on source set
the Essbase technology and
schema
• On the command on target
use Java technology
and create 3 java
variables that will hold the
connection information
• Use the Java Variable in the next
Steps
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
“Third Command Tab“ Technic
• Loop Maxl/Cmd commands
• Get the return of a SQL into a Java variable to use in other
steps
• This is also useful because the java variable is replaced for his value
in operator
• Anything you want to store and use later within the scenario
execution
• If you want to use inside a children scenario you need to pass it to a
variable inside the scenario
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
ODI Custom Execution Information
• ODI repositories contains all kind of
useful information that we can
retrieve at run time
• Execution information, current variable
values, jobs in execution…
• We can retrieve all this information
using the previews technics
• Inside a procedure in the command on
source set the ODI repository connection
• In the command on target create a SQL
and add it to a java code that will
connect in the database to retrieve the
information
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
ODI custom execution information
• In another step we just need to
“Raise” the previous variable
• Now you can use anywhere in the
package
• This will show in the operator
the value that all existing
variables until that point has
• Works with all kind of variables:
refresh, set, declare, global,
project only…
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Stop, Start and Restart ODI priority jobs
automatically
• There’re some commands that cannot be executed within
ODI tools:
• Restart load plan, Restart session, Stop load plan, Stop session,
Start load plan, Start scen
• But all these commands can be executed outside ODI
using some .bat/.sh files located in the agent server:
• oraclediagentbin (Only exists in the agent)
• The command to ran is:
• stopsession <session_number> “-AGENT_URL=<agent_url>” [“-
STOP_LEVEL=<normal(default)|immediate>”]
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Stop, Start and Restart ODI priority jobs
automatically
• If we want to stop all jobs before running a priority
job, we could get all running jobs from ODI
repository and stop them
• To do so we need to get the Agent URL from the
master repository
• Get the job information from the work
repository
• And stop all the sessions
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Stop, Start and Restart ODI priority jobs
automatically
• Useful for priority job
• Check if other jobs are running and stop them automatically
• Executing jobs respecting a time window
• We can stop jobs that executes longer than a specific time window
• Depending of the error restart automatically a specific
job
DevEpm.com
@RZGiampaoli
@RodrigoRadtke
@DEVEPM
Ricardo Giampaoli – TeraCorp
Rodrigo Radtke de Souza - Dell
Thank you!

Mais conteúdo relacionado

Mais procurados

Import DEVNET Associate OVA sebagai VM pada Proxmox VE 6.3
Import DEVNET Associate OVA sebagai VM pada Proxmox VE 6.3Import DEVNET Associate OVA sebagai VM pada Proxmox VE 6.3
Import DEVNET Associate OVA sebagai VM pada Proxmox VE 6.3I Putu Hariyadi
 
MBSE with Arcadia method step-by-step System Analysis.pdf
MBSE with Arcadia method step-by-step System Analysis.pdfMBSE with Arcadia method step-by-step System Analysis.pdf
MBSE with Arcadia method step-by-step System Analysis.pdfHelder Castro
 
Software Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic ArchitecturesSoftware Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic ArchitecturesAngelos Kapsimanis
 
Basics of html for web development by software outsourcing company india
Basics of html for web development   by software outsourcing company indiaBasics of html for web development   by software outsourcing company india
Basics of html for web development by software outsourcing company indiaJignesh Aakoliya
 
Volvo XC90 Katalog - Nordstern Garage AG
Volvo XC90 Katalog - Nordstern Garage AGVolvo XC90 Katalog - Nordstern Garage AG
Volvo XC90 Katalog - Nordstern Garage AGNordstern Garage AG
 
Ansible Callback Plugins
Ansible Callback PluginsAnsible Callback Plugins
Ansible Callback Pluginsjtyr
 
Hpe Data Protector installation guide
Hpe Data Protector installation guideHpe Data Protector installation guide
Hpe Data Protector installation guideAndrey Karpov
 
What is Wrapper Class and How to use it with LWC, Oleh Mykytyn
What is Wrapper Class and How to use it with LWC, Oleh MykytynWhat is Wrapper Class and How to use it with LWC, Oleh Mykytyn
What is Wrapper Class and How to use it with LWC, Oleh MykytynCzechDreamin
 
Html5 Game Development with Canvas
Html5 Game Development with CanvasHtml5 Game Development with Canvas
Html5 Game Development with CanvasPham Huy Tung
 
Amazon interview questions
Amazon interview questionsAmazon interview questions
Amazon interview questionsSumit Arora
 
Can You Do That with APEX? Building Not So Straightforward Pages
Can You Do That with APEX? Building Not So Straightforward PagesCan You Do That with APEX? Building Not So Straightforward Pages
Can You Do That with APEX? Building Not So Straightforward PagesDimitri Gielis
 

Mais procurados (14)

Salesforce Partner Program
Salesforce Partner ProgramSalesforce Partner Program
Salesforce Partner Program
 
Import DEVNET Associate OVA sebagai VM pada Proxmox VE 6.3
Import DEVNET Associate OVA sebagai VM pada Proxmox VE 6.3Import DEVNET Associate OVA sebagai VM pada Proxmox VE 6.3
Import DEVNET Associate OVA sebagai VM pada Proxmox VE 6.3
 
Kunal bhatia resume mass
Kunal bhatia   resume massKunal bhatia   resume mass
Kunal bhatia resume mass
 
MBSE with Arcadia method step-by-step System Analysis.pdf
MBSE with Arcadia method step-by-step System Analysis.pdfMBSE with Arcadia method step-by-step System Analysis.pdf
MBSE with Arcadia method step-by-step System Analysis.pdf
 
Software Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic ArchitecturesSoftware Architectures, Week 1 - Monolithic Architectures
Software Architectures, Week 1 - Monolithic Architectures
 
CSS notes
CSS notesCSS notes
CSS notes
 
Basics of html for web development by software outsourcing company india
Basics of html for web development   by software outsourcing company indiaBasics of html for web development   by software outsourcing company india
Basics of html for web development by software outsourcing company india
 
Volvo XC90 Katalog - Nordstern Garage AG
Volvo XC90 Katalog - Nordstern Garage AGVolvo XC90 Katalog - Nordstern Garage AG
Volvo XC90 Katalog - Nordstern Garage AG
 
Ansible Callback Plugins
Ansible Callback PluginsAnsible Callback Plugins
Ansible Callback Plugins
 
Hpe Data Protector installation guide
Hpe Data Protector installation guideHpe Data Protector installation guide
Hpe Data Protector installation guide
 
What is Wrapper Class and How to use it with LWC, Oleh Mykytyn
What is Wrapper Class and How to use it with LWC, Oleh MykytynWhat is Wrapper Class and How to use it with LWC, Oleh Mykytyn
What is Wrapper Class and How to use it with LWC, Oleh Mykytyn
 
Html5 Game Development with Canvas
Html5 Game Development with CanvasHtml5 Game Development with Canvas
Html5 Game Development with Canvas
 
Amazon interview questions
Amazon interview questionsAmazon interview questions
Amazon interview questions
 
Can You Do That with APEX? Building Not So Straightforward Pages
Can You Do That with APEX? Building Not So Straightforward PagesCan You Do That with APEX? Building Not So Straightforward Pages
Can You Do That with APEX? Building Not So Straightforward Pages
 

Destaque

Tableau Best Practices for OBIEE
Tableau Best Practices for OBIEETableau Best Practices for OBIEE
Tableau Best Practices for OBIEEBI Connector
 
How to solve complex business requirements with Oracle Data Integrator?
How to solve complex business requirements with Oracle Data Integrator?How to solve complex business requirements with Oracle Data Integrator?
How to solve complex business requirements with Oracle Data Integrator?Gurcan Orhan
 
Oracle BI Hybrid BI : Mode 1 + Mode 2, Cloud + On-Premise Business Analytics
Oracle BI Hybrid BI : Mode 1 + Mode 2, Cloud + On-Premise Business AnalyticsOracle BI Hybrid BI : Mode 1 + Mode 2, Cloud + On-Premise Business Analytics
Oracle BI Hybrid BI : Mode 1 + Mode 2, Cloud + On-Premise Business AnalyticsMark Rittman
 
SQL: The one language to rule all your data
SQL: The one language to rule all your dataSQL: The one language to rule all your data
SQL: The one language to rule all your dataBrendan Tierney
 
Predictive analytics: Mining gold and creating valuable product
Predictive analytics: Mining gold and creating valuable productPredictive analytics: Mining gold and creating valuable product
Predictive analytics: Mining gold and creating valuable productBrendan Tierney
 
No more unknown members! Smart data load validation for Hyperion Planning usi...
No more unknown members! Smart data load validation for Hyperion Planning usi...No more unknown members! Smart data load validation for Hyperion Planning usi...
No more unknown members! Smart data load validation for Hyperion Planning usi...Rodrigo Radtke de Souza
 
Take a peek at Dell's smart EPM global environment
Take a peek at Dell's smart EPM global environmentTake a peek at Dell's smart EPM global environment
Take a peek at Dell's smart EPM global environmentRodrigo Radtke de Souza
 
Unleashing Hyperion Planning Security Using ODI
Unleashing Hyperion Planning Security Using ODIUnleashing Hyperion Planning Security Using ODI
Unleashing Hyperion Planning Security Using ODIRodrigo Radtke de Souza
 
How to Handle DEV&TEST&PROD for Oracle Data Integrator
How to Handle DEV&TEST&PROD for Oracle Data IntegratorHow to Handle DEV&TEST&PROD for Oracle Data Integrator
How to Handle DEV&TEST&PROD for Oracle Data IntegratorGurcan Orhan
 
OBIEE 11.1.1.7: Upgrade y Nuevas Características
OBIEE 11.1.1.7: Upgrade y Nuevas CaracterísticasOBIEE 11.1.1.7: Upgrade y Nuevas Características
OBIEE 11.1.1.7: Upgrade y Nuevas CaracterísticasEdelweiss Kammermann
 
But how do I GET the data? Transparency Camp 2014
But how do I GET the data? Transparency Camp 2014But how do I GET the data? Transparency Camp 2014
But how do I GET the data? Transparency Camp 2014Jeffrey Quigley
 
Create and Schedule scenario with ODI 11g
Create and Schedule scenario with ODI 11gCreate and Schedule scenario with ODI 11g
Create and Schedule scenario with ODI 11gDharmaraj Borse
 
oracle data integrator training | oracle data integrator training videos | or...
oracle data integrator training | oracle data integrator training videos | or...oracle data integrator training | oracle data integrator training videos | or...
oracle data integrator training | oracle data integrator training videos | or...Nancy Thomas
 
Odi best-practice-data-warehouse-168255
Odi best-practice-data-warehouse-168255Odi best-practice-data-warehouse-168255
Odi best-practice-data-warehouse-168255nm2013
 
ODI 11g in the Enterprise - BIWA 2013
ODI 11g in the Enterprise - BIWA 2013ODI 11g in the Enterprise - BIWA 2013
ODI 11g in the Enterprise - BIWA 2013Mark Rittman
 
A microservice approach for legacy modernisation
A microservice approach for legacy modernisationA microservice approach for legacy modernisation
A microservice approach for legacy modernisationluisw19
 
Empowering Business Users: OBIEE 12c Visual Analyzer and Data Mashup
Empowering Business Users: OBIEE 12c Visual Analyzer and Data MashupEmpowering Business Users: OBIEE 12c Visual Analyzer and Data Mashup
Empowering Business Users: OBIEE 12c Visual Analyzer and Data MashupEdelweiss Kammermann
 

Destaque (20)

Tableau Best Practices for OBIEE
Tableau Best Practices for OBIEETableau Best Practices for OBIEE
Tableau Best Practices for OBIEE
 
How to solve complex business requirements with Oracle Data Integrator?
How to solve complex business requirements with Oracle Data Integrator?How to solve complex business requirements with Oracle Data Integrator?
How to solve complex business requirements with Oracle Data Integrator?
 
Oracle BI Hybrid BI : Mode 1 + Mode 2, Cloud + On-Premise Business Analytics
Oracle BI Hybrid BI : Mode 1 + Mode 2, Cloud + On-Premise Business AnalyticsOracle BI Hybrid BI : Mode 1 + Mode 2, Cloud + On-Premise Business Analytics
Oracle BI Hybrid BI : Mode 1 + Mode 2, Cloud + On-Premise Business Analytics
 
SQL: The one language to rule all your data
SQL: The one language to rule all your dataSQL: The one language to rule all your data
SQL: The one language to rule all your data
 
Predictive analytics: Mining gold and creating valuable product
Predictive analytics: Mining gold and creating valuable productPredictive analytics: Mining gold and creating valuable product
Predictive analytics: Mining gold and creating valuable product
 
No more unknown members! Smart data load validation for Hyperion Planning usi...
No more unknown members! Smart data load validation for Hyperion Planning usi...No more unknown members! Smart data load validation for Hyperion Planning usi...
No more unknown members! Smart data load validation for Hyperion Planning usi...
 
OBIEE Upgrade - Key things you need to know
OBIEE Upgrade  - Key things you need to know OBIEE Upgrade  - Key things you need to know
OBIEE Upgrade - Key things you need to know
 
Where to Start ETL Developer Career
Where to Start ETL Developer CareerWhere to Start ETL Developer Career
Where to Start ETL Developer Career
 
Take a peek at Dell's smart EPM global environment
Take a peek at Dell's smart EPM global environmentTake a peek at Dell's smart EPM global environment
Take a peek at Dell's smart EPM global environment
 
Unleashing Hyperion Planning Security Using ODI
Unleashing Hyperion Planning Security Using ODIUnleashing Hyperion Planning Security Using ODI
Unleashing Hyperion Planning Security Using ODI
 
How to Handle DEV&TEST&PROD for Oracle Data Integrator
How to Handle DEV&TEST&PROD for Oracle Data IntegratorHow to Handle DEV&TEST&PROD for Oracle Data Integrator
How to Handle DEV&TEST&PROD for Oracle Data Integrator
 
OBIEE 11.1.1.7: Upgrade y Nuevas Características
OBIEE 11.1.1.7: Upgrade y Nuevas CaracterísticasOBIEE 11.1.1.7: Upgrade y Nuevas Características
OBIEE 11.1.1.7: Upgrade y Nuevas Características
 
But how do I GET the data? Transparency Camp 2014
But how do I GET the data? Transparency Camp 2014But how do I GET the data? Transparency Camp 2014
But how do I GET the data? Transparency Camp 2014
 
Create and Schedule scenario with ODI 11g
Create and Schedule scenario with ODI 11gCreate and Schedule scenario with ODI 11g
Create and Schedule scenario with ODI 11g
 
oracle data integrator training | oracle data integrator training videos | or...
oracle data integrator training | oracle data integrator training videos | or...oracle data integrator training | oracle data integrator training videos | or...
oracle data integrator training | oracle data integrator training videos | or...
 
Odi interview questions
Odi interview questionsOdi interview questions
Odi interview questions
 
Odi best-practice-data-warehouse-168255
Odi best-practice-data-warehouse-168255Odi best-practice-data-warehouse-168255
Odi best-practice-data-warehouse-168255
 
ODI 11g in the Enterprise - BIWA 2013
ODI 11g in the Enterprise - BIWA 2013ODI 11g in the Enterprise - BIWA 2013
ODI 11g in the Enterprise - BIWA 2013
 
A microservice approach for legacy modernisation
A microservice approach for legacy modernisationA microservice approach for legacy modernisation
A microservice approach for legacy modernisation
 
Empowering Business Users: OBIEE 12c Visual Analyzer and Data Mashup
Empowering Business Users: OBIEE 12c Visual Analyzer and Data MashupEmpowering Business Users: OBIEE 12c Visual Analyzer and Data Mashup
Empowering Business Users: OBIEE 12c Visual Analyzer and Data Mashup
 

Semelhante a Incredible ODI tips to work with Hyperion tools that you ever wanted to know

Write Generic Code with the Tooling API
Write Generic Code with the Tooling APIWrite Generic Code with the Tooling API
Write Generic Code with the Tooling APIAdam Olshansky
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeSarah Z
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...Malin Weiss
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...Speedment, Inc.
 
Punta Dreamin 17 Generic Apex and Tooling Api
Punta Dreamin 17 Generic Apex and Tooling ApiPunta Dreamin 17 Generic Apex and Tooling Api
Punta Dreamin 17 Generic Apex and Tooling ApiAdam Olshansky
 
Testing sync engine
Testing sync engineTesting sync engine
Testing sync engineIlya Puchka
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSThoughtworks
 
Scala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macrosScala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macrosebiznext
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaKazuhiro Sera
 
How to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseHow to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseSpeedment, Inc.
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSpeedment, Inc.
 
Data Warehouse 2.0: Master Techniques for EPM Guys (Powered by ODI)
Data Warehouse 2.0: Master Techniques for EPM Guys (Powered by ODI)Data Warehouse 2.0: Master Techniques for EPM Guys (Powered by ODI)
Data Warehouse 2.0: Master Techniques for EPM Guys (Powered by ODI)Rodrigo Radtke de Souza
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine Yard
 
Solid and Sustainable Development in Scala
Solid and Sustainable Development in ScalaSolid and Sustainable Development in Scala
Solid and Sustainable Development in Scalascalaconfjp
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Maaz Anjum
 
Ladies Be Architects - Apex Basics
Ladies Be Architects - Apex BasicsLadies Be Architects - Apex Basics
Ladies Be Architects - Apex Basicsgemziebeth
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAnand Bagmar
 

Semelhante a Incredible ODI tips to work with Hyperion tools that you ever wanted to know (20)

Wider than rails
Wider than railsWider than rails
Wider than rails
 
Write Generic Code with the Tooling API
Write Generic Code with the Tooling APIWrite Generic Code with the Tooling API
Write Generic Code with the Tooling API
 
Ansible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less CoffeeAnsible: How to Get More Sleep and Require Less Coffee
Ansible: How to Get More Sleep and Require Less Coffee
 
Scaling tappsi
Scaling tappsiScaling tappsi
Scaling tappsi
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
 
Punta Dreamin 17 Generic Apex and Tooling Api
Punta Dreamin 17 Generic Apex and Tooling ApiPunta Dreamin 17 Generic Apex and Tooling Api
Punta Dreamin 17 Generic Apex and Tooling Api
 
Fastest Servlets in the West
Fastest Servlets in the WestFastest Servlets in the West
Fastest Servlets in the West
 
Testing sync engine
Testing sync engineTesting sync engine
Testing sync engine
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaS
 
Scala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macrosScala io2013 : Our journey from UML/MDD to Scala macros
Scala io2013 : Our journey from UML/MDD to Scala macros
 
Solid And Sustainable Development in Scala
Solid And Sustainable Development in ScalaSolid And Sustainable Development in Scala
Solid And Sustainable Development in Scala
 
How to generate customized java 8 code from your database
How to generate customized java 8 code from your databaseHow to generate customized java 8 code from your database
How to generate customized java 8 code from your database
 
Silicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your databaseSilicon Valley JUG - How to generate customized java 8 code from your database
Silicon Valley JUG - How to generate customized java 8 code from your database
 
Data Warehouse 2.0: Master Techniques for EPM Guys (Powered by ODI)
Data Warehouse 2.0: Master Techniques for EPM Guys (Powered by ODI)Data Warehouse 2.0: Master Techniques for EPM Guys (Powered by ODI)
Data Warehouse 2.0: Master Techniques for EPM Guys (Powered by ODI)
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
Solid and Sustainable Development in Scala
Solid and Sustainable Development in ScalaSolid and Sustainable Development in Scala
Solid and Sustainable Development in Scala
 
Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!Database Provisioning in EM12c: Provision me a Database Now!
Database Provisioning in EM12c: Provision me a Database Now!
 
Ladies Be Architects - Apex Basics
Ladies Be Architects - Apex BasicsLadies Be Architects - Apex Basics
Ladies Be Architects - Apex Basics
 
Automate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaSAutomate across Platform, OS, Technologies with TaaS
Automate across Platform, OS, Technologies with TaaS
 

Último

Defining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data StoryDefining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data StoryJeremy Anderson
 
Thiophen Mechanism khhjjjjjjjhhhhhhhhhhh
Thiophen Mechanism khhjjjjjjjhhhhhhhhhhhThiophen Mechanism khhjjjjjjjhhhhhhhhhhh
Thiophen Mechanism khhjjjjjjjhhhhhhhhhhhYasamin16
 
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default  Presentation : Data Analysis Project PPTPredictive Analysis for Loan Default  Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPTBoston Institute of Analytics
 
DBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdfDBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdfJohn Sterrett
 
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理e4aez8ss
 
Learn How Data Science Changes Our World
Learn How Data Science Changes Our WorldLearn How Data Science Changes Our World
Learn How Data Science Changes Our WorldEduminds Learning
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max PrincetonTimothy Spann
 
ASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel CanterASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel Cantervoginip
 
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degreeyuu sss
 
办美国阿肯色大学小石城分校毕业证成绩单pdf电子版制作修改#真实留信入库#永久存档#真实可查#diploma#degree
办美国阿肯色大学小石城分校毕业证成绩单pdf电子版制作修改#真实留信入库#永久存档#真实可查#diploma#degree办美国阿肯色大学小石城分校毕业证成绩单pdf电子版制作修改#真实留信入库#永久存档#真实可查#diploma#degree
办美国阿肯色大学小石城分校毕业证成绩单pdf电子版制作修改#真实留信入库#永久存档#真实可查#diploma#degreeyuu sss
 
Identifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanIdentifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanMYRABACSAFRA2
 
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝DelhiRS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhijennyeacort
 
Vision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxVision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxellehsormae
 
INTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTDINTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTDRafezzaman
 
20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdfHuman37
 
modul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptxmodul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptxaleedritatuxx
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Seán Kennedy
 
Advanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsAdvanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsVICTOR MAESTRE RAMIREZ
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...Amil Baba Dawood bangali
 
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档208367051
 

Último (20)

Defining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data StoryDefining Constituents, Data Vizzes and Telling a Data Story
Defining Constituents, Data Vizzes and Telling a Data Story
 
Thiophen Mechanism khhjjjjjjjhhhhhhhhhhh
Thiophen Mechanism khhjjjjjjjhhhhhhhhhhhThiophen Mechanism khhjjjjjjjhhhhhhhhhhh
Thiophen Mechanism khhjjjjjjjhhhhhhhhhhh
 
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default  Presentation : Data Analysis Project PPTPredictive Analysis for Loan Default  Presentation : Data Analysis Project PPT
Predictive Analysis for Loan Default Presentation : Data Analysis Project PPT
 
DBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdfDBA Basics: Getting Started with Performance Tuning.pdf
DBA Basics: Getting Started with Performance Tuning.pdf
 
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
科罗拉多大学波尔得分校毕业证学位证成绩单-可办理
 
Learn How Data Science Changes Our World
Learn How Data Science Changes Our WorldLearn How Data Science Changes Our World
Learn How Data Science Changes Our World
 
Real-Time AI Streaming - AI Max Princeton
Real-Time AI  Streaming - AI Max PrincetonReal-Time AI  Streaming - AI Max Princeton
Real-Time AI Streaming - AI Max Princeton
 
ASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel CanterASML's Taxonomy Adventure by Daniel Canter
ASML's Taxonomy Adventure by Daniel Canter
 
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
 
办美国阿肯色大学小石城分校毕业证成绩单pdf电子版制作修改#真实留信入库#永久存档#真实可查#diploma#degree
办美国阿肯色大学小石城分校毕业证成绩单pdf电子版制作修改#真实留信入库#永久存档#真实可查#diploma#degree办美国阿肯色大学小石城分校毕业证成绩单pdf电子版制作修改#真实留信入库#永久存档#真实可查#diploma#degree
办美国阿肯色大学小石城分校毕业证成绩单pdf电子版制作修改#真实留信入库#永久存档#真实可查#diploma#degree
 
Identifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population MeanIdentifying Appropriate Test Statistics Involving Population Mean
Identifying Appropriate Test Statistics Involving Population Mean
 
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝DelhiRS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
 
Vision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptxVision, Mission, Goals and Objectives ppt..pptx
Vision, Mission, Goals and Objectives ppt..pptx
 
INTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTDINTERNSHIP ON PURBASHA COMPOSITE TEX LTD
INTERNSHIP ON PURBASHA COMPOSITE TEX LTD
 
20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf
 
modul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptxmodul pembelajaran robotic Workshop _ by Slidesgo.pptx
modul pembelajaran robotic Workshop _ by Slidesgo.pptx
 
Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...Student profile product demonstration on grades, ability, well-being and mind...
Student profile product demonstration on grades, ability, well-being and mind...
 
Advanced Machine Learning for Business Professionals
Advanced Machine Learning for Business ProfessionalsAdvanced Machine Learning for Business Professionals
Advanced Machine Learning for Business Professionals
 
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
NO1 Certified Black Magic Specialist Expert Amil baba in Lahore Islamabad Raw...
 
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
原版1:1定制南十字星大学毕业证(SCU毕业证)#文凭成绩单#真实留信学历认证永久存档
 

Incredible ODI tips to work with Hyperion tools that you ever wanted to know

  • 1. Incredible ODI tips to work with Hyperion tools that you ever wanted to know Ricardo Giampaoli Rodrigo Radtke
  • 2. About the Speakers Giampaoli, Ricardo • Oracle Ace • Master in Business Administration and IT management • EPM training instructor • Essbase/Planning/OBIEE/ODI Certified Specialist • Blogger @ devepm.com Radtke, Rodrigo • Oracle Ace • Graduated in Computer Engineering • Software Developer Sr. Advisor at Dell • ODI, Oracle and Java Certified • Blogger @ devepm.com
  • 3. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM What we'll learn • Looping ODI Objects • Dynamic “OS” commands • Powerful “Dynamic Variables” • Substitution Tags and how useful they are • Dynamic Topology • “Third Command Tab“ Technic • ODI custom execution information • Stop, Start and Restart ODI priority jobs automatically
  • 4. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Looping ODI Objects (Regular Way) • Too much work to control complex loop order and parameter variables • More ODI Objects to maintain • Harder to make it dynamic
  • 5. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Looping ODI Objects (Champion Way) • Easy to control complex loop order and parameter variables • Less ODI Objects to maintain • Easier to make it dynamic • Be careful about the Log Counter and parallel executions
  • 6. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Looping ODI Objects (Champion Way) • Command on Source • Always a Select command • Command on Target • DML commands • Inserts, Update, delete, truncate, create… • ODI Commands • odiStartScen, odiFileXxxx, OS Command... • Programming languages • Java/groove/jython…
  • 7. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Looping ODI Objects (Champion Way) • Loop virtually anything • Can “Generate” dynamic code • Using ALL_TAB_COLUMNS we can change the code in the “command on target” dynamically • Change the columns dynamically • Change the code in the WHERE/AND statement • Creating SQL code (regular expression depending on the amount of columns of the source table/repository) • Using LISTAGG we can build models dynamically
  • 8. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Dynamic "OS" Commands • Use the same loop approach to get dynamic information from the source and apply on the target tab • Any type of OS command • Great to automate EPM environments • Stop, Start and restart services • Log windows events • Execute Esscmd and Essmsh commands (needs to configure system variables in the Agent server to enable the execution of the commands anywhere in the system) • Execute EPMAutomate for PBCS
  • 9. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Dynamic "OS" Commands (Essmsh/Esscmd) • For Essmsh/Esscmd commands we need to use the DOS command “echo” with the option -i • “echo” will echo all the command until the | to the next command • “echo” allow us to connect and then execute a maxl command in Essbase
  • 10. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Dynamic "OS" Commands (Essmsh/Esscmd) • Command on Source • None. Set just the connection information to be used in the target tab • Command on Target • Essmsh • Alter, Create, Display, Drop, Execute, Import, Export, Refresh and Query • Esscmd • Get, Create, Delete, List, Rename, Set, Update, Validate, Reset, Remove….
  • 11. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Powerful “Global Variables“ (Regular way) • Parameter table to store parameter values • One column is the Session Name to get the parameter dynamically depending of the Session being executed • Three more columns to store the parameter type, parameter name and parameter value • All Scenarios will start with the SESSION_NM Variable • This technic allow us to have just one variable to get different “LOG_PATH” for different scenarios
  • 12. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Powerful “Global Variables“ (Champion way) • The only thing that changes is the select inside the variables: • We use the previous query as a sub query to test if the query will return any rows from the parameter table for that specific Session Name • If the results in empty the NVL command will return “GLOBAL” • This allow us to create just one Global parameter for all interfaces • Also if anything changes, we just need to insert a new value for any session name and the variable will bring that value just for that scenario
  • 13. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Powerful “Global Variables“ (Champion way) • Less variables to maintain and easier for deployment • In most part the value of the variables are the same for all interfaces • Servers name, paths, emails, application name… • We can leverage this technic using ODI Global variables • No need to create the same variable in all projects • More flexible • If a test needs to be performed or something changes the only thing needed is an insert for that specific scenario • To rollback we just need to delete the Session specific row
  • 14. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Substitution Tags and how useful they are • Substitution tags are part of the java substitution API • The API methods are java methods that return a string value • 4 type of Substitution Tags • <%>, <?>, <@> and <$> • All of them does the same thing but each one has its own parse phase • <%>: generates the command when it is sent to the agent, but BEFORE it gets to the agent; • <?>: generates the code in the agent server, BEFORE the command is sent to Operator and BEFORE ODI variables are substituted • <$> (available from 11.1.1.6 on): generates the code in the agent server, BEFORE the command is sent to Operator but AFTER ODI variables are substituted • <@>: generates the code in the agent server, AFTER the command appears in the Operator and AFTER ODI variables are substituted
  • 15. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Substitution Tags and how useful they are • Create an ODI variable and write ‘TEST’ on it • Execute in Jython technology: • Raise ‘<%= System.getProperty("os.name") %> - <%="#ODI_VAR"%>’ • Repeat for each substitution tag • Agent is Windows server 2008 • Client is Windows server 2003 Subs Tag Code generated Results <%> raise 'Windows 2003 - #KSCOPE.ODI_VAR' Windows 2003 - TEST <?> raise 'Windows Server 2008 R2 - #KSCOPE.ODI_VAR' Windows Server 2008 R2 - TEST <$> raise 'Windows Server 2008 R2 - TEST' Windows Server 2008 R2 - TEST <@> raise '<@= System.getProperty("os.name") @> - <@="#KSCOPE.ODI_VAR"@>' Windows Server 2008 R2 - TEST
  • 16. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Substitution Tags and how useful they are • Different parse phases are useful to create dynamic code • Heavily used in ODI KMs • We may “loop” tags within tags • We can have a code in % phase passing information to a ? Phase
  • 17. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Dynamic Topology (Regular Way) • Featured by multiple contexts • One Physical for each DB • One Logic For All Physics • One Context for each Physical • Context nightmare • Tons of context to manage • If users executes scenarios in operator, multiple context make it difficult • In multiple projects one context could mean nothing Amer Apj Emea N DB Amer Apj Emea N DB Target DWGlobal Physical Context Logical
  • 18. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Dynamic Topology (Champion Way) • Featured by dynamic topology • One Physical for each DB + one physical with variables (Dynamic) • One Logical for each Physical • One Context for all • Context heaven • One context to manage • Easier for users to execute • One context for all projects • Works in ODI 11 and ODI 12 with patch 21156142 Amer Apj Emea N DB Global DWDynamic Amer Apj Emea N DB Dynamic Physical Context Logical
  • 19. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Dynamic Topology (Champion Way) • Create one variable for each field in the physical topology • Data Server: • User: #ODI_PROJECT.CONN_USER • Password: #ODI_PROJECT.CONN_PASS • JDBC URL: #ODI_PROJECT.CONN_URL • Physical Schema: • Schema: #ODI_PROJECT.CONN_DATA_USER • Work Schema: #ODI_PROJECT.CONN_WORK_USER • Need to inform the project_code.variable_name
  • 20. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Dynamic Topology (Champion Way) • Create one procedure • One step for each database to get the connection information • The connection information will be retrieved from the “Command on Source” tab • “Command on Target” to execute a scenario passing all connection information needed
  • 21. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM “Third Command Tab“ Technic • Sometimes we need more than a command on source and target • Executions of Maxl in multiple Essbase applications • Select on source with application information (Loop) • Command on target (to execute what we want) • Since we are using the Oracle technology in the command on source we cannot get Essbase login information • For this example we need a “Third Command Tab”
  • 22. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM “Third Command Tab“ Technic • Create a new step to get the connection information • On the command on source set the Essbase technology and schema • On the command on target use Java technology and create 3 java variables that will hold the connection information • Use the Java Variable in the next Steps
  • 23. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM “Third Command Tab“ Technic • Loop Maxl/Cmd commands • Get the return of a SQL into a Java variable to use in other steps • This is also useful because the java variable is replaced for his value in operator • Anything you want to store and use later within the scenario execution • If you want to use inside a children scenario you need to pass it to a variable inside the scenario
  • 24. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM ODI Custom Execution Information • ODI repositories contains all kind of useful information that we can retrieve at run time • Execution information, current variable values, jobs in execution… • We can retrieve all this information using the previews technics • Inside a procedure in the command on source set the ODI repository connection • In the command on target create a SQL and add it to a java code that will connect in the database to retrieve the information
  • 25. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM ODI custom execution information • In another step we just need to “Raise” the previous variable • Now you can use anywhere in the package • This will show in the operator the value that all existing variables until that point has • Works with all kind of variables: refresh, set, declare, global, project only…
  • 26. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Stop, Start and Restart ODI priority jobs automatically • There’re some commands that cannot be executed within ODI tools: • Restart load plan, Restart session, Stop load plan, Stop session, Start load plan, Start scen • But all these commands can be executed outside ODI using some .bat/.sh files located in the agent server: • oraclediagentbin (Only exists in the agent) • The command to ran is: • stopsession <session_number> “-AGENT_URL=<agent_url>” [“- STOP_LEVEL=<normal(default)|immediate>”]
  • 27. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Stop, Start and Restart ODI priority jobs automatically • If we want to stop all jobs before running a priority job, we could get all running jobs from ODI repository and stop them • To do so we need to get the Agent URL from the master repository • Get the job information from the work repository • And stop all the sessions
  • 28. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Stop, Start and Restart ODI priority jobs automatically • Useful for priority job • Check if other jobs are running and stop them automatically • Executing jobs respecting a time window • We can stop jobs that executes longer than a specific time window • Depending of the error restart automatically a specific job
  • 29. DevEpm.com @RZGiampaoli @RodrigoRadtke @DEVEPM Ricardo Giampaoli – TeraCorp Rodrigo Radtke de Souza - Dell Thank you!