SlideShare a Scribd company logo
1 of 39
Creating Data Driven Web Apps with BIRT
Pierre Richer

1
Actuate Corporation © 2012
Today’s Agenda and Goals

• Introduction to BIRT
• Designing BIRT Reports
• Designer
• APIs
• Deploying BIRT
• BIRT Viewer
• Report Engine (Java)
• JavaScript API
• Questions

2
Actuate Corporation © 2012
Introduction to BIRT

3
Actuate Corporation © 2012
Actuate Launches the BIRT Project

Actuate proposed and started

BIRT
Business Intelligence
and Reporting Tools Project
… a top-level Eclipse project

Actuate Joins
Eclipse Foundation
as Strategic Developer
and Board Member
Adds BI and Reporting
as Open Source Project

Professional open source
Primary development resources
funded by Actuate

Contributions from many sources
IBM, Innovent Solutions and community
4
Actuate Corporation © 2012

AUGUST

2004
BIRT Release History
September 2004

BIRT Project proposal accepted, and project launched

June 2005

1.0

Eclipse Report Designer, Report Engine, Chart Engine

December 2005

2.0

Support for a wide variety of common layouts

June 2006

2.1

Advanced parameters, ability to join data sets, …

June 2007

2.2

Dynamic crosstab support, web services data source, …

June 2008

2.3

JavaScript Debugger, BiDi Support, Charts in Crosstabs, …

June 2009

2.5

Page aggregates, Multiple drill-downs in Charts, …

June 2010

2.6

New charts, more chart control, developer productivity, …

June 2011

3.7

POJO Runtime, Hive/Hadoop, Open Office emitters…

June 2012

4.2

Maven Support, Excel Data Source, Relative Time Periods…

June 2013

4.3

MongoDB & POJO ODAs, PPT & Word 2010 Support, XLSX Support…

Ground-up initiative: Innovative approach to layout and design
Developed in the open with community feedback at all stages
5
Actuate Corporation © 2012
Business Intelligence and Reporting Tools

A New Generation of Data Visualization Technology
• Makes all data-driven content development easy
• Modern, web-page design metaphor
• Open and standards-based
• Flexible with rich programmatic control
• Full support for libraries and reuse
• Foundation for a range of solutions

Simplicity
that makes
simple
layouts easy
6
Actuate Corporation © 2012

Power

BIRT

to create
very complex
layouts
Designing BIRT Reports

7
Actuate Corporation © 2012
BIRT Data Access
• BIRT Offers many ways to get data
• Standard Data Sources
• Flat File (CSV, TSV, SSV, PSV)
• MongoDB
• Hive Data Source
• Cassandra Scripted Data Source
• JDBC Textual or Graphical
• Web Service & XML- XPath syntax
• XLS/XLSX
• Scripted Data Source Written in Java
or JavaScript
• Open Data Access (ODA) DTP Project
• Extensible JDBC Driver Framework
8
Actuate Corporation © 2012

Community Contributions
GoogleDocs
XML/A
REST

Multi-Flat File
GitHub
Twitter JSON Search
Dropbox usage
YQL
Google Analytics
LinkedIn
Facebook FQL
BIRT Formatting Capabilities
• Listings, cross-tab, dashboard, pixelperfect, charts
• Grouping, advanced aggregations,
sub-totals, calculations
• Multi-section and sub-reports
• Conditional sections and logic
• Full programmatic control and
scripting
• Embedded images
• Dynamic hyperlinking
• And much more!

9
Actuate Corporation © 2012
BIRT Productivity Aids
• Graphical layout and design
• Query and metadata editors
• Customizable cheat sheets
and templates
• Formatting builder
• Grouping builder

10
Actuate Corporation © 2012
BIRT Re-use and Productivity
• Library support for publishing and sharing components
• Leverages common standards
• SQL
• Java
• JavaScript
• XML
• Cascading Style Sheets
• Integrated debugger

11
Actuate Corporation © 2012
BIRT Output Formats
• HTML, PDF, MS Office, Open Office
• Custom emitters : CSV, Text, …
• Internationalization of labels and text
• Localization of date and numeric fields
• Support for Asian character sets and right-to-left display
Web Viewer

12
Actuate Corporation © 2012

PDF

Excel
The BIRT Designer

DEMO

13
Actuate Corporation © 2012
High-Level BIRT Architecture

BIRT Designer
Eclipse
Designer

Eclipse
DTP,
WTP,…

Chart
Designer

Design Engine

XML
Design
Document

BIRT Engine
Generation
Services

Data
Data
14
Actuate Corporation © 2012

Charting
Engine

Data
Services

Presentation
Services

HTML
PDF
Excel
Word
PowerPoint
PostScript
…
High Level BIRT Architecture

DE API

Design Engine

RE API

Report Engine

CE API

Produces XML Report,
Templates, and Library
Designs

Chart Engine

Runs Reports and
produces output – PDF,
HTML, Doc, XLS, PS,
PPT Etc
Consume Chart EMF
model and produces
Chart Output. Supports
14 Main types and many
sub types. Ouputs to
PNG, JPG, BMP, SVG,
PDF, SWT, and SWING

All Engines can be ran with or without OSGi

Core BIRT Open Source Products
Report Designer

Chart Builder

Example Viewer

Can be run outside of BIRT
15
Actuate Corporation © 2012
Deploying BIRT Reports

16
Actuate Corporation © 2012
Multiple Deployment Options

BIRT Design

BIRT onDemand
BIRT Engine and APIs

BIRT iHub
17
Actuate Corporation © 2012
BIRT Web Viewer

Copy WebViewerExample from the
runtime download to the application
server and rename it “birt”

18
Actuate Corporation © 2012
BIRT Web Viewer URLs
With viewer toolbar, pagination, etc.:
http://localhost:8080/birt/frameset?__report=reportName.rptdesign

As a straight HTML output:
http://localhost:8080/birt/run?__report=reportName.rptdesign

Other servlet mappings:
preview, document, output, extract

URL parameters include:
id

title

showtitle

toolbar

navigationbar

locale

format

report

document

parameterpage

pagerange

fittopage

svg

isnull

islocale

masterpage

resourceFolder

bookmark

rtl

page

overwrite

19
Actuate Corporation © 2012
BIRT Web Viewer URLs
Output to PDF:
http://localhost:8080/birt/frameset?__report=reportName.rptdesign&__format=p
df

To display a single report item as a reportlet:
http://localhost:8080/birt/run?__report=SD.rptdesign&__bookmark=myTable&__i
sreportlet=true

20
Actuate Corporation © 2012
BIRT Viewer Tag Library
Example JSP to embed viewer
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"

pageEncoding="ISO-8859-1"%>

<%@ taglib uri="/birt.tld" prefix="birt" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>My Report - JSP</title>
</head>
<body>
<birt:viewer id="birtViewer" reportDesign= "Sales Report Summary.rptdesign"
pattern="frameset"
height="450"
width="700"
format="html"></birt:viewer>
</body>

</html>

