Sunteți pe pagina 1din 61

Adding 3rd-Party Visualizations to OBIEE

Kevin McGinley
!
@kevin_mcginley | kevin.mcginley@accenture.com
oranalytics.blogspot.com | youtube.com/user/realtimebi
The VCU (Visualization Cinematic Universe)

OBIEE SampleApp BI MAD EID


Copyright 2013 Accenture All rights reserved. 2
Copyright 2013 Accenture All rights reserved. 3
Contents

Why Add New Visualizations To OBIEE?


Considerations For Adding New Visualizations
Call Deployed Application Using Narrative Views
Flot Walkthrough
D3 Walkthrough

Copyright 2013 Accenture All rights reserved. 4


Why Add New Visualizations To OBIEE?
Existing OBIEE Visualizations

Table Bubble Chart Trellis


Pivot Table Radar Chart - Bar
Bar Chart Waterfall Chart - Line
Line Chart Gauge Chart - Area
Area Chart Funnel Chart - Line-Bar
- Pie
Pie Chart Map
- Scatter
Line-Bar Chart Performance Tile
- Bubble
Pareto Chart Ticker
- Spark
Scatter Chart Narrative

Copyright 2013 Accenture All rights reserved. 6


Why Add New Visualizations?

Leverage additional functionality over


existing OBIEE view types
Visualize data in a way OBIEE cannot
and gain new insights
!
!
Alsogenerate excitement and increase
user adoption

Copyright 2013 Accenture All rights reserved. 7


Add New Functionality

Chart legend
inside chart

Multiple Y-axis
scales

Copyright 2013 Accenture All rights reserved. 8


Add New Functionality

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.
Copyright 2013 Accenture All rights reserved. 9
Add New Visualizations

Timeline Bullet Chart (D3)

Calendar (D3) Treemap (D3) Sunburst (ADF)


Copyright 2013 Accenture All rights reserved. 10
Add New Visualizations

Motion Chart (Google) Motion Chart (D3)

Copyright 2013 Accenture All rights reserved. 11


Considerations For Adding New Visualizations
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)

Copyright 2013 Accenture All rights reserved. 13


Remote Server (Outside Firewall)

Data to generate
the visualization is
passed through the
firewall to an API.

Database WebLogic

Remote

Firewall
DW OBIEE Visualization
Engine

The visualization is
Data to satisfy the passed back as an
logical SQL is embedded web
passed to OBIEE. object.
Copyright 2013 Accenture All rights reserved. 14
Internal Software Server (Inside Firewall)

OBIEE makes a call to a


service, API, or data structure.
WebLogic Internal Server

Visualization
OBIEE
Engine

Database
The visualization is
passed to OBIEE as
a data or web Data to generate
object. DW the visualization is
passed to the
engine (may go
through BI Server).
Copyright 2013 Accenture All rights reserved. 15
Deployed Application On OBIEE Server (Inside Firewall)

Data to generate
the visualization is
pushed into a
javascript array.

Database WebLogic

Deployed
DW OBIEE Visualization
Engine

Data to satisfy the The visualization is


logical SQL is rendered in OBIEE
passed to OBIEE. using javascript.

Copyright 2013 Accenture All rights reserved. 16


How Well Do 3rd-Party Engines Integrate In 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

Copyright 2013 Accenture All rights reserved. 17


Compare/Contrast

Remote Server Internal Server Local Server


Typically well documented, Typically well documented Not always well documented
though not necessarily and and usually well nor well supported
supported supported Data security is not a concern
Data security is a legitimate Data security is a mild Processing occurs on the
concern concern same server, which could
Processing occurs on Processing occurs on a degrade overall server
another server but over the second server but network Enhancements/upgrades are
internet latency exists managed
Risk of unexpected changes Enhancements/upgrades are Free or $$$
or upgrades managed
Free or $$$ Typically $$$

Copyright 2013 Accenture All rights reserved. 18


Some Examples

Remote Server Internal Server Local Server

Internal Server Local Server

Copyright 2013 Accenture All rights reserved. 19


Call Deployed Application Using Narrative Views
How To Enable Visualization Engine (Local)

Deploy files on the server


Build your criteria
Call the deployed files in a narrative view

Copyright 2013 Accenture All rights reserved. 21


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)

Copyright 2013 Accenture All rights reserved. 22


Deploy To WebLogic As An Application

Copy WEB-INF
folder from
analyticsRes to

visualization
directory on the
server.

Copyright 2013 Accenture All rights reserved. 23


Deploy To WebLogic As An Application

Copy folder path on


server into install
application assistant.

Copyright 2013 Accenture All rights reserved. 24


Deploy To WebLogic As An Application

Install the folder as


an application.

Copyright 2013 Accenture All rights reserved. 25


Deploy To WebLogic As An Application

Target the
deployment to the
entire cluster.

Copyright 2013 Accenture All rights reserved. 26


Deploy To WebLogic As An Application

Install the folder as


an application.

Copyright 2013 Accenture All rights reserved. 27


Deploy To WebLogic As An Application

Activate the
changes.

Copyright 2013 Accenture All rights reserved. 28


Deploy To WebLogic As An Application

Start servicing all


requests for the
application.

Copyright 2013 Accenture All rights reserved. 29


Deploy To WebLogic As An Application

Files are now


accessible at
server:port/folder.

Copyright 2013 Accenture All rights reserved. 30


Criteria Notes

Dates
Different visualization engines handle date/time data differently
Dont 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

Copyright 2013 Accenture All rights reserved. 31


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

Copyright 2013 Accenture All rights reserved. 32


Example Narrative View With D3 Code

Checkbox renders
text as web code.

Prefix: CSS, script,


data array

Narrative: push data


into data array

Prefix: D3 code to
render visualization

Copyright 2013 Accenture All rights reserved. 33


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

Copyright 2013 Accenture All rights reserved. 34


Flot Walkthrough
Create A Simple Flot Line Chart

Copyright 2013 Accenture All rights reserved. 36


Working With Time In Flot

Flot uses javascript time, which


calculates milliseconds since
1/1/1970 12:00am
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

Copyright 2013 Accenture All rights reserved. 37


Prefix, Narrative, And Postfix Code

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

Copyright 2013 Accenture All rights reserved. 38


Dynamic Time And Rows To Display

Copyright 2013 Accenture All rights reserved. 39


Two Charts With Master-Detail Linking Using Drag-To-Zoom

New CSS file


reference and Flot
selection.js script

You can place your


chart options in a var
and reference

Copyright 2013 Accenture All rights reserved. 40


Postfix Code Continued

Storing the overview


chart in a variable
with options inline

Copyright 2013 Accenture All rights reserved. 41


Postfix Code Continued

Use a .bind to have


placeholder listen to
overview

Re-plot placeholder
based on the zoom
range

Dont re-plot
overview when zoom
range is set

Copyright 2013 Accenture All rights reserved. 42


Postfix Code End

A more complex div


to render the two
charts

Copyright 2013 Accenture All rights reserved. 43


Drag-To-Zoom In Action

Copyright 2013 Accenture All rights reserved. 44


D3 Walkthrough
Lets Start With Something Simple

Copyright 2013 Accenture All rights reserved. 46


Prefix and Narrative Code

CSS for the


visualization (can be
referenced)

Reference D3 .js file


already deployed on
SampleApp

Same data array


push as Flot
Copyright 2013 Accenture All rights reserved. 47
Postfix Code

D3 scaling to
translate data values
into pixels

D3 select to render
each bar one at a
time

Copyright 2013 Accenture All rights reserved. 48


Lets Pivot The Chart

Copyright 2013 Accenture All rights reserved. 49


Prefix And Narrative Code

Slightly different CSS


for rect and text

Switching to SVG for


more flexibility in
rendering

Copyright 2013 Accenture All rights reserved. 50


Postfix Code Start

A different scale
structure pivots the
chart

D3 select sets SVG


attributes

A different way to
calculate each bar
width

Copyright 2013 Accenture All rights reserved. 51


Postfix Code End

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

Copyright 2013 Accenture All rights reserved. 52


Lets Add Axis Labels!

Copyright 2013 Accenture All rights reserved. 53


Prefix And Narrative Code

Additional CSS to
format the x and y-
axis

An array with
multiple values and
Copyright 2013 Accenture All rights reserved.
labels 54
Postfix Code Begin

Margins to leave
space for the x and
y-axis around chart

D3 ordinal scaling
handles Brand labels

SVG axis calls


define each axis

Copyright 2013 Accenture All rights reserved. 55


Postfix Code End

Basic D3 select into


a chart variable

Render x-axis

Render y-axis

Render bars aligned


to Brand value order
in x-axis

Copyright 2013 Accenture All rights reserved. 56


The Bullet Chart (Eat Your Heart Out, Stephen Few)

Copyright 2013 Accenture All rights reserved. 57


Prefix And Narrative Code

Additional CSS for


the bullet chart

Call to additional
bullet chart javascript
functions

A more complex data


array
Copyright 2013 Accenture All rights reserved. 58
Postfix Code Begin

A call to a function in
bullet.js to handle
the complex render

Copyright 2013 Accenture All rights reserved. 59


Postfix Code End

Additional code to
render the metric title
and subtitle

Copyright 2013 Accenture All rights reserved. 60


Visit oranalytics.blogspot.com For More

S-ar putea să vă placă și