SlideShare a Scribd company logo
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

Hyperion essbase basics
Hyperion essbase basicsHyperion essbase basics
Hyperion essbase basics
Amit Sharma
 
Key Considerations for a Successful Hyperion Planning Implementation
Key Considerations for a Successful Hyperion Planning ImplementationKey Considerations for a Successful Hyperion Planning Implementation
Key Considerations for a Successful Hyperion Planning Implementation
Alithya
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
hamaken
 
Oracle IT Financial Management
Oracle IT Financial ManagementOracle IT Financial Management
Oracle IT Financial Management
Joseph Alaimo Jr
 
Oracle PBCS Calculating Depreciation
Oracle PBCS Calculating DepreciationOracle PBCS Calculating Depreciation
Oracle PBCS Calculating Depreciation
Rati Sharma
 
Getting the Most out of EPMA: HFM Managing Metadata with EPMA
Getting the Most out of EPMA: HFM Managing Metadata with EPMAGetting the Most out of EPMA: HFM Managing Metadata with EPMA
Getting the Most out of EPMA: HFM Managing Metadata with EPMA
finitsolutions
 
Oracle Hyperion overview
Oracle Hyperion overviewOracle Hyperion overview
Oracle Hyperion overview
Click4learning
 
Read 1-hyperion planning presentation
Read 1-hyperion planning presentationRead 1-hyperion planning presentation
Read 1-hyperion planning presentation
Amit Sharma
 
Kettle – Etl Tool
Kettle – Etl ToolKettle – Etl Tool
Kettle – Etl Tool
Dr Anjan Krishnamurthy
 
FDMEE Taking Source Filters to the Next Level
FDMEE Taking Source Filters to the Next LevelFDMEE Taking Source Filters to the Next Level
FDMEE Taking Source Filters to the Next Level
Francisco Amores
 
Essbase aso a quick reference guide part i
Essbase aso a quick reference guide part iEssbase aso a quick reference guide part i
Essbase aso a quick reference guide part i
Amit Sharma
 
Planning learn step by step
Planning learn step by stepPlanning learn step by step
Planning learn step by step
ksrajakumar
 
Sydney hyperion financial reporting top 10 tips and tricks 09-20-11
Sydney   hyperion financial reporting top 10 tips and tricks 09-20-11Sydney   hyperion financial reporting top 10 tips and tricks 09-20-11
Sydney hyperion financial reporting top 10 tips and tricks 09-20-11
Venkat Ramanareddy
 
Supplemental Data Manager - What is it? What are some use cases? How do I get...
Supplemental Data Manager - What is it? What are some use cases? How do I get...Supplemental Data Manager - What is it? What are some use cases? How do I get...
Supplemental Data Manager - What is it? What are some use cases? How do I get...
finitsolutions
 
Spring Boot—Production Boost
Spring Boot—Production BoostSpring Boot—Production Boost
Spring Boot—Production Boost
VMware Tanzu
 
Embulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loaderEmbulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loader
Sadayuki Furuhashi
 
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
BrainPad Inc.
 
Hyperion essbase overview
Hyperion essbase overviewHyperion essbase overview
Hyperion essbase overview
Vishal Mahajan
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon Web Services Korea
 
Beginner's guide create a custom 'copy' planning function type
Beginner's guide  create a custom 'copy' planning function typeBeginner's guide  create a custom 'copy' planning function type
Beginner's guide create a custom 'copy' planning function type
Naveen Kumar Kotha
 

What's hot (20)

Hyperion essbase basics
Hyperion essbase basicsHyperion essbase basics
Hyperion essbase basics
 
Key Considerations for a Successful Hyperion Planning Implementation
Key Considerations for a Successful Hyperion Planning ImplementationKey Considerations for a Successful Hyperion Planning Implementation
Key Considerations for a Successful Hyperion Planning Implementation
 
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)ちょっと理解に自信がないなという皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
ちょっと理解に自信がないな という皆さまに贈るHadoop/Sparkのキホン (IBM Datapalooza Tokyo 2016講演資料)
 
Oracle IT Financial Management
Oracle IT Financial ManagementOracle IT Financial Management
Oracle IT Financial Management
 
Oracle PBCS Calculating Depreciation
Oracle PBCS Calculating DepreciationOracle PBCS Calculating Depreciation
Oracle PBCS Calculating Depreciation
 
Getting the Most out of EPMA: HFM Managing Metadata with EPMA
Getting the Most out of EPMA: HFM Managing Metadata with EPMAGetting the Most out of EPMA: HFM Managing Metadata with EPMA
Getting the Most out of EPMA: HFM Managing Metadata with EPMA
 
Oracle Hyperion overview
Oracle Hyperion overviewOracle Hyperion overview
Oracle Hyperion overview
 
Read 1-hyperion planning presentation
Read 1-hyperion planning presentationRead 1-hyperion planning presentation
Read 1-hyperion planning presentation
 
Kettle – Etl Tool
Kettle – Etl ToolKettle – Etl Tool
Kettle – Etl Tool
 
FDMEE Taking Source Filters to the Next Level
FDMEE Taking Source Filters to the Next LevelFDMEE Taking Source Filters to the Next Level
FDMEE Taking Source Filters to the Next Level
 
Essbase aso a quick reference guide part i
Essbase aso a quick reference guide part iEssbase aso a quick reference guide part i
Essbase aso a quick reference guide part i
 
Planning learn step by step
Planning learn step by stepPlanning learn step by step
Planning learn step by step
 
Sydney hyperion financial reporting top 10 tips and tricks 09-20-11
Sydney   hyperion financial reporting top 10 tips and tricks 09-20-11Sydney   hyperion financial reporting top 10 tips and tricks 09-20-11
Sydney hyperion financial reporting top 10 tips and tricks 09-20-11
 
Supplemental Data Manager - What is it? What are some use cases? How do I get...
Supplemental Data Manager - What is it? What are some use cases? How do I get...Supplemental Data Manager - What is it? What are some use cases? How do I get...
Supplemental Data Manager - What is it? What are some use cases? How do I get...
 
Spring Boot—Production Boost
Spring Boot—Production BoostSpring Boot—Production Boost
Spring Boot—Production Boost
 
Embulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loaderEmbulk, an open-source plugin-based parallel bulk data loader
Embulk, an open-source plugin-based parallel bulk data loader
 
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
2018 builderscon airflowを用いて、 複雑大規模なジョブフロー管理 に立ち向かう
 
Hyperion essbase overview
Hyperion essbase overviewHyperion essbase overview
Hyperion essbase overview
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
 
Beginner's guide create a custom 'copy' planning function type
Beginner's guide  create a custom 'copy' planning function typeBeginner's guide  create a custom 'copy' planning function type
Beginner's guide create a custom 'copy' planning function type
 

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 TopLink
Bill Lyons
 
Spring Framework
Spring FrameworkSpring Framework
Spring Framework
nomykk
 
מתפ
מתפמתפ
מתפ
Liran Zelkha
 
ASP.NET 8 Developer Roadmap By ScholarHat PDF
ASP.NET 8 Developer Roadmap By ScholarHat PDFASP.NET 8 Developer Roadmap By ScholarHat PDF
ASP.NET 8 Developer Roadmap By ScholarHat PDF
Scholarhat
 
Ejb intro
Ejb introEjb intro
Ejb intro
MANOJ KUMAR
 
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
Manish 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 2010
Lars Vogel
 
Java Full Stack Curriculum
Java Full Stack Curriculum Java Full Stack Curriculum
Java Full Stack Curriculum
NxtWave
 
Ejb intro
Ejb introEjb intro
Ejb intro
vantinhkhuc
 
Jsp Comparison
 Jsp Comparison Jsp Comparison
Jsp Comparison
Venky Sadasivam
 
Intro to Application Express
Intro to Application ExpressIntro to Application Express
Intro to Application Express
José Angel Ibarra Espinosa
 
Dot NET Solution Architect Roadmap By Scholarhat PDF
Dot NET Solution Architect Roadmap By Scholarhat PDFDot NET Solution Architect Roadmap By Scholarhat PDF
Dot NET Solution Architect Roadmap By Scholarhat PDF
Scholarhat
 
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
 
Virtual Classroom
Virtual ClassroomVirtual Classroom
Virtual Classroom
chintanshah007
 
P20CSP105-AdvJavaProg.pptx
P20CSP105-AdvJavaProg.pptxP20CSP105-AdvJavaProg.pptx
P20CSP105-AdvJavaProg.pptx
DrTCVijayaraghavan
 
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
elliando 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 Applications
hchen1
 

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
 
מתפ
מתפמתפ
מתפ
 
ASP.NET 8 Developer Roadmap By ScholarHat PDF
ASP.NET 8 Developer Roadmap By ScholarHat PDFASP.NET 8 Developer Roadmap By ScholarHat PDF
ASP.NET 8 Developer Roadmap By ScholarHat PDF
 
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
 
Dot NET Solution Architect Roadmap By Scholarhat PDF
Dot NET Solution Architect Roadmap By Scholarhat PDFDot NET Solution Architect Roadmap By Scholarhat PDF
Dot NET Solution Architect Roadmap By Scholarhat PDF
 
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
 

Recently uploaded

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
IndexBug
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
Pixlogix Infotech
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
Claudio Di Ciccio
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 

Recently uploaded (20)

Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceAI 101: An Introduction to the Basics and Impact of Artificial Intelligence
AI 101: An Introduction to the Basics and Impact of Artificial Intelligence
 
Best 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERPBest 20 SEO Techniques To Improve Website Visibility In SERP
Best 20 SEO Techniques To Improve Website Visibility In SERP
 
“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”“I’m still / I’m still / Chaining from the Block”
“I’m still / I’m still / Chaining from the Block”
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 

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.