21
Actuate Corporation © 2012
BIRT Viewer Tag Library
Example JSP to embed parameters
…
<html>
<style type="text/css">
.class1 { background-color:#ff0000; color: #ffffff; }
</style>
<body>
Parameter Page<br>
<birt:parameterPage
id="report1"
name="page1"
reportDesign="cascade.rptdesign"
isCustom="true"
pattern="frameset">
Cascading Parameter1: <birt:paramDef id="5" name="customer" />
<br><br>
Cascading Parameter2: <birt:paramDef id="6" name="order" cssClass="class1"/>
<br><br>
<input type="submit" name="submit" value="Submit form"/>
<br><br>
</birt:parameterPage>
<br>
</body>
</html>
22
Actuate Corporation © 2012
Report Engine API
public class RunReport {

Example – Running a report

IReportEngine engine=null;
IReportRunnable design = null;
RunReport( String birtHome, String logFolder ) throws BirtException
{
EngineConfig config = null;
//Configure the Engine and start the Platform
config = new EngineConfig( );
config.setBIRTHome( birtHome );
//set log config
config.setLogConfig(logFolder, Level.FINE);
//start the Platform to load the appropriate plug-ins
Platform.startup( config );
//get the factory from the platform
IReportEngineFactory factory = (IReportEngineFactory)
Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
//create the engine
engine = factory.createReportEngine( config );
}

23
Actuate Corporation © 2012
Report Engine API
public void run(String designName, String reportDocument) throws EngineException
{
design = engine.openReportDesign( designName );
IRunTask task = engine.createRunTask( design );
task.run( reportDocument );
task.close();
}
public void shutdown()
{
engine.destroy();
Platform.shutdown();
}
public static void main( String[] args )
{
String designName = "Reports/Run/OrderStatus.rptdesign";
String reportDocument = "Reports/Run/OrderStatus.rptdocument";
String birtHome = "C:/birt-runtime-4_3_0/ReportEngine" ;
String logFolder = "Reports/Logs";
try {
RunReport rr = new RunReport( birtHome, logFolder );
rr.run( designName, reportDocument );
rr.shutdown();
} catch (Exception e) {e.printStackTrace();}
System.out.println("RunReport: I am done!");
}
24
Actuate Corporation © 2012
Report Engine API
public class RunReportPDF {

Example – Running and rendering a report

IReportEngine engine=null;
IReportRunnable design = null;
RunReportPDF( String birtHome, String logFolder ) throws BirtException
{
EngineConfig config = null;
//Configure the Engine and start the Platform
config = new EngineConfig( );
config.setBIRTHome( birtHome );
//set log config
config.setLogConfig(logFolder, Level.FINE);
//start the Platform to load the appropriate plug-ins
Platform.startup( config );
//get the factory from the platform
IReportEngineFactory factory = (IReportEngineFactory)
Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
//create the engine
engine = factory.createReportEngine( config );
}

25
Actuate Corporation © 2012
Report Engine API
public void run(String designName, String reportDocument) throws EngineException
{
design = engine.openReportDesign( designName );
IRunTask task = engine.createRunTask( design );
task.run( reportDocument );
task.close();
}
public void htmlRender( String docName, String htmlDoc) throws EngineException
{
//Open a report document
IReportDocument iReportDocument = engine.openReportDocument(docName);
IRenderTask task = engine.createRenderTask(iReportDocument);
//Set Render Options
HTMLRenderOption options = new HTMLRenderOption();
options.setOutputFileName( htmlDoc );
options.setOutputFormat("html");
options.setHtmlPagination( true );
task.setRenderOption(options);
//Render Pages 2-5
//task.setPageNumber(4);
task.setPageRange("2-5");
task.render();
}
26
Actuate Corporation © 2012
Report Engine API
public void pdfRender( String designName, String pdfDoc) throws EngineException
{

//Open a report design - use design to modify design, retrieve embedded images etc.
IReportRunnable design = engine.openReportDesign( designName );
//Create task to run the report - use the task to execute and run the report
IRunAndRenderTask task = engine.createRunAndRenderTask( design );
//Set parameters for the report
task.setParameterValue( "Top Count", new Integer(5) );
task.setParameterValue( "Top Percentage", new Integer(25) );
task.validateParameters();
//Set rendering options - such as file output name and format, etc.
PDFRenderOption options = new PDFRenderOption( );
options.setOutputFileName( pdfDoc );
options.setOutputFormat( "pdf" );
task.setRenderOption(options);

//run the report
task.run();
}

27
Actuate Corporation © 2012
Report Engine API
public void shutdown()
{
engine.destroy();
Platform.shutdown();
}
public static void main( String[] args )
{
String designName = "Reports/Run/OrderStatus.rptdesign";
String reportDocument = "Reports/Run/OrderStatus.rptdocument";
String birtHome = "C:/birt-runtime-4_3_0/ReportEngine" ;
String logFolder = "Reports/Logs";
String htmlDocument = "C:/webapps/birt/OrderStatus.html";
String pdfDesignReport = "Reports/Run/TopNPercent.rptdesign";
String pdfDocument = "C:/webapps/birt/TopNPercent.pdf";
try {
RunReportPDF runReport = new RunReportPDF( birtHome, logFolder, logFlag );
runReport.run( designName, reportDocument );
runReport.htmlRender(reportDocument, htmlDocument);
runReport.pdfRender(pdfDesignReport, pdfDocument);
runReport.shutdown();
} catch (BirtException e) {e.printStackTrace();}
System.out.println("RunReport: I am done!");
}

28
Actuate Corporation © 2012
Report Engine API with JSF
public class birt2jsf {

Example – Report Execution

String executeReport(String param) throws EngineException
{
IReportEngine engine=null;
EngineConfig config = null;
try{
// start up Platform
config = new EngineConfig( );
config.setLogConfig("/logs", java.util.logging.Level.FINEST);
Platform.startup( config );
// create new Report Engine
IReportEngineFactory factory = (IReportEngineFactory) Platform
.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY );
engine = factory.createReportEngine( config );
// open the report design
IReportRunnable design = null;
design = engine.openReportDesign("C:/webapps/JSF_2/test.rptdesign");
// create RunandRender Task
IRunAndRenderTask task = engine.createRunAndRenderTask(design);
// pass necessary parameters
task.setParameterValue("Country", param);
task.validateParameters();
29
Actuate Corporation © 2012
Report Engine API with JSF
// set render options including output type
HTMLRenderOption options = new HTMLRenderOption();
ByteArrayOutputStream outs = new ByteArrayOutputStream();
options.setOutputStream(outs);
options.setImageHandler(new HTMLServerImageHandler());
options.setBaseImageURL("images");
options.setImageDirectory("C:/webapps/JSF_2/images");
options.setEmbeddable(true);
options.setOutputFormat("html");
task.setRenderOption(options);
// run task
String output;
task.run();
output = outs.toString();
task.close();
engine.destroy();
return output;
}catch( Exception ex){
ex.printStackTrace();
return "Error";
}
finally
{
Platform.shutdown( );
RegistryProviderFactory.releaseDefault();
}
}
}

30
Actuate Corporation © 2012
Report Engine API with JSF
@ManagedBean(name="birtBean")
@SessionScoped
public class BirtBean implements Serializable {
private static final long serialVersionUID = 1L;
private String name;
public String getReport() {
birt2jsf report = new birt2jsf( );
String reportHTML = null;
try {
reportHTML = report.executeReport(name);
} catch (EngineException e) {
e.printStackTrace();
}
return reportHTML;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
31
Actuate Corporation © 2012

Example – Bean
Report Engine API with JSF
Example – JSP Code
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>

<title>BIRT JSF 2.0 Example</title>
</h:head>
<h:body>
<h3>Enter Country</h3>
<h:form>
<h:inputText
value="#{birtBean.name}">
</h:inputText>
<h:commandButton value="View Report" action="page-a">
</h:commandButton>
<h:outputText value="#{birtBean.report}" escape="false"/>
</h:form>
</h:body></html>

32
Actuate Corporation © 2012
BIRT Viewer Toolkit (BVT) – Sneak Peek
New product being released by Actuate for use with open-source (OS)
BIRT. BVT should be released soon for download on BIRT Exchange.
Key Features:
• It’s FREE!
• It uses the Actuate Viewer (Built on OS Viewer)
• More modern look and feel
• More seamless parameter entry screen
• Calendar date-picker
• It’s built on the latest BIRT version (4.3)
• Includes JavaScript API (JSAPI) AJAX library for easier integration into
applications of all types.

33
Actuate Corporation © 2012
Running Reports with BVT
The URL’s used with the OS viewer can still be used with BVT.
With viewer toolbar, pagination, etc.:
http://localhost:8080/BIRTViewerToolkit/frameset?__report=TableReport.rptdesign

As a straight HTML output:
http://localhost:8080/BIRTViewerToolkit/run?__report=TableReport.rptdesign

Output to PDF:
http://localhost:8080/BIRTViewerToolkit/frameset?__report=TableReport.rptdesign&__
format=pdf

To display a single report item as a reportlet:
http://localhost:8080/BIRTViewerToolkit/run?__report=SD.rptdesign&__bookmark=myT
able
34
Actuate Corporation © 2012
Running Reports with BVT
Parameterized report with date picker:
http://localhost:8080/BIRTViewerToolkit/frameset?__report=DynamicParameter.rptdesi
gn

What that looks like with the OS viewer:
http://localhost:8080/birt/frameset?__report=DynamicParameter.rptdesign

35
Actuate Corporation © 2012
BVT and JSAPI
Example – JSAPI to view a report

<html>
<head>
<script type="text/javascript" language="JavaScript
src="http://localhost:8700/BIRTViewerToolkit/jsapi"></script>
</head>

<body onload="init();">
<div id="myDivContainer" style="border-width: 1px; border-style: solid;"></div>
<script type="text/javascript" language="JavaScript">
var myViewer;
function init() {
actuate.load("viewer");
actuate.initialize( "http://localhost:8700/BIRTViewerToolkit/", null, null, null,
createViewer );
}
function createViewer() {
myViewer = new actuate.Viewer( "myDivContainer" );
myViewer.setReportName("/reports/Customer Listing.rptdesign" );
myViewer.submit();

}
</script>
</body>
</html>
36
Actuate Corporation © 2012
BIRT Exchange Community Site
Centralized hub for BIRT developers

• Access demos, tutorials, tips and techniques, documentation…
• Enables developers to be more productive and build applications faster
• Marketplace for applications

Explore
• Search/sort
• Rate, comment
• Forums
Download
• Documentation
• Software
• Examples
Contribute
• BIRT designs, code
• Technical tips
• Contests
37
Actuate Corporation © 2012
Questions?

38
Actuate Corporation © 2012
Actuate Products Built on BIRT
BIRT Designer Pro:
Enhanced emitters, HTML5 charts, flash charts, flash gadgets, flash maps,
additional datasources, progressive viewing, etc.

BIRT Interactive Viewer:
Allows end users to add columns, apply formatting, move columns, add
charts, sort, etc.

BIRT 360:
Create visually pleasing, interactive dashboards quickly an easily using BIRT
report components, HTML5 & Flash gadgets, etc.

BIRT Studio:
Ad-hoc, web-based reporting tool for business users to create reports easily,
without sending requests to IT.

BIRT iHub:
Deploy, manage, schedule, run, and distribute BIRT documents and web
pages securely and easily.
39
Actuate Corporation © 2012

More Related Content

What's hot

Portal Integration with SAP BusinessObjects (SDK)
Portal Integration with SAP BusinessObjects (SDK)Portal Integration with SAP BusinessObjects (SDK)
Portal Integration with SAP BusinessObjects (SDK)DMIMarketing
 
SAP BusinessObjects Embedded analytics
SAP BusinessObjects Embedded analyticsSAP BusinessObjects Embedded analytics
SAP BusinessObjects Embedded analyticsIngo Hilgefort
 
My Updated Resume
My Updated ResumeMy Updated Resume
My Updated Resumechaunhi
 
2016 Q4 Open Source Support Briefing
2016 Q4 Open Source Support Briefing2016 Q4 Open Source Support Briefing
2016 Q4 Open Source Support BriefingBenito Gonzalez
 
OpenStack_Horizon_Why
OpenStack_Horizon_WhyOpenStack_Horizon_Why
OpenStack_Horizon_Whypraphul sinha
 
Q3 2016 uPortal Open Source Support Briefing
Q3 2016 uPortal Open Source Support BriefingQ3 2016 uPortal Open Source Support Briefing
Q3 2016 uPortal Open Source Support BriefingBenito Gonzalez
 
CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsCIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsICF CIRCUIT
 
How to Create "Hello, World!" in Fiori
How to Create "Hello, World!" in FioriHow to Create "Hello, World!" in Fiori
How to Create "Hello, World!" in FioriBlackvard
 
Extending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsExtending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsIBM UrbanCode Products
 
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik HarabiEclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik HarabiRafik HARABI
 
Cloud Configuration Ecosystem at Intuit
Cloud Configuration Ecosystem at IntuitCloud Configuration Ecosystem at Intuit
Cloud Configuration Ecosystem at IntuitVMware Tanzu
 
Angular 13 noteworthy add ons, enhancements, and modifications
Angular 13 noteworthy add ons, enhancements, and modificationsAngular 13 noteworthy add ons, enhancements, and modifications
Angular 13 noteworthy add ons, enhancements, and modificationsShelly Megan
 
Patricia Todd SharePoint Resume
Patricia Todd SharePoint ResumePatricia Todd SharePoint Resume
Patricia Todd SharePoint ResumeCSharpGirl
 
Stephen Kleimeyer’s SharePoint Resume
Stephen Kleimeyer’s SharePoint ResumeStephen Kleimeyer’s SharePoint Resume
Stephen Kleimeyer’s SharePoint Resumeskmeyer2010
 

What's hot (20)

Portal Integration with SAP BusinessObjects (SDK)
Portal Integration with SAP BusinessObjects (SDK)Portal Integration with SAP BusinessObjects (SDK)
Portal Integration with SAP BusinessObjects (SDK)
 
SAP Business Objects Software development Kit
SAP Business Objects Software development Kit SAP Business Objects Software development Kit
SAP Business Objects Software development Kit
 
SAP BusinessObjects Embedded analytics
SAP BusinessObjects Embedded analyticsSAP BusinessObjects Embedded analytics
SAP BusinessObjects Embedded analytics
 
My Updated Resume
My Updated ResumeMy Updated Resume
My Updated Resume
 
Sam segal resume
Sam segal resumeSam segal resume
Sam segal resume
 
2016 Q4 Open Source Support Briefing
2016 Q4 Open Source Support Briefing2016 Q4 Open Source Support Briefing
2016 Q4 Open Source Support Briefing
 
OpenStack_Horizon_Why
OpenStack_Horizon_WhyOpenStack_Horizon_Why
OpenStack_Horizon_Why
 
Q3 2016 uPortal Open Source Support Briefing
Q3 2016 uPortal Open Source Support BriefingQ3 2016 uPortal Open Source Support Briefing
Q3 2016 uPortal Open Source Support Briefing
 
CIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM AppsCIRCUIT 2015 - Hybrid App Development with AEM Apps
CIRCUIT 2015 - Hybrid App Development with AEM Apps
 
Oracle mcs overview 1029
Oracle mcs overview 1029Oracle mcs overview 1029
Oracle mcs overview 1029
 
How to Create "Hello, World!" in Fiori
How to Create "Hello, World!" in FioriHow to Create "Hello, World!" in Fiori
How to Create "Hello, World!" in Fiori
 
Extending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with PluginsExtending uBuild and uDeploy with Plugins
Extending uBuild and uDeploy with Plugins
 
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik HarabiEclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
EclipseCon Europe 2015 - liferay modularity patterns using OSGi -Rafik Harabi
 
Overview
OverviewOverview
Overview
 
Cloud Configuration Ecosystem at Intuit
Cloud Configuration Ecosystem at IntuitCloud Configuration Ecosystem at Intuit
Cloud Configuration Ecosystem at Intuit
 
Angular 13 noteworthy add ons, enhancements, and modifications
Angular 13 noteworthy add ons, enhancements, and modificationsAngular 13 noteworthy add ons, enhancements, and modifications
Angular 13 noteworthy add ons, enhancements, and modifications
 
Patricia Todd SharePoint Resume
Patricia Todd SharePoint ResumePatricia Todd SharePoint Resume
Patricia Todd SharePoint Resume
 
CA API Developer Portal
CA API Developer PortalCA API Developer Portal
CA API Developer Portal
 
Griffon Solutions Introduction To Share Point Tools, Tips, And Tricks
Griffon Solutions   Introduction To Share Point   Tools, Tips, And TricksGriffon Solutions   Introduction To Share Point   Tools, Tips, And Tricks
Griffon Solutions Introduction To Share Point Tools, Tips, And Tricks
 
Stephen Kleimeyer’s SharePoint Resume
Stephen Kleimeyer’s SharePoint ResumeStephen Kleimeyer’s SharePoint Resume
Stephen Kleimeyer’s SharePoint Resume
 

Viewers also liked

Big data from the LHC commissioning: practical lessons from big science - Sim...
Big data from the LHC commissioning: practical lessons from big science - Sim...Big data from the LHC commissioning: practical lessons from big science - Sim...
Big data from the LHC commissioning: practical lessons from big science - Sim...jaxLondonConference
 
Designing and Building a Graph Database Application - Ian Robinson (Neo Techn...
Designing and Building a Graph Database Application - Ian Robinson (Neo Techn...Designing and Building a Graph Database Application - Ian Robinson (Neo Techn...
Designing and Building a Graph Database Application - Ian Robinson (Neo Techn...jaxLondonConference
 
A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...
A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...
A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...jaxLondonConference
 
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...jaxLondonConference
 
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)jaxLondonConference
 
Bringing your app to the web with Dart - Chris Buckett (Entity Group)
Bringing your app to the web with Dart - Chris Buckett (Entity Group)Bringing your app to the web with Dart - Chris Buckett (Entity Group)
Bringing your app to the web with Dart - Chris Buckett (Entity Group)jaxLondonConference
 
Streams and Things - Darach Ennis (Ubiquiti Networks)
Streams and Things - Darach Ennis (Ubiquiti Networks)Streams and Things - Darach Ennis (Ubiquiti Networks)
Streams and Things - Darach Ennis (Ubiquiti Networks)jaxLondonConference
 
Scaling Scala to the database - Stefan Zeiger (Typesafe)
Scaling Scala to the database - Stefan Zeiger (Typesafe)Scaling Scala to the database - Stefan Zeiger (Typesafe)
Scaling Scala to the database - Stefan Zeiger (Typesafe)jaxLondonConference
 
What You Need to Know About Lambdas - Jamie Allen (Typesafe)
What You Need to Know About Lambdas - Jamie Allen (Typesafe)What You Need to Know About Lambdas - Jamie Allen (Typesafe)
What You Need to Know About Lambdas - Jamie Allen (Typesafe)jaxLondonConference
 
How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...
How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...
How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...jaxLondonConference
 
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)jaxLondonConference
 
Design is a Process, not an Artefact - Trisha Gee (MongoDB)
Design is a Process, not an Artefact - Trisha Gee (MongoDB)Design is a Process, not an Artefact - Trisha Gee (MongoDB)
Design is a Process, not an Artefact - Trisha Gee (MongoDB)jaxLondonConference
 
Practical Performance: Understand the Performance of Your Application - Chris...
Practical Performance: Understand the Performance of Your Application - Chris...Practical Performance: Understand the Performance of Your Application - Chris...
Practical Performance: Understand the Performance of Your Application - Chris...jaxLondonConference
 
Databases and agile development - Dwight Merriman (MongoDB)
Databases and agile development - Dwight Merriman (MongoDB)Databases and agile development - Dwight Merriman (MongoDB)
Databases and agile development - Dwight Merriman (MongoDB)jaxLondonConference
 
Real-world polyglot programming on the JVM - Ben Summers (ONEIS)
Real-world polyglot programming on the JVM  - Ben Summers (ONEIS)Real-world polyglot programming on the JVM  - Ben Summers (ONEIS)
Real-world polyglot programming on the JVM - Ben Summers (ONEIS)jaxLondonConference
 
The state of the art biorepository at ILRI
The state of the art biorepository at ILRIThe state of the art biorepository at ILRI
The state of the art biorepository at ILRIAbsolomon Kihara
 
Big Events, Mob Scale - Darach Ennis (Push Technology)
Big Events, Mob Scale - Darach Ennis (Push Technology)Big Events, Mob Scale - Darach Ennis (Push Technology)
Big Events, Mob Scale - Darach Ennis (Push Technology)jaxLondonConference
 
Are you better than a coin toss? - Richard Warbuton & John Oliver (jClarity)
Are you better than a coin toss?  - Richard Warbuton & John Oliver (jClarity)Are you better than a coin toss?  - Richard Warbuton & John Oliver (jClarity)
Are you better than a coin toss? - Richard Warbuton & John Oliver (jClarity)jaxLondonConference
 

Viewers also liked (20)

How To Use BIRT
How To Use BIRTHow To Use BIRT
How To Use BIRT
 
Big data from the LHC commissioning: practical lessons from big science - Sim...
Big data from the LHC commissioning: practical lessons from big science - Sim...Big data from the LHC commissioning: practical lessons from big science - Sim...
Big data from the LHC commissioning: practical lessons from big science - Sim...
 
Designing and Building a Graph Database Application - Ian Robinson (Neo Techn...
Designing and Building a Graph Database Application - Ian Robinson (Neo Techn...Designing and Building a Graph Database Application - Ian Robinson (Neo Techn...
Designing and Building a Graph Database Application - Ian Robinson (Neo Techn...
 
A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...
A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...
A real-time architecture using Hadoop & Storm - Nathan Bijnens & Geert Van La...
 
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
Introducing Vert.x 2.0 - Taking polyglot application development to the next ...
 
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
Little words of wisdom for the developer - Guillaume Laforge (Pivotal)
 
Bringing your app to the web with Dart - Chris Buckett (Entity Group)
Bringing your app to the web with Dart - Chris Buckett (Entity Group)Bringing your app to the web with Dart - Chris Buckett (Entity Group)
Bringing your app to the web with Dart - Chris Buckett (Entity Group)
 
Streams and Things - Darach Ennis (Ubiquiti Networks)
Streams and Things - Darach Ennis (Ubiquiti Networks)Streams and Things - Darach Ennis (Ubiquiti Networks)
Streams and Things - Darach Ennis (Ubiquiti Networks)
 
Scaling Scala to the database - Stefan Zeiger (Typesafe)
Scaling Scala to the database - Stefan Zeiger (Typesafe)Scaling Scala to the database - Stefan Zeiger (Typesafe)
Scaling Scala to the database - Stefan Zeiger (Typesafe)
 
What You Need to Know About Lambdas - Jamie Allen (Typesafe)
What You Need to Know About Lambdas - Jamie Allen (Typesafe)What You Need to Know About Lambdas - Jamie Allen (Typesafe)
What You Need to Know About Lambdas - Jamie Allen (Typesafe)
 
How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...
How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...
How Hailo fuels its growth using NoSQL storage and analytics - Dave Gardner (...
 
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
Lambda Expressions: Myths and Mistakes - Richard Warburton (jClarity)
 
Design is a Process, not an Artefact - Trisha Gee (MongoDB)
Design is a Process, not an Artefact - Trisha Gee (MongoDB)Design is a Process, not an Artefact - Trisha Gee (MongoDB)
Design is a Process, not an Artefact - Trisha Gee (MongoDB)
 
Practical Performance: Understand the Performance of Your Application - Chris...
Practical Performance: Understand the Performance of Your Application - Chris...Practical Performance: Understand the Performance of Your Application - Chris...
Practical Performance: Understand the Performance of Your Application - Chris...
 
Why other ppl_dont_get_it
Why other ppl_dont_get_itWhy other ppl_dont_get_it
Why other ppl_dont_get_it
 
Databases and agile development - Dwight Merriman (MongoDB)
Databases and agile development - Dwight Merriman (MongoDB)Databases and agile development - Dwight Merriman (MongoDB)
Databases and agile development - Dwight Merriman (MongoDB)
 
Real-world polyglot programming on the JVM - Ben Summers (ONEIS)
Real-world polyglot programming on the JVM  - Ben Summers (ONEIS)Real-world polyglot programming on the JVM  - Ben Summers (ONEIS)
Real-world polyglot programming on the JVM - Ben Summers (ONEIS)
 
The state of the art biorepository at ILRI
The state of the art biorepository at ILRIThe state of the art biorepository at ILRI
The state of the art biorepository at ILRI
 
Big Events, Mob Scale - Darach Ennis (Push Technology)
Big Events, Mob Scale - Darach Ennis (Push Technology)Big Events, Mob Scale - Darach Ennis (Push Technology)
Big Events, Mob Scale - Darach Ennis (Push Technology)
 
Are you better than a coin toss? - Richard Warbuton & John Oliver (jClarity)
Are you better than a coin toss?  - Richard Warbuton & John Oliver (jClarity)Are you better than a coin toss?  - Richard Warbuton & John Oliver (jClarity)
Are you better than a coin toss? - Richard Warbuton & John Oliver (jClarity)
 

Similar to Creating Data Driven Web Apps with BIRT - Pierre Richer (Actuate)

Creating Data Driven Web Apps with BIRT - Michael Williams
Creating Data Driven Web Apps with BIRT - Michael WilliamsCreating Data Driven Web Apps with BIRT - Michael Williams
Creating Data Driven Web Apps with BIRT - Michael Williamsjaxconf
 
Eclipse Business Intelligence and Reporting Tools [BIRT] Project
Eclipse Business Intelligence and Reporting Tools [BIRT] ProjectEclipse Business Intelligence and Reporting Tools [BIRT] Project
Eclipse Business Intelligence and Reporting Tools [BIRT] ProjectActuate Corporation
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Rodolfo Finochietti
 
IBM Z for the Digital Enterprise 2018 - Offering API channel to application a...
IBM Z for the Digital Enterprise 2018 - Offering API channel to application a...IBM Z for the Digital Enterprise 2018 - Offering API channel to application a...
IBM Z for the Digital Enterprise 2018 - Offering API channel to application a...DevOps for Enterprise Systems
 
10 things to know about BIRT
10 things to know about BIRT10 things to know about BIRT
10 things to know about BIRTShenbaga Sundar
 
Realizing Great Customer Experiences with Adobe® LiveCycle® ES3
Realizing Great Customer Experiences with Adobe® LiveCycle® ES3Realizing Great Customer Experiences with Adobe® LiveCycle® ES3
Realizing Great Customer Experiences with Adobe® LiveCycle® ES3Craig Randall
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookVMware Tanzu
 
Moving OBIEE to Oracle Analytics Cloud
Moving OBIEE to Oracle Analytics CloudMoving OBIEE to Oracle Analytics Cloud
Moving OBIEE to Oracle Analytics CloudEdelweiss Kammermann
 
Pivotal spring boot-cloud workshop
Pivotal   spring boot-cloud workshopPivotal   spring boot-cloud workshop
Pivotal spring boot-cloud workshopSufyaan Kazi
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
 
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014Selvaratnam Uthaiyashankar
 
RIPEstat Public demo January 24, 2012
RIPEstat Public demo January 24, 2012RIPEstat Public demo January 24, 2012
RIPEstat Public demo January 24, 2012RIPE NCC
 
Building Applications Using the U2 Toolkit for .NET
Building Applications Using the U2 Toolkit for .NETBuilding Applications Using the U2 Toolkit for .NET
Building Applications Using the U2 Toolkit for .NETRocket Software
 
Self service reporting on Hadoop using Actuate BIRT
Self service reporting on Hadoop using Actuate BIRTSelf service reporting on Hadoop using Actuate BIRT
Self service reporting on Hadoop using Actuate BIRTVaidehi Deshpande
 
IBM WebSphere Portal 6.1 Preview - What's New
IBM WebSphere Portal 6.1 Preview - What's NewIBM WebSphere Portal 6.1 Preview - What's New
IBM WebSphere Portal 6.1 Preview - What's NewDvir Reznik
 
IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001Vinayak Tavargeri
 
Bdi Systems
Bdi SystemsBdi Systems
Bdi Systemsaryan990
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Lucas Jellema
 
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API OverviewFrédéric Harper
 

Similar to Creating Data Driven Web Apps with BIRT - Pierre Richer (Actuate) (20)

Creating Data Driven Web Apps with BIRT - Michael Williams
Creating Data Driven Web Apps with BIRT - Michael WilliamsCreating Data Driven Web Apps with BIRT - Michael Williams
Creating Data Driven Web Apps with BIRT - Michael Williams
 
Eclipse Business Intelligence and Reporting Tools [BIRT] Project
Eclipse Business Intelligence and Reporting Tools [BIRT] ProjectEclipse Business Intelligence and Reporting Tools [BIRT] Project
Eclipse Business Intelligence and Reporting Tools [BIRT] Project
 
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
Que hay de nuevo en Visual Studio 2013 y ASP.NET 5.1
 
IBM Z for the Digital Enterprise 2018 - Offering API channel to application a...
IBM Z for the Digital Enterprise 2018 - Offering API channel to application a...IBM Z for the Digital Enterprise 2018 - Offering API channel to application a...
IBM Z for the Digital Enterprise 2018 - Offering API channel to application a...
 
10 things to know about BIRT
10 things to know about BIRT10 things to know about BIRT
10 things to know about BIRT
 
Realizing Great Customer Experiences with Adobe® LiveCycle® ES3
Realizing Great Customer Experiences with Adobe® LiveCycle® ES3Realizing Great Customer Experiences with Adobe® LiveCycle® ES3
Realizing Great Customer Experiences with Adobe® LiveCycle® ES3
 
Pivotal Platform - December Release A First Look
Pivotal Platform - December Release A First LookPivotal Platform - December Release A First Look
Pivotal Platform - December Release A First Look
 
Moving OBIEE to Oracle Analytics Cloud
Moving OBIEE to Oracle Analytics CloudMoving OBIEE to Oracle Analytics Cloud
Moving OBIEE to Oracle Analytics Cloud
 
Pivotal spring boot-cloud workshop
Pivotal   spring boot-cloud workshopPivotal   spring boot-cloud workshop
Pivotal spring boot-cloud workshop
 
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
WSO2 Platform Overview - WSO2 Meetup 01 - 16th Oct 2014
 
RIPEstat Public demo January 24, 2012
RIPEstat Public demo January 24, 2012RIPEstat Public demo January 24, 2012
RIPEstat Public demo January 24, 2012
 
Resume
ResumeResume
Resume
 
Building Applications Using the U2 Toolkit for .NET
Building Applications Using the U2 Toolkit for .NETBuilding Applications Using the U2 Toolkit for .NET
Building Applications Using the U2 Toolkit for .NET
 
Self service reporting on Hadoop using Actuate BIRT
Self service reporting on Hadoop using Actuate BIRTSelf service reporting on Hadoop using Actuate BIRT
Self service reporting on Hadoop using Actuate BIRT
 
IBM WebSphere Portal 6.1 Preview - What's New
IBM WebSphere Portal 6.1 Preview - What's NewIBM WebSphere Portal 6.1 Preview - What's New
IBM WebSphere Portal 6.1 Preview - What's New
 
IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001IBM - Developing portlets using Script portlet in WP 8001
IBM - Developing portlets using Script portlet in WP 8001
 
Bdi Systems
Bdi SystemsBdi Systems
Bdi Systems
 
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
Oracle JavaScript Extension Toolkit Web Components Bring Agility to App Devel...
 
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview
2018 06-05 - Tokyo Fitbit Developers - Fitbit SDK & Web API Overview
 

More from jaxLondonConference

Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...
Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...
Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...jaxLondonConference
 
Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...
Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...
Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...jaxLondonConference
 
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)jaxLondonConference
 
Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)
Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)
Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)jaxLondonConference
 
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...jaxLondonConference
 
How Java got its Mojo Back - James Governor (Redmonk)
How Java got its Mojo Back - James Governor (Redmonk)					How Java got its Mojo Back - James Governor (Redmonk)
How Java got its Mojo Back - James Governor (Redmonk) jaxLondonConference
 
Java Testing With Spock - Ken Sipe (Trexin Consulting)
Java Testing With Spock - Ken Sipe (Trexin Consulting)Java Testing With Spock - Ken Sipe (Trexin Consulting)
Java Testing With Spock - Ken Sipe (Trexin Consulting)jaxLondonConference
 
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
What makes Groovy Groovy  - Guillaume Laforge (Pivotal)What makes Groovy Groovy  - Guillaume Laforge (Pivotal)
What makes Groovy Groovy - Guillaume Laforge (Pivotal)jaxLondonConference
 
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...jaxLondonConference
 
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...jaxLondonConference
 
Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...
Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...
Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...jaxLondonConference
 
The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)jaxLondonConference
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)jaxLondonConference
 
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)jaxLondonConference
 
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...jaxLondonConference
 
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...jaxLondonConference
 
Large scale, interactive ad-hoc queries over different datastores with Apache...
Large scale, interactive ad-hoc queries over different datastores with Apache...Large scale, interactive ad-hoc queries over different datastores with Apache...
Large scale, interactive ad-hoc queries over different datastores with Apache...jaxLondonConference
 
Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...
Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...
Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...jaxLondonConference
 

More from jaxLondonConference (19)

Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...
Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...
Garbage Collection: the Useful Parts - Martijn Verburg & Dr John Oliver (jCla...
 
Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...
Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...
Conflict Free Replicated Data-types in Eventually Consistent Systems - Joel J...
 
JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)JVM Support for Multitenant Applications - Steve Poole (IBM)
JVM Support for Multitenant Applications - Steve Poole (IBM)
 
Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)
Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)
Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)
 
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...
Are Hypermedia APIs Just Hype? - Aaron Phethean (Temenos) & Daniel Feist (Mul...
 
How Java got its Mojo Back - James Governor (Redmonk)
How Java got its Mojo Back - James Governor (Redmonk)					How Java got its Mojo Back - James Governor (Redmonk)
How Java got its Mojo Back - James Governor (Redmonk)
 
Java Testing With Spock - Ken Sipe (Trexin Consulting)
Java Testing With Spock - Ken Sipe (Trexin Consulting)Java Testing With Spock - Ken Sipe (Trexin Consulting)
Java Testing With Spock - Ken Sipe (Trexin Consulting)
 
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
What makes Groovy Groovy  - Guillaume Laforge (Pivotal)What makes Groovy Groovy  - Guillaume Laforge (Pivotal)
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
 
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
The Java Virtual Machine is Over - The Polyglot VM is here - Marcus Lagergren...
 
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
Java EE 7 Platform: Boosting Productivity and Embracing HTML5 - Arun Gupta (R...
 
Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...
Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...
Exploring the Talend unified Big Data toolset for sentiment analysis - Ben Br...
 
The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)The Curious Clojurist - Neal Ford (Thoughtworks)
The Curious Clojurist - Neal Ford (Thoughtworks)
 
TDD at scale - Mash Badar (UBS)
TDD at scale - Mash Badar (UBS)TDD at scale - Mash Badar (UBS)
TDD at scale - Mash Badar (UBS)
 
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
Run Your Java Code on Cloud Foundry - Andy Piper (Pivotal)
 
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
Put your Java apps to sleep? Find out how - John Matthew Holt (Waratek)
 
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
Project Lambda: Functional Programming Constructs in Java - Simon Ritter (Ora...
 
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
Do You Like Coffee with Your dessert? Java and the Raspberry Pi - Simon Ritte...
 
Large scale, interactive ad-hoc queries over different datastores with Apache...
Large scale, interactive ad-hoc queries over different datastores with Apache...Large scale, interactive ad-hoc queries over different datastores with Apache...
Large scale, interactive ad-hoc queries over different datastores with Apache...
 
Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...
Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...
Designing Resilient Application Platforms with Apache Cassandra - Hayato Shim...
 

Recently uploaded

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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
"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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 

Recently uploaded (20)

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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
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)
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
"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
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 

Creating Data Driven Web Apps with BIRT - Pierre Richer (Actuate)

  • 1. Creating Data Driven Web Apps with BIRT Pierre Richer 1 Actuate Corporation © 2012
  • 2. Today’s Agenda and Goals • Introduction to BIRT • Designing BIRT Reports • Designer • APIs • Deploying BIRT • BIRT Viewer • Report Engine (Java) • JavaScript API • Questions 2 Actuate Corporation © 2012
  • 3. Introduction to BIRT 3 Actuate Corporation © 2012
  • 4. Actuate Launches the BIRT Project Actuate proposed and started BIRT Business Intelligence and Reporting Tools Project … a top-level Eclipse project Actuate Joins Eclipse Foundation as Strategic Developer and Board Member Adds BI and Reporting as Open Source Project Professional open source Primary development resources funded by Actuate Contributions from many sources IBM, Innovent Solutions and community 4 Actuate Corporation © 2012 AUGUST 2004
  • 5. BIRT Release History September 2004 BIRT Project proposal accepted, and project launched June 2005 1.0 Eclipse Report Designer, Report Engine, Chart Engine December 2005 2.0 Support for a wide variety of common layouts June 2006 2.1 Advanced parameters, ability to join data sets, … June 2007 2.2 Dynamic crosstab support, web services data source, … June 2008 2.3 JavaScript Debugger, BiDi Support, Charts in Crosstabs, … June 2009 2.5 Page aggregates, Multiple drill-downs in Charts, … June 2010 2.6 New charts, more chart control, developer productivity, … June 2011 3.7 POJO Runtime, Hive/Hadoop, Open Office emitters… June 2012 4.2 Maven Support, Excel Data Source, Relative Time Periods… June 2013 4.3 MongoDB & POJO ODAs, PPT & Word 2010 Support, XLSX Support… Ground-up initiative: Innovative approach to layout and design Developed in the open with community feedback at all stages 5 Actuate Corporation © 2012
  • 6. Business Intelligence and Reporting Tools A New Generation of Data Visualization Technology • Makes all data-driven content development easy • Modern, web-page design metaphor • Open and standards-based • Flexible with rich programmatic control • Full support for libraries and reuse • Foundation for a range of solutions Simplicity that makes simple layouts easy 6 Actuate Corporation © 2012 Power BIRT to create very complex layouts
  • 7. Designing BIRT Reports 7 Actuate Corporation © 2012
  • 8. BIRT Data Access • BIRT Offers many ways to get data • Standard Data Sources • Flat File (CSV, TSV, SSV, PSV) • MongoDB • Hive Data Source • Cassandra Scripted Data Source • JDBC Textual or Graphical • Web Service & XML- XPath syntax • XLS/XLSX • Scripted Data Source Written in Java or JavaScript • Open Data Access (ODA) DTP Project • Extensible JDBC Driver Framework 8 Actuate Corporation © 2012 Community Contributions GoogleDocs XML/A REST Multi-Flat File GitHub Twitter JSON Search Dropbox usage YQL Google Analytics LinkedIn Facebook FQL
  • 9. BIRT Formatting Capabilities • Listings, cross-tab, dashboard, pixelperfect, charts • Grouping, advanced aggregations, sub-totals, calculations • Multi-section and sub-reports • Conditional sections and logic • Full programmatic control and scripting • Embedded images • Dynamic hyperlinking • And much more! 9 Actuate Corporation © 2012
  • 10. BIRT Productivity Aids • Graphical layout and design • Query and metadata editors • Customizable cheat sheets and templates • Formatting builder • Grouping builder 10 Actuate Corporation © 2012
  • 11. BIRT Re-use and Productivity • Library support for publishing and sharing components • Leverages common standards • SQL • Java • JavaScript • XML • Cascading Style Sheets • Integrated debugger 11 Actuate Corporation © 2012
  • 12. BIRT Output Formats • HTML, PDF, MS Office, Open Office • Custom emitters : CSV, Text, … • Internationalization of labels and text • Localization of date and numeric fields • Support for Asian character sets and right-to-left display Web Viewer 12 Actuate Corporation © 2012 PDF Excel
  • 13. The BIRT Designer DEMO 13 Actuate Corporation © 2012
  • 14. High-Level BIRT Architecture BIRT Designer Eclipse Designer Eclipse DTP, WTP,… Chart Designer Design Engine XML Design Document BIRT Engine Generation Services Data Data 14 Actuate Corporation © 2012 Charting Engine Data Services Presentation Services HTML PDF Excel Word PowerPoint PostScript …
  • 15. High Level BIRT Architecture DE API Design Engine RE API Report Engine CE API Produces XML Report, Templates, and Library Designs Chart Engine Runs Reports and produces output – PDF, HTML, Doc, XLS, PS, PPT Etc Consume Chart EMF model and produces Chart Output. Supports 14 Main types and many sub types. Ouputs to PNG, JPG, BMP, SVG, PDF, SWT, and SWING All Engines can be ran with or without OSGi Core BIRT Open Source Products Report Designer Chart Builder Example Viewer Can be run outside of BIRT 15 Actuate Corporation © 2012
  • 16. Deploying BIRT Reports 16 Actuate Corporation © 2012
  • 17. Multiple Deployment Options BIRT Design BIRT onDemand BIRT Engine and APIs BIRT iHub 17 Actuate Corporation © 2012
  • 18. BIRT Web Viewer Copy WebViewerExample from the runtime download to the application server and rename it “birt” 18 Actuate Corporation © 2012
  • 19. BIRT Web Viewer URLs With viewer toolbar, pagination, etc.: http://localhost:8080/birt/frameset?__report=reportName.rptdesign As a straight HTML output: http://localhost:8080/birt/run?__report=reportName.rptdesign Other servlet mappings: preview, document, output, extract URL parameters include: id title showtitle toolbar navigationbar locale format report document parameterpage pagerange fittopage svg isnull islocale masterpage resourceFolder bookmark rtl page overwrite 19 Actuate Corporation © 2012
  • 20. BIRT Web Viewer URLs Output to PDF: http://localhost:8080/birt/frameset?__report=reportName.rptdesign&__format=p df To display a single report item as a reportlet: http://localhost:8080/birt/run?__report=SD.rptdesign&__bookmark=myTable&__i sreportlet=true 20 Actuate Corporation © 2012
  • 21. BIRT Viewer Tag Library Example JSP to embed viewer <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib uri="/birt.tld" prefix="birt" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>My Report - JSP</title> </head> <body> <birt:viewer id="birtViewer" reportDesign= "Sales Report Summary.rptdesign" pattern="frameset" height="450" width="700" format="html"></birt:viewer> </body> </html> 21 Actuate Corporation © 2012
  • 22. BIRT Viewer Tag Library Example JSP to embed parameters … <html> <style type="text/css"> .class1 { background-color:#ff0000; color: #ffffff; } </style> <body> Parameter Page<br> <birt:parameterPage id="report1" name="page1" reportDesign="cascade.rptdesign" isCustom="true" pattern="frameset"> Cascading Parameter1: <birt:paramDef id="5" name="customer" /> <br><br> Cascading Parameter2: <birt:paramDef id="6" name="order" cssClass="class1"/> <br><br> <input type="submit" name="submit" value="Submit form"/> <br><br> </birt:parameterPage> <br> </body> </html> 22 Actuate Corporation © 2012
  • 23. Report Engine API public class RunReport { Example – Running a report IReportEngine engine=null; IReportRunnable design = null; RunReport( String birtHome, String logFolder ) throws BirtException { EngineConfig config = null; //Configure the Engine and start the Platform config = new EngineConfig( ); config.setBIRTHome( birtHome ); //set log config config.setLogConfig(logFolder, Level.FINE); //start the Platform to load the appropriate plug-ins Platform.startup( config ); //get the factory from the platform IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY ); //create the engine engine = factory.createReportEngine( config ); } 23 Actuate Corporation © 2012
  • 24. Report Engine API public void run(String designName, String reportDocument) throws EngineException { design = engine.openReportDesign( designName ); IRunTask task = engine.createRunTask( design ); task.run( reportDocument ); task.close(); } public void shutdown() { engine.destroy(); Platform.shutdown(); } public static void main( String[] args ) { String designName = "Reports/Run/OrderStatus.rptdesign"; String reportDocument = "Reports/Run/OrderStatus.rptdocument"; String birtHome = "C:/birt-runtime-4_3_0/ReportEngine" ; String logFolder = "Reports/Logs"; try { RunReport rr = new RunReport( birtHome, logFolder ); rr.run( designName, reportDocument ); rr.shutdown(); } catch (Exception e) {e.printStackTrace();} System.out.println("RunReport: I am done!"); } 24 Actuate Corporation © 2012
  • 25. Report Engine API public class RunReportPDF { Example – Running and rendering a report IReportEngine engine=null; IReportRunnable design = null; RunReportPDF( String birtHome, String logFolder ) throws BirtException { EngineConfig config = null; //Configure the Engine and start the Platform config = new EngineConfig( ); config.setBIRTHome( birtHome ); //set log config config.setLogConfig(logFolder, Level.FINE); //start the Platform to load the appropriate plug-ins Platform.startup( config ); //get the factory from the platform IReportEngineFactory factory = (IReportEngineFactory) Platform.createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY ); //create the engine engine = factory.createReportEngine( config ); } 25 Actuate Corporation © 2012
  • 26. Report Engine API public void run(String designName, String reportDocument) throws EngineException { design = engine.openReportDesign( designName ); IRunTask task = engine.createRunTask( design ); task.run( reportDocument ); task.close(); } public void htmlRender( String docName, String htmlDoc) throws EngineException { //Open a report document IReportDocument iReportDocument = engine.openReportDocument(docName); IRenderTask task = engine.createRenderTask(iReportDocument); //Set Render Options HTMLRenderOption options = new HTMLRenderOption(); options.setOutputFileName( htmlDoc ); options.setOutputFormat("html"); options.setHtmlPagination( true ); task.setRenderOption(options); //Render Pages 2-5 //task.setPageNumber(4); task.setPageRange("2-5"); task.render(); } 26 Actuate Corporation © 2012
  • 27. Report Engine API public void pdfRender( String designName, String pdfDoc) throws EngineException { //Open a report design - use design to modify design, retrieve embedded images etc. IReportRunnable design = engine.openReportDesign( designName ); //Create task to run the report - use the task to execute and run the report IRunAndRenderTask task = engine.createRunAndRenderTask( design ); //Set parameters for the report task.setParameterValue( "Top Count", new Integer(5) ); task.setParameterValue( "Top Percentage", new Integer(25) ); task.validateParameters(); //Set rendering options - such as file output name and format, etc. PDFRenderOption options = new PDFRenderOption( ); options.setOutputFileName( pdfDoc ); options.setOutputFormat( "pdf" ); task.setRenderOption(options); //run the report task.run(); } 27 Actuate Corporation © 2012
  • 28. Report Engine API public void shutdown() { engine.destroy(); Platform.shutdown(); } public static void main( String[] args ) { String designName = "Reports/Run/OrderStatus.rptdesign"; String reportDocument = "Reports/Run/OrderStatus.rptdocument"; String birtHome = "C:/birt-runtime-4_3_0/ReportEngine" ; String logFolder = "Reports/Logs"; String htmlDocument = "C:/webapps/birt/OrderStatus.html"; String pdfDesignReport = "Reports/Run/TopNPercent.rptdesign"; String pdfDocument = "C:/webapps/birt/TopNPercent.pdf"; try { RunReportPDF runReport = new RunReportPDF( birtHome, logFolder, logFlag ); runReport.run( designName, reportDocument ); runReport.htmlRender(reportDocument, htmlDocument); runReport.pdfRender(pdfDesignReport, pdfDocument); runReport.shutdown(); } catch (BirtException e) {e.printStackTrace();} System.out.println("RunReport: I am done!"); } 28 Actuate Corporation © 2012
  • 29. Report Engine API with JSF public class birt2jsf { Example – Report Execution String executeReport(String param) throws EngineException { IReportEngine engine=null; EngineConfig config = null; try{ // start up Platform config = new EngineConfig( ); config.setLogConfig("/logs", java.util.logging.Level.FINEST); Platform.startup( config ); // create new Report Engine IReportEngineFactory factory = (IReportEngineFactory) Platform .createFactoryObject( IReportEngineFactory.EXTENSION_REPORT_ENGINE_FACTORY ); engine = factory.createReportEngine( config ); // open the report design IReportRunnable design = null; design = engine.openReportDesign("C:/webapps/JSF_2/test.rptdesign"); // create RunandRender Task IRunAndRenderTask task = engine.createRunAndRenderTask(design); // pass necessary parameters task.setParameterValue("Country", param); task.validateParameters(); 29 Actuate Corporation © 2012
  • 30. Report Engine API with JSF // set render options including output type HTMLRenderOption options = new HTMLRenderOption(); ByteArrayOutputStream outs = new ByteArrayOutputStream(); options.setOutputStream(outs); options.setImageHandler(new HTMLServerImageHandler()); options.setBaseImageURL("images"); options.setImageDirectory("C:/webapps/JSF_2/images"); options.setEmbeddable(true); options.setOutputFormat("html"); task.setRenderOption(options); // run task String output; task.run(); output = outs.toString(); task.close(); engine.destroy(); return output; }catch( Exception ex){ ex.printStackTrace(); return "Error"; } finally { Platform.shutdown( ); RegistryProviderFactory.releaseDefault(); } } } 30 Actuate Corporation © 2012
  • 31. Report Engine API with JSF @ManagedBean(name="birtBean") @SessionScoped public class BirtBean implements Serializable { private static final long serialVersionUID = 1L; private String name; public String getReport() { birt2jsf report = new birt2jsf( ); String reportHTML = null; try { reportHTML = report.executeReport(name); } catch (EngineException e) { e.printStackTrace(); } return reportHTML; } public String getName() { return name; } public void setName(String name) { this.name = name; } } 31 Actuate Corporation © 2012 Example – Bean
  • 32. Report Engine API with JSF Example – JSP Code <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"> <h:head> <title>BIRT JSF 2.0 Example</title> </h:head> <h:body> <h3>Enter Country</h3> <h:form> <h:inputText value="#{birtBean.name}"> </h:inputText> <h:commandButton value="View Report" action="page-a"> </h:commandButton> <h:outputText value="#{birtBean.report}" escape="false"/> </h:form> </h:body></html> 32 Actuate Corporation © 2012
  • 33. BIRT Viewer Toolkit (BVT) – Sneak Peek New product being released by Actuate for use with open-source (OS) BIRT. BVT should be released soon for download on BIRT Exchange. Key Features: • It’s FREE! • It uses the Actuate Viewer (Built on OS Viewer) • More modern look and feel • More seamless parameter entry screen • Calendar date-picker • It’s built on the latest BIRT version (4.3) • Includes JavaScript API (JSAPI) AJAX library for easier integration into applications of all types. 33 Actuate Corporation © 2012
  • 34. Running Reports with BVT The URL’s used with the OS viewer can still be used with BVT. With viewer toolbar, pagination, etc.: http://localhost:8080/BIRTViewerToolkit/frameset?__report=TableReport.rptdesign As a straight HTML output: http://localhost:8080/BIRTViewerToolkit/run?__report=TableReport.rptdesign Output to PDF: http://localhost:8080/BIRTViewerToolkit/frameset?__report=TableReport.rptdesign&__ format=pdf To display a single report item as a reportlet: http://localhost:8080/BIRTViewerToolkit/run?__report=SD.rptdesign&__bookmark=myT able 34 Actuate Corporation © 2012
  • 35. Running Reports with BVT Parameterized report with date picker: http://localhost:8080/BIRTViewerToolkit/frameset?__report=DynamicParameter.rptdesi gn What that looks like with the OS viewer: http://localhost:8080/birt/frameset?__report=DynamicParameter.rptdesign 35 Actuate Corporation © 2012
  • 36. BVT and JSAPI Example – JSAPI to view a report <html> <head> <script type="text/javascript" language="JavaScript src="http://localhost:8700/BIRTViewerToolkit/jsapi"></script> </head> <body onload="init();"> <div id="myDivContainer" style="border-width: 1px; border-style: solid;"></div> <script type="text/javascript" language="JavaScript"> var myViewer; function init() { actuate.load("viewer"); actuate.initialize( "http://localhost:8700/BIRTViewerToolkit/", null, null, null, createViewer ); } function createViewer() { myViewer = new actuate.Viewer( "myDivContainer" ); myViewer.setReportName("/reports/Customer Listing.rptdesign" ); myViewer.submit(); } </script> </body> </html> 36 Actuate Corporation © 2012
  • 37. BIRT Exchange Community Site Centralized hub for BIRT developers • Access demos, tutorials, tips and techniques, documentation… • Enables developers to be more productive and build applications faster • Marketplace for applications Explore • Search/sort • Rate, comment • Forums Download • Documentation • Software • Examples Contribute • BIRT designs, code • Technical tips • Contests 37 Actuate Corporation © 2012
  • 39. Actuate Products Built on BIRT BIRT Designer Pro: Enhanced emitters, HTML5 charts, flash charts, flash gadgets, flash maps, additional datasources, progressive viewing, etc. BIRT Interactive Viewer: Allows end users to add columns, apply formatting, move columns, add charts, sort, etc. BIRT 360: Create visually pleasing, interactive dashboards quickly an easily using BIRT report components, HTML5 & Flash gadgets, etc. BIRT Studio: Ad-hoc, web-based reporting tool for business users to create reports easily, without sending requests to IT. BIRT iHub: Deploy, manage, schedule, run, and distribute BIRT documents and web pages securely and easily. 39 Actuate Corporation © 2012