SlideShare a Scribd company logo
1 of 43
Advanced Essbase Java API Tips and Tricks Tim Tow, Oracle ACE Director Founder and President Applied OLAP, Inc
About the Speaker Oracle ACE Director ODTUG Board of Directors Blogger Essbase Developer for 15 years Former CPA Founder and President, Applied OLAP, Inc Visionary and Development Lead, Dodeca Pilot, Rock Climber, Bike Commuter, Coffee Drinker Usually a nice guy…
Agenda Getting Started Writing Code Connections Member Information Grid API Building Software
Getting Started: Use a good IDE Can make a huge difference in productivity Free or Commercial? I use IntelliJ
Getting Started: Use a good IDE
Getting Started: Libraries There are many libraries/jars you can use What do you want your code to do? Client vs Web Utility functions – log4j, xml parsers Required Essbase jar ess_japi.jar Equivalent to the Essbase Runtime Client Optional Essbase jars – embedded mode ess_es_server.jar, cpld.jar, ojdl.jar Jars change with Essbase versions
Getting Started: Libraries Organization Client applications ib directory Web applications EB-INFib Jars distributed with your application ib Other jars used for coding J2ee.jar Obfuscation jars Etc.
Getting Started: Understand the Problem  Huge disconnect Finance / IT speak different languages If necessary, get an interpreter Comprenez-vous? Don’t become a PICNIC Problem In Chair Not In Computer
Writing Code: Understand the Task Sequence Programs are extremely detailed, step-by-step instructions to the computer to automate one or more tasks How do you determine the steps? Observe the operation performed manually
Writing Code: Understand the Task Sequence
Writing Code: Understand the Task Sequence Programs are extremely detailed, step-by-step instructions to the computer to automate one or more tasks How do you determine the steps? Observe the operation performed manually Use documentation
Writing Code: Understand the Task Sequence
Writing Code: Understand the Task Sequence Programs are extremely detailed, step-by-step instructions to the computer to automate one or more tasks How do you determine the steps? Observe the operation performed manually Use documentation Use the Java API samples C:racleiddlewarePMSystem11R1ommonssbaseJavaAPI1.1.2.0amplesapi
Writing Code: Understand the Task Sequence
Writing Code: Understand the Object Model Essbase object model  Typically the objects you already know With a funny Java naming convention Some exceptions to this rule Ex. Cubeview Essbase object model Class Hierarchy Natural for Essbase users – ex. server / app / database Interface driven Provides consistency for the API consumer Provides implementational freedom for the provider Ex. EssOlapServer implements IEssOlapServer
Writing Code: Understand the Object Model IEssOlapServer IEssApplication IEssCube IEssDimension IEssCubeOutline IEssMember
Writing Code: Understand the Object Model IEssGridView (underlying multidimensional array of Essbase data and metadata) IEssCubeView (parent of Essbase operations) IEssMemberCell IEssDataCell
Connections: Embedded mode vs 3-tier mode? When should you use embedded mode? If you know the exact server/app/cube When you don’t want to have APS in your stack You want the absolute fastest performance When should you use 3-tier mode? Users don’t have TCP/IP access to the server When you need to use load balancing / clustering Clusters are defined in APS Load balancing / fail-safe rollover is not implemented in the JAPI Smart View implements clustering in it’s provider
Connections: Configuration essbase.properties Limit rows/columns in the retrieve Default used to be 5000 rows/256 columns May be smaller in 11.1.2.1 Embedded mode In CLASSPATH 3-tier mode Configured in EAS
Connections: Cube or Cubeview? IEssbase.IEssDomain.IEssCubeViewvsIEssbase.IEssOlapServer.EssOlapApplication.IEssCube Depends on what you want to do IEssCubeView can access the parent IEssCube Not a complete object My recommendation IEssbase.IEssOlapServer.EssOlapApplication.IEssCube Full access to the IEssCube object
Connections: Clean up after yourself Use try/catch/finally blocks Handle or log Exceptions Release resources Close connections Logoff the server Pay special attention to MemberSelection objects Failing to close these will cause disconnect efforts to fail silently 11.1.2.1 – new (and proper) limits on concurrent requests within the same JAPI session
Member Information: General Many ways to get member information Unnecessarily complex Probably due to the timing of functionality additions in the early years C/VB Outline API introduced after the main APIs Did not want to break compatibility with earlier versions Now we all pay Developers must think too much about *how* they approach obtaining member information due to Availability Dependability Performance
Member Information: General Two general ways to get member info IEssMember object Obtained a number of ways IEssCube.getMember() IEssCube.findMember() IEssCubeOutline.findMember() IEssCubeOutline.findMembers() IEssCubeOutline.executeQuery() IEssMemberSelection.executeQuery() Member Strings IEssCube.queryDatabaseMembers()
Member Information: IEssMember Pros Object-based approach Convenient getter/setters for properties Cursoring available Cons May be a partial object w/no way for the developer to know which properties are available Use Cases Building / editing / documenting outlines Certain reporting situations
Member Information: IEssMember
Member Information:Member Strings Pros Extremely Fast Cons You must write the query to return, then parse the string returned, to get the properties you need Not all properties are available Documentation is poor Not all available properties are documented Look at docs for EssQueryDatabaseMembers Use Cases Reporting / user member selectors
Member Information: Member Strings
Demo!
Grid API: Fast Data Access Same API used by the classic Excel add-in WWEAD? Same query by example requirements Single retrieve per IEssGridView All dimensions must be represented At least one dimension in row orientation No extraneous text that is also a member name Member out-of-place errors Numeric member names prefixed with a quote Unless you set the cell type
Grid API: Fast Data Access Direct access means more flexibility Direct access multiple arrays Cell values Cells types Cell attributes Formatted values SmartList names Unknown members Less limitations than the classic add-in ,[object Object],>256 columns
Grid API: Arrays of Information! Cell values What you ‘see’ in Excel Cell types Member / data / text (plus member w/key) Attributes Information used by Excel ‘Styles’ Ex. – Actual in Sample/Basic = 536870928 or 100000000000000000000000010000 in binary I believe this bit indicates the member is configured to Store Data
Grid API: Arrays of Information! Formatted values Must set IEssCubeView.isFormattedValues() Works for  Numbers with formatting specified for the member SmartLists (a/k/a text measures) Date measures SmartList names SmartList associated with a member cell
Demo!
Building Software: Use Source Code Control Provides centralized source code management Facilitates coordination within dev teams Ensures code changes are integrated properly Tracks code history Provides tools for version comparison
Building Software: Use Source Code Control
Building Software: Automate Your Build Scripts Reliable software is about consistency Build scripts bring consistency Builds use the exact same steps every time Common Build Tools Use XML defined steps Do much more than just compile source code Pull from source code control Compile Test  Package for distribution
Building Software: Automate Your Build Scripts Most popular build tools We use Ant Dodeca / OpenOffice Add-in / OlapUnderground Different development / production scripts Target multiple versions of Essbase
Building Software: Automate Your Build Scripts
Building Software: Automate Your Build Scripts
Building Software: Use Robust Logging Helps you find issues Dev Production Log4j Configurable logging Level TRACE / DEBUG / INFO / WARN / ERROR / FATAL Output Console / File / Rolling File Pattern
Common uses Error logging Performance logging Building Software: Use Robust Logging
Summary Essbase Java API is: Powerful Flexible At times, a bit complex
Advanced Essbase Java API Tips and Tricks Tim Tow, Oracle ACE Director Founder and President Applied OLAP, Inc

More Related Content

What's hot

A Study on Finance and Accounts Department of Shipping Corporation of India Ltd
A Study on Finance and Accounts Department of Shipping Corporation of India LtdA Study on Finance and Accounts Department of Shipping Corporation of India Ltd
A Study on Finance and Accounts Department of Shipping Corporation of India LtdJeevan Asknani
 
Entrepreneurship Development(ED)- Financial Institutions Supporting Entrepren...
Entrepreneurship Development(ED)- Financial Institutions Supporting Entrepren...Entrepreneurship Development(ED)- Financial Institutions Supporting Entrepren...
Entrepreneurship Development(ED)- Financial Institutions Supporting Entrepren...Chandra Shekar Immani
 
MSME Financing in India
MSME Financing in IndiaMSME Financing in India
MSME Financing in IndiaDevansh Doshi
 
BBA Project Report
BBA Project ReportBBA Project Report
BBA Project ReportPankaj Kumar
 
Venture capital and angel financing
Venture capital and angel financingVenture capital and angel financing
Venture capital and angel financingAyush0734
 
Summer training project report...........1234 saurabh
Summer training project report...........1234 saurabhSummer training project report...........1234 saurabh
Summer training project report...........1234 saurabhSaurabh Singh
 
Entrepreneurship course outline
Entrepreneurship course outlineEntrepreneurship course outline
Entrepreneurship course outlineMilion Mekonnen
 
Business plan writing power point
Business plan writing power pointBusiness plan writing power point
Business plan writing power pointRichard Lindfield
 
MSME Financing - Key Issues and Solutions
MSME Financing - Key Issues and Solutions MSME Financing - Key Issues and Solutions
MSME Financing - Key Issues and Solutions Resurgent India
 
MS-09 assignment Managerial Economics
MS-09 assignment Managerial EconomicsMS-09 assignment Managerial Economics
MS-09 assignment Managerial EconomicsPallavi Dhotra
 
STUDY OF DIVIDEND PAYOUT PATTERN OF AUTOMOBILE COMPANIES
STUDY OF DIVIDEND PAYOUT PATTERN OF AUTOMOBILE COMPANIESSTUDY OF DIVIDEND PAYOUT PATTERN OF AUTOMOBILE COMPANIES
STUDY OF DIVIDEND PAYOUT PATTERN OF AUTOMOBILE COMPANIESBenu Singhal
 
HRIS assignment on Application of MS Office software (Word, PowerPoint, Excel...
HRIS assignment on Application of MS Office software (Word, PowerPoint, Excel...HRIS assignment on Application of MS Office software (Word, PowerPoint, Excel...
HRIS assignment on Application of MS Office software (Word, PowerPoint, Excel...Farhan Shehab
 
International entrepreneurship- an indian case study
International entrepreneurship- an indian case studyInternational entrepreneurship- an indian case study
International entrepreneurship- an indian case studyBhaskar kumar
 
Technical analysis of equity shares project report
Technical analysis of equity shares project reportTechnical analysis of equity shares project report
Technical analysis of equity shares project reportBabasab Patil
 
Equity Research Methodology
Equity Research MethodologyEquity Research Methodology
Equity Research MethodologyVeristrat Inc
 
Equity Research - Fundamental analysis
Equity Research - Fundamental analysisEquity Research - Fundamental analysis
Equity Research - Fundamental analysisPratik Keluskar
 
A PROJECT ON CAPITAL MARKET
 A PROJECT ON CAPITAL MARKET  A PROJECT ON CAPITAL MARKET
A PROJECT ON CAPITAL MARKET Alina Ali
 
CSR Initiative for Punjab national bank
CSR Initiative for Punjab national bankCSR Initiative for Punjab national bank
CSR Initiative for Punjab national bankUttaraChattopadhyay
 

What's hot (20)

A Study on Finance and Accounts Department of Shipping Corporation of India Ltd
A Study on Finance and Accounts Department of Shipping Corporation of India LtdA Study on Finance and Accounts Department of Shipping Corporation of India Ltd
A Study on Finance and Accounts Department of Shipping Corporation of India Ltd
 
Entrepreneurship Development(ED)- Financial Institutions Supporting Entrepren...
Entrepreneurship Development(ED)- Financial Institutions Supporting Entrepren...Entrepreneurship Development(ED)- Financial Institutions Supporting Entrepren...
Entrepreneurship Development(ED)- Financial Institutions Supporting Entrepren...
 
MSME Financing in India
MSME Financing in IndiaMSME Financing in India
MSME Financing in India
 
Deepak MBA Project
Deepak MBA ProjectDeepak MBA Project
Deepak MBA Project
 
BBA Project Report
BBA Project ReportBBA Project Report
BBA Project Report
 
Venture capital and angel financing
Venture capital and angel financingVenture capital and angel financing
Venture capital and angel financing
 
Management consultancy primer
Management consultancy primerManagement consultancy primer
Management consultancy primer
 
Summer training project report...........1234 saurabh
Summer training project report...........1234 saurabhSummer training project report...........1234 saurabh
Summer training project report...........1234 saurabh
 
Entrepreneurship course outline
Entrepreneurship course outlineEntrepreneurship course outline
Entrepreneurship course outline
 
Business plan writing power point
Business plan writing power pointBusiness plan writing power point
Business plan writing power point
 
MSME Financing - Key Issues and Solutions
MSME Financing - Key Issues and Solutions MSME Financing - Key Issues and Solutions
MSME Financing - Key Issues and Solutions
 
MS-09 assignment Managerial Economics
MS-09 assignment Managerial EconomicsMS-09 assignment Managerial Economics
MS-09 assignment Managerial Economics
 
STUDY OF DIVIDEND PAYOUT PATTERN OF AUTOMOBILE COMPANIES
STUDY OF DIVIDEND PAYOUT PATTERN OF AUTOMOBILE COMPANIESSTUDY OF DIVIDEND PAYOUT PATTERN OF AUTOMOBILE COMPANIES
STUDY OF DIVIDEND PAYOUT PATTERN OF AUTOMOBILE COMPANIES
 
HRIS assignment on Application of MS Office software (Word, PowerPoint, Excel...
HRIS assignment on Application of MS Office software (Word, PowerPoint, Excel...HRIS assignment on Application of MS Office software (Word, PowerPoint, Excel...
HRIS assignment on Application of MS Office software (Word, PowerPoint, Excel...
 
International entrepreneurship- an indian case study
International entrepreneurship- an indian case studyInternational entrepreneurship- an indian case study
International entrepreneurship- an indian case study
 
Technical analysis of equity shares project report
Technical analysis of equity shares project reportTechnical analysis of equity shares project report
Technical analysis of equity shares project report
 
Equity Research Methodology
Equity Research MethodologyEquity Research Methodology
Equity Research Methodology
 
Equity Research - Fundamental analysis
Equity Research - Fundamental analysisEquity Research - Fundamental analysis
Equity Research - Fundamental analysis
 
A PROJECT ON CAPITAL MARKET
 A PROJECT ON CAPITAL MARKET  A PROJECT ON CAPITAL MARKET
A PROJECT ON CAPITAL MARKET
 
CSR Initiative for Punjab national bank
CSR Initiative for Punjab national bankCSR Initiative for Punjab national bank
CSR Initiative for Punjab national bank
 

Similar to Abstract #236765 advanced essbase java api tips and tricks

EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkBill Lyons
 
Spring Framework
Spring FrameworkSpring Framework
Spring Frameworknomykk
 
Silicon Valley Code Camp 2011: Play! as you REST
Silicon Valley Code Camp 2011: Play! as you RESTSilicon Valley Code Camp 2011: Play! as you REST
Silicon Valley Code Camp 2011: Play! as you RESTManish Pandit
 
Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010Lars Vogel
 
Java Full Stack Curriculum
Java Full Stack Curriculum Java Full Stack Curriculum
Java Full Stack Curriculum NxtWave
 
Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4 Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4 Lars Vogel
 
Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)David McCarter
 
Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)David McCarter
 
Developing a Struts & Tiles application using WebSphere Studio
Developing a Struts & Tiles application using WebSphere StudioDeveloping a Struts & Tiles application using WebSphere Studio
Developing a Struts & Tiles application using WebSphere Studioelliando dias
 
React & Redux JS
React & Redux JS React & Redux JS
React & Redux JS Hamed Farag
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applicationshchen1
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2divzi1913
 
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE abile technologies
 

Similar to Abstract #236765 advanced essbase java api tips and tricks (20)

EJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLinkEJB 3.0 Java Persistence with Oracle TopLink
EJB 3.0 Java Persistence with Oracle TopLink
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
 
מתפ
מתפמתפ
מתפ
 
Ejb intro
Ejb introEjb intro
Ejb intro
 
Silicon Valley Code Camp 2011: Play! as you REST
Silicon Valley Code Camp 2011: Play! as you RESTSilicon Valley Code Camp 2011: Play! as you REST
Silicon Valley Code Camp 2011: Play! as you REST
 
Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010Eclipse e4 on Java Forum Stuttgart 2010
Eclipse e4 on Java Forum Stuttgart 2010
 
Java Full Stack Curriculum
Java Full Stack Curriculum Java Full Stack Curriculum
Java Full Stack Curriculum
 
Ejb intro
Ejb introEjb intro
Ejb intro
 
Jsp Comparison
 Jsp Comparison Jsp Comparison
Jsp Comparison
 
Intro to Application Express
Intro to Application ExpressIntro to Application Express
Intro to Application Express
 
Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4 Eclipse 40 and Eclipse e4
Eclipse 40 and Eclipse e4
 
Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)
 
Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)Building nTier Applications with Entity Framework Services (Part 1)
Building nTier Applications with Entity Framework Services (Part 1)
 
Virtual Classroom
Virtual ClassroomVirtual Classroom
Virtual Classroom
 
P20CSP105-AdvJavaProg.pptx
P20CSP105-AdvJavaProg.pptxP20CSP105-AdvJavaProg.pptx
P20CSP105-AdvJavaProg.pptx
 
Developing a Struts & Tiles application using WebSphere Studio
Developing a Struts & Tiles application using WebSphere StudioDeveloping a Struts & Tiles application using WebSphere Studio
Developing a Struts & Tiles application using WebSphere Studio
 
React & Redux JS
React & Redux JS React & Redux JS
React & Redux JS
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
Struts 2-overview2
Struts 2-overview2Struts 2-overview2
Struts 2-overview2
 
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
JAVA J2EE Training in Coimbatore - Fundamentals of Java J2EE
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

Abstract #236765 advanced essbase java api tips and tricks

  • 1. Advanced Essbase Java API Tips and Tricks Tim Tow, Oracle ACE Director Founder and President Applied OLAP, Inc
  • 2. About the Speaker Oracle ACE Director ODTUG Board of Directors Blogger Essbase Developer for 15 years Former CPA Founder and President, Applied OLAP, Inc Visionary and Development Lead, Dodeca Pilot, Rock Climber, Bike Commuter, Coffee Drinker Usually a nice guy…
  • 3. Agenda Getting Started Writing Code Connections Member Information Grid API Building Software
  • 4. Getting Started: Use a good IDE Can make a huge difference in productivity Free or Commercial? I use IntelliJ
  • 5. Getting Started: Use a good IDE
  • 6. Getting Started: Libraries There are many libraries/jars you can use What do you want your code to do? Client vs Web Utility functions – log4j, xml parsers Required Essbase jar ess_japi.jar Equivalent to the Essbase Runtime Client Optional Essbase jars – embedded mode ess_es_server.jar, cpld.jar, ojdl.jar Jars change with Essbase versions
  • 7. Getting Started: Libraries Organization Client applications ib directory Web applications EB-INFib Jars distributed with your application ib Other jars used for coding J2ee.jar Obfuscation jars Etc.
  • 8. Getting Started: Understand the Problem Huge disconnect Finance / IT speak different languages If necessary, get an interpreter Comprenez-vous? Don’t become a PICNIC Problem In Chair Not In Computer
  • 9. Writing Code: Understand the Task Sequence Programs are extremely detailed, step-by-step instructions to the computer to automate one or more tasks How do you determine the steps? Observe the operation performed manually
  • 10. Writing Code: Understand the Task Sequence
  • 11. Writing Code: Understand the Task Sequence Programs are extremely detailed, step-by-step instructions to the computer to automate one or more tasks How do you determine the steps? Observe the operation performed manually Use documentation
  • 12. Writing Code: Understand the Task Sequence
  • 13. Writing Code: Understand the Task Sequence Programs are extremely detailed, step-by-step instructions to the computer to automate one or more tasks How do you determine the steps? Observe the operation performed manually Use documentation Use the Java API samples C:racleiddlewarePMSystem11R1ommonssbaseJavaAPI1.1.2.0amplesapi
  • 14. Writing Code: Understand the Task Sequence
  • 15. Writing Code: Understand the Object Model Essbase object model Typically the objects you already know With a funny Java naming convention Some exceptions to this rule Ex. Cubeview Essbase object model Class Hierarchy Natural for Essbase users – ex. server / app / database Interface driven Provides consistency for the API consumer Provides implementational freedom for the provider Ex. EssOlapServer implements IEssOlapServer
  • 16. Writing Code: Understand the Object Model IEssOlapServer IEssApplication IEssCube IEssDimension IEssCubeOutline IEssMember
  • 17. Writing Code: Understand the Object Model IEssGridView (underlying multidimensional array of Essbase data and metadata) IEssCubeView (parent of Essbase operations) IEssMemberCell IEssDataCell
  • 18. Connections: Embedded mode vs 3-tier mode? When should you use embedded mode? If you know the exact server/app/cube When you don’t want to have APS in your stack You want the absolute fastest performance When should you use 3-tier mode? Users don’t have TCP/IP access to the server When you need to use load balancing / clustering Clusters are defined in APS Load balancing / fail-safe rollover is not implemented in the JAPI Smart View implements clustering in it’s provider
  • 19. Connections: Configuration essbase.properties Limit rows/columns in the retrieve Default used to be 5000 rows/256 columns May be smaller in 11.1.2.1 Embedded mode In CLASSPATH 3-tier mode Configured in EAS
  • 20. Connections: Cube or Cubeview? IEssbase.IEssDomain.IEssCubeViewvsIEssbase.IEssOlapServer.EssOlapApplication.IEssCube Depends on what you want to do IEssCubeView can access the parent IEssCube Not a complete object My recommendation IEssbase.IEssOlapServer.EssOlapApplication.IEssCube Full access to the IEssCube object
  • 21. Connections: Clean up after yourself Use try/catch/finally blocks Handle or log Exceptions Release resources Close connections Logoff the server Pay special attention to MemberSelection objects Failing to close these will cause disconnect efforts to fail silently 11.1.2.1 – new (and proper) limits on concurrent requests within the same JAPI session
  • 22. Member Information: General Many ways to get member information Unnecessarily complex Probably due to the timing of functionality additions in the early years C/VB Outline API introduced after the main APIs Did not want to break compatibility with earlier versions Now we all pay Developers must think too much about *how* they approach obtaining member information due to Availability Dependability Performance
  • 23. Member Information: General Two general ways to get member info IEssMember object Obtained a number of ways IEssCube.getMember() IEssCube.findMember() IEssCubeOutline.findMember() IEssCubeOutline.findMembers() IEssCubeOutline.executeQuery() IEssMemberSelection.executeQuery() Member Strings IEssCube.queryDatabaseMembers()
  • 24. Member Information: IEssMember Pros Object-based approach Convenient getter/setters for properties Cursoring available Cons May be a partial object w/no way for the developer to know which properties are available Use Cases Building / editing / documenting outlines Certain reporting situations
  • 26. Member Information:Member Strings Pros Extremely Fast Cons You must write the query to return, then parse the string returned, to get the properties you need Not all properties are available Documentation is poor Not all available properties are documented Look at docs for EssQueryDatabaseMembers Use Cases Reporting / user member selectors
  • 28. Demo!
  • 29. Grid API: Fast Data Access Same API used by the classic Excel add-in WWEAD? Same query by example requirements Single retrieve per IEssGridView All dimensions must be represented At least one dimension in row orientation No extraneous text that is also a member name Member out-of-place errors Numeric member names prefixed with a quote Unless you set the cell type
  • 30.
  • 31. Grid API: Arrays of Information! Cell values What you ‘see’ in Excel Cell types Member / data / text (plus member w/key) Attributes Information used by Excel ‘Styles’ Ex. – Actual in Sample/Basic = 536870928 or 100000000000000000000000010000 in binary I believe this bit indicates the member is configured to Store Data
  • 32. Grid API: Arrays of Information! Formatted values Must set IEssCubeView.isFormattedValues() Works for Numbers with formatting specified for the member SmartLists (a/k/a text measures) Date measures SmartList names SmartList associated with a member cell
  • 33. Demo!
  • 34. Building Software: Use Source Code Control Provides centralized source code management Facilitates coordination within dev teams Ensures code changes are integrated properly Tracks code history Provides tools for version comparison
  • 35. Building Software: Use Source Code Control
  • 36. Building Software: Automate Your Build Scripts Reliable software is about consistency Build scripts bring consistency Builds use the exact same steps every time Common Build Tools Use XML defined steps Do much more than just compile source code Pull from source code control Compile Test Package for distribution
  • 37. Building Software: Automate Your Build Scripts Most popular build tools We use Ant Dodeca / OpenOffice Add-in / OlapUnderground Different development / production scripts Target multiple versions of Essbase
  • 38. Building Software: Automate Your Build Scripts
  • 39. Building Software: Automate Your Build Scripts
  • 40. Building Software: Use Robust Logging Helps you find issues Dev Production Log4j Configurable logging Level TRACE / DEBUG / INFO / WARN / ERROR / FATAL Output Console / File / Rolling File Pattern
  • 41. Common uses Error logging Performance logging Building Software: Use Robust Logging
  • 42. Summary Essbase Java API is: Powerful Flexible At times, a bit complex
  • 43. Advanced Essbase Java API Tips and Tricks Tim Tow, Oracle ACE Director Founder and President Applied OLAP, Inc

Editor's Notes

  1. This is your opening slide.
  2. Use this template for all your content slides. There are also other layout slides you can feel free to use.
  3. This is your opening slide.