SlideShare a Scribd company logo
1 of 64
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Add More Visualization
Capabilities To OBIEE
2
KEVIN MCGINLEY
medium.com/kevin_mcginley @kevin_mcginley linkedin.com/in/kevinmcginley
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
About Red Pill Analytics
Capacity Analytics
Agile Cloud Development for Oracle BI & Analytics
!
Checkmate
DevOps for Oracle BI
!
Single Doses
Training + Strategy + Solutioning + Infrastructure + Support
3
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Real Time BI with Kevin & Stewart
•19 episodes over the last 2
years
•Featured guests from the
Oracle BI & EPM industry
•Published on iTunes and
YouTube
•Join us at the Thursday
Deep-Dive session from
9-11am for a LIVE show that
will be simultaneously
broadcast online!
4
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Contents
•Why Add New Visualizations To OBIEE?
•Considerations For Adding New Visualizations
•Call Deployed Application Using Narrative Views
•Flot Walkthrough
•D3 Walkthrough
6
Why add new visualizations to
OBIEE?
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Existing OBIEE Visualizations
•Table
•Pivot Table
•Bar Chart
•Line Chart
•Area Chart
•Pie Chart
•Line-Bar Chart
•Pareto Chart
•Scatter Chart
•Bubble Chart
•Radar Chart
•Waterfall Chart
•Gauge Chart
•Funnel Chart
•Map
•Performance
Tile
•Ticker
•Narrative
•Trellis
• Bar
• Line
• Area
• Line-Bar
• Pie
• Scatter
• Bubble
• Spark
8
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Why Add New Visualizations?
•Leverage additional
functionality over existing
OBIEE view types
•Visualize data in a way
OBIEE cannot and gain new
insights
•Also…generate excitement
and increase user adoption
9
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Add New Functionality
10
Chart legend
inside chart
Multiple Y-
axis scales
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Add New Functionality
11
Crossfilter Flot
Drag the handles
to filter all
objects on a
certain time of
day, delay,
distance, or date
range.
Highlight a range in the
summary line chart to
zoom the detail line chart.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Add New Visualizations
12
Timeline
Calendar (D3) Treemap (D3) Sunburst (ADF)
Bullet Chart (D3)
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Add New Visualizations
13
Motion Chart (Google) Motion Chart (D3)
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics 14
Considerations For Adding New
Visualizations
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Three Types Of Visualization Engines
•Call to a remote server (outside firewall)
•Call to software on another server (inside firewall)
•Call to an engine deployed locally on the BI server or
another application server (inside firewall)
16
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Remote Server (Outside Firewall)
17
WebLogic
OBIEE
Remote
Visualization
Engine
Firewall
Data to generate the
visualization is passed
through the firewall to
an API.
The visualization is
passed back as an
embedded web
object.
Database
DW
Data to satisfy the
logical SQL is passed
to OBIEE.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Internal Server
Internal Software Server (Inside Firewall)
18
WebLogic
OBIEE
Visualization
Engine
The visualization is
passed to OBIEE as a
data or web object.
OBIEE makes a call to a service,
API, or data structure.
Database
DW Data to generate the
visualization is passed
to the engine (may go
through BI Server).
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Deployed Application On OBIEE Server (Inside Firewall)
19
WebLogic
OBIEE
Deployed
Visualization
Engine
Data to generate the
visualization is
pushed into a
javascript array.
The visualization is
rendered in OBIEE
using javascript.
Database
DW
Data to satisfy the
logical SQL is passed
to OBIEE.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
How Well Do 3rd-Party Engines Integrate Into OBIEE?
•Some integrate into dashboards seamlessly using standard
OBIEE functionality, some are more of an iFrame approach
•Row-level data security may be challenging where the
data is processed externally from the OBIEE front-end
•OBIEE “application” functionality (print, export, navigate,
prompts, dashboard customizations, hover, interact) may
not work seamlessly depending on the engine
• New SampleApp includes java code to help improve some of this
•Some engines may have browser requirements that
conflict with OBIEE browser support or the standard
browser adopted by the user
20
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
• Typically well documented
and and usually well
supported
• Data security is a mild
concern
• Processing occurs on a
second server but network
latency exists
• Enhancements/upgrades
are managed
• Typically $$$
• Not always well
documented nor well
supported
• Data security is not a
concern
• Processing occurs on the
same server, which could
degrade overall server
• Enhancements/upgrades
are managed
• Free or $$$
Compare/Contrast
21
• Typically well
documented, though not
necessarily supported
• Data security is a
legitimate concern
• Processing occurs on
another server but over
the internet
• Risk of unexpected
changes or upgrades
• Free or $$$
Internal Server Local ServerRemote Server
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Some Examples
22
Internal Server Local ServerRemote Server
Call Deployed Applications Using
Narrative Views
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
How To Enable Visualization Engine (Local)
•Deploy files on the server
•Build your criteria
•Call the deployed files in a narrative view
24
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Server Setup And Files
•Download the files for the visualization engine
•Place files in a new or existing (analyticsRes) application
folder on the server
•If new, deploy folder in WebLogic Server as an
application
•Create or edit CSS files for consistent formatting
(optional)
25
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Deploy To WebLogic As An Application
26
Copy WEB-INF folder
from analyticsRes to…
…visualization
directory on the
server.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Deploy To WebLogic As An Application
27
Copy folder path on
server into install
application assistant.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Deploy To WebLogic As An Application
28
Install the folder as an
application.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Deploy To WebLogic As An Application
29
Target the deployment
to the entire cluster.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Deploy To WebLogic As An Application
30
Install the folder as an
application.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Deploy To WebLogic As An Application
31
Activate the changes.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Deploy To WebLogic As An Application
32
Start servicing all
requests for the
application.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Deploy To WebLogic As An Application
33
Files are now
accessible at
server:port/folder.
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Criteria Notes
•Dates
• Different visualization engines handle date/time data differently
• Don’t assume it works like the Oracle DB or OBIEE
•Data Formatting
• Remove value formatting like currency, commas, percentages,
etc.
• Again with date/time, you may need to remove the formatting
•Strings
• Be conscious of the use of spaces, commas, special characters in
your text values
34
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Narrative View
•Prefix
• One-time text that comes
before the narrative body
•Narrative
• Text that is repeated for every
record in the report (or based
on “Rows to display”)
• Can reference criteria columns
using “@#” syntax (eg, @1)
•Postfix
• One-time text that comes
after the narrative body
35
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Example Narrative View With D3 Code
36
Checkbox renders text
as web code.
Prefix: CSS, script,
data array
Narrative: push data
into data array
Postfix: D3 code to
render visualization
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Narrative Notes / Suggestions
•Despite the following walkthroughs, consider the
following:
•Define CSS and reference in deployed files to maintain
consistency
•Deploy as much javascript as possible to deployed files to
keep Narrative views simple and consistent
•Leverage examples on the internet to jump-start your
efforts, but…
•Large scale use of javascript-based visualizations should
involve knowledgable java programmers to avoid poor
performing objects on dashboards
37
Flot Walkthrough
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Create A Simple Flot Line Chart
39
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Working With Time In Flot
!
•Timestamp:
CAST(CAST("Time"."T00 Calendar Date" AS
VARCHAR(20)) as TIMESTAMP)
•Base Timestamp
CAST('01-Jan-1970' as TIMESTAMP)
•TS Diff
TIMESTAMPDIFF(SQL_TSI_SECOND, CAST('01-
Jan-1970' as TIMESTAMP),
CAST(CAST("Time"."T00 Calendar Date" AS
VARCHAR(20)) as TIMESTAMP))
•Flot TS
CAST(TIMESTAMPDIFF(SQL_TSI_SECOND,
CAST('01-Jan-1970' as TIMESTAMP),
CAST(CAST("Time"."T00 Calendar Date" AS
VARCHAR(20)) as TIMESTAMP)) as DOUBLE
PRECISION)*1000
40
Flot uses javascript time (milliseconds since 1/1/1970 12:00am)
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Prefix, Narrative, And Postfix Code
41
Reference deployed
Flot .js files and init
data array
Push data into the
array using Narrative
section looping
Basic Flot call with div
to render the chart
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Dynamic Time And Rows To Display
42
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Two Charts With Master-Detail Linking Using Drag-To-Zoom
43
New CSS file reference
and Flot selection.js
script
You can place your
chart options in a var
and reference
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Postfix Code Continued
44
Storing the overview
chart in a variable with
options inline
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Postfix Code Continued
45
Use a .bind to have
placeholder listen to
overview
Re-plot placeholder
based on the zoom
range
Don’t re-plot overview
when zoom range is
set
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Postfix Code End
46
A more complex div to
render the two charts
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Drag-To-Zoom In Action
47
D3 Walkthrough
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Let’s Start With Something Simple
49
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Prefix and Narrative Code
50
CSS for the
visualization (can be
referenced)
Reference D3 .js file
already deployed on
SampleApp
Same data array push
as Flot
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Postfix Code
51
D3 “scaling” to
translate data values
into pixels
D3 “select” to render
each bar one at a time
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Let’s Pivot The Chart
52
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Prefix And Narrative Code
53
Switching to SVG for
more flexibility in
rendering
Slightly different CSS
for rect and text
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Postfix Code Start
54
A different scale
structure pivots the
chart
D3 select sets SVG
attributes
A different way to
calculate each bar
width
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Postfix Code End
55
SVG transform and
translate to position
each bar
SVG rect call to render
each bar top-to-
bottom
SVG text call to render
labels in bars at
specific position
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Let’s Add Axis Labels!
56
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Prefix And Narrative Code
57
Additional CSS to
format the x and y-
axis
An array with multiple
values and labels
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Postfix Code Begin
58
Margins to leave space
for the x and y-axis
around chart
D3 ordinal scaling
handles Brand labels
SVG axis calls define
each axis
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Postfix Code End
59
Basic D3 select into a
chart variable
Render x-axis
Render y-axis
Render bars aligned to
Brand value order in x-
axis
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
The Bullet Chart (Eat Your Heart Out, Stephen Few)
60
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Prefix And Narrative Code
61
Additional CSS for the
bullet chart
Call to additional
bullet chart javascript
functions
A more complex data
array
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Postfix Code Begin
62
A call to a function in
bullet.js to handle the
complex render
www.redpillanalytics.com info@redpillanalytics.com @RedPillA © 2014 RED PILL Analytics
Postfix Code End
63
Additional code to
render the metric title
and subtitle
Questions?

More Related Content

Viewers also liked

State of the Cloud 2017
State of the Cloud 2017State of the Cloud 2017
State of the Cloud 2017
Bessemer Venture Partners
 

Viewers also liked (14)

"Funny Looking": 13 Physical Clues To Your Genetic Inheritance
"Funny Looking": 13 Physical Clues To Your Genetic Inheritance"Funny Looking": 13 Physical Clues To Your Genetic Inheritance
"Funny Looking": 13 Physical Clues To Your Genetic Inheritance
 
The Personality of a Scientist
The Personality of a Scientist The Personality of a Scientist
The Personality of a Scientist
 
Speech communication
Speech communicationSpeech communication
Speech communication
 
The power of digital assessment
The power of digital assessmentThe power of digital assessment
The power of digital assessment
 
Which Fortune 500 CEOs are most social?
Which Fortune 500 CEOs are most social?Which Fortune 500 CEOs are most social?
Which Fortune 500 CEOs are most social?
 
20 Inspiring Quotes
20 Inspiring Quotes20 Inspiring Quotes
20 Inspiring Quotes
 
5 Ways to Give Feedback that Elicits Real Change
5 Ways to Give Feedback that Elicits Real Change5 Ways to Give Feedback that Elicits Real Change
5 Ways to Give Feedback that Elicits Real Change
 
31 Quotes To Celebrate Teamwork and Collaboration
31 Quotes To Celebrate Teamwork and Collaboration31 Quotes To Celebrate Teamwork and Collaboration
31 Quotes To Celebrate Teamwork and Collaboration
 
Pitching Ideas: How to sell your ideas to others
Pitching Ideas: How to sell your ideas to othersPitching Ideas: How to sell your ideas to others
Pitching Ideas: How to sell your ideas to others
 
State of the Cloud 2017
State of the Cloud 2017State of the Cloud 2017
State of the Cloud 2017
 
Some tips on selling from Ogilvy
Some tips on selling from OgilvySome tips on selling from Ogilvy
Some tips on selling from Ogilvy
 
12 Days of Productivity
12 Days of Productivity12 Days of Productivity
12 Days of Productivity
 
Leader's Guide to Motivate People at Work
Leader's Guide to Motivate People at WorkLeader's Guide to Motivate People at Work
Leader's Guide to Motivate People at Work
 
3 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 20173 Things Every Sales Team Needs to Be Thinking About in 2017
3 Things Every Sales Team Needs to Be Thinking About in 2017
 

Recently uploaded

一比一原版纽卡斯尔大学毕业证成绩单如何办理
一比一原版纽卡斯尔大学毕业证成绩单如何办理一比一原版纽卡斯尔大学毕业证成绩单如何办理
一比一原版纽卡斯尔大学毕业证成绩单如何办理
cyebo
 
Exploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptxExploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptx
DilipVasan
 
一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理
pyhepag
 
一比一原版麦考瑞大学毕业证成绩单如何办理
一比一原版麦考瑞大学毕业证成绩单如何办理一比一原版麦考瑞大学毕业证成绩单如何办理
一比一原版麦考瑞大学毕业证成绩单如何办理
cyebo
 
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
pyhepag
 
Fuzzy Sets decision making under information of uncertainty
Fuzzy Sets decision making under information of uncertaintyFuzzy Sets decision making under information of uncertainty
Fuzzy Sets decision making under information of uncertainty
RafigAliyev2
 
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotecAbortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Riyadh +966572737505 get cytotec
 

Recently uploaded (20)

Machine Learning for Accident Severity Prediction
Machine Learning for Accident Severity PredictionMachine Learning for Accident Severity Prediction
Machine Learning for Accident Severity Prediction
 
一比一原版纽卡斯尔大学毕业证成绩单如何办理
一比一原版纽卡斯尔大学毕业证成绩单如何办理一比一原版纽卡斯尔大学毕业证成绩单如何办理
一比一原版纽卡斯尔大学毕业证成绩单如何办理
 
Supply chain analytics to combat the effects of Ukraine-Russia-conflict
Supply chain analytics to combat the effects of Ukraine-Russia-conflictSupply chain analytics to combat the effects of Ukraine-Russia-conflict
Supply chain analytics to combat the effects of Ukraine-Russia-conflict
 
Data analytics courses in Nepal Presentation
Data analytics courses in Nepal PresentationData analytics courses in Nepal Presentation
Data analytics courses in Nepal Presentation
 
Exploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptxExploratory Data Analysis - Dilip S.pptx
Exploratory Data Analysis - Dilip S.pptx
 
Atlantic Grupa Case Study (Mintec Data AI)
Atlantic Grupa Case Study (Mintec Data AI)Atlantic Grupa Case Study (Mintec Data AI)
Atlantic Grupa Case Study (Mintec Data AI)
 
AI Imagen for data-storytelling Infographics.pdf
AI Imagen for data-storytelling Infographics.pdfAI Imagen for data-storytelling Infographics.pdf
AI Imagen for data-storytelling Infographics.pdf
 
basics of data science with application areas.pdf
basics of data science with application areas.pdfbasics of data science with application areas.pdf
basics of data science with application areas.pdf
 
一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理
 
一比一原版麦考瑞大学毕业证成绩单如何办理
一比一原版麦考瑞大学毕业证成绩单如何办理一比一原版麦考瑞大学毕业证成绩单如何办理
一比一原版麦考瑞大学毕业证成绩单如何办理
 
Easy and simple project file on mp online
Easy and simple project file on mp onlineEasy and simple project file on mp online
Easy and simple project file on mp online
 
2024 Q1 Tableau User Group Leader Quarterly Call
2024 Q1 Tableau User Group Leader Quarterly Call2024 Q1 Tableau User Group Leader Quarterly Call
2024 Q1 Tableau User Group Leader Quarterly Call
 
2024 Q2 Orange County (CA) Tableau User Group Meeting
2024 Q2 Orange County (CA) Tableau User Group Meeting2024 Q2 Orange County (CA) Tableau User Group Meeting
2024 Q2 Orange County (CA) Tableau User Group Meeting
 
How I opened a fake bank account and didn't go to prison
How I opened a fake bank account and didn't go to prisonHow I opened a fake bank account and didn't go to prison
How I opened a fake bank account and didn't go to prison
 
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
一比一原版(Monash毕业证书)莫纳什大学毕业证成绩单如何办理
 
Fuzzy Sets decision making under information of uncertainty
Fuzzy Sets decision making under information of uncertaintyFuzzy Sets decision making under information of uncertainty
Fuzzy Sets decision making under information of uncertainty
 
Artificial_General_Intelligence__storm_gen_article.pdf
Artificial_General_Intelligence__storm_gen_article.pdfArtificial_General_Intelligence__storm_gen_article.pdf
Artificial_General_Intelligence__storm_gen_article.pdf
 
Webinar One View, Multiple Systems No-Code Integration of Salesforce and ERPs
Webinar One View, Multiple Systems No-Code Integration of Salesforce and ERPsWebinar One View, Multiple Systems No-Code Integration of Salesforce and ERPs
Webinar One View, Multiple Systems No-Code Integration of Salesforce and ERPs
 
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotecAbortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
Abortion pills in Dammam Saudi Arabia// +966572737505 // buy cytotec
 
Pre-ProductionImproveddsfjgndflghtgg.pptx
Pre-ProductionImproveddsfjgndflghtgg.pptxPre-ProductionImproveddsfjgndflghtgg.pptx
Pre-ProductionImproveddsfjgndflghtgg.pptx
 

Add More Visualization Capabilities To OBIEE