Date post: | 10-Dec-2014 |
Category: |
Technology |
Upload: | lynn-gayowski |
View: | 11,897 times |
Download: | 7 times |
1Actuate Corporation © 2009
Integrating BIRT Within Your Applications
Mica J. BlockDirector, Actuate Corporate Engineers
2Actuate Corporation © 2009
Agenda
• BIRT Overview
• BIRT Scripting
• BIRT Engine(s) Overview
• Deploying BIRT
• Deploying the BIRT Viewer
• Deploying a custom Servlet, which calls the BIRT APIs
• RCP Deployment
3Actuate Corporation © 2009
Design Engine
Report Engine
Chart Engine
Produces XML Report, Templates, and Library Designs
Produces XML Report, Templates, and Library Designs
Runs Reports and produces output – PDF, HTML, Doc, XLS, PS, PPT Etc
Runs Reports and produces output – PDF, HTML, Doc, XLS, PS, PPT Etc
Consume Chart EMF model and produces Chart Output. Supports 13 Main types and many sub types. Ouputs to PNG, JPG, BMP, SVG, PDF, SWT, and SWING
Consume Chart EMF model and produces Chart Output. Supports 13 Main types and many sub types. Ouputs to PNG, JPG, BMP, SVG, PDF, SWT, and SWING
DE API
RE API
CE API
Can be ran outside of OSGi
Report Designer Chart Builder Example Viewer
Can be ran outside of BIRT
Core BIRT Open Source ProductsCore BIRT Open Source Products
High Level BIRT Architecture
4Actuate Corporation © 2009
BIRT Designer
5Actuate Corporation © 2009
BIRT Report EngineBIRT Report EngineBIRT Report EngineBIRT Report Engine
PresentationServices
PresentationServices
GenerationServices
GenerationServices
DataServices
DataServices
ChartingEngine
ChartingEngine
BIRT Report DesignerBIRT Report Designer BIRT Report DesignerBIRT Report Designer
Report Design EngineReport Design Engine
EclipseReportDesigner
EclipseReportDesigner
ChartDesigner
ChartDesigner
Eclipse DTP,WTP,…
Eclipse DTP,WTP,…
High Level BIRT Architecture: APIs
XMLReportDesign
ReportDocument
HTMLPDFExcelWordPowerPointPostScript…
Data
Data
Custom Report Designer UI
Report Engine API
Open Data Access
Chart Engine API
Emitter API
Chart UI API
Scripting API
Design Engine API
6Actuate Corporation © 2009
BIRT Report EngineBIRT Report EngineBIRT Report EngineBIRT Report Engine
JavaScript Events
Optional Java Events
Generation Phase Presentation Phase
HTML
CSV
WORD
XLS
PS
PPT
RptDocumentReport
Document
BIRT Report DesignerBIRT Report Designer BIRT Report DesignerBIRT Report Designer Chart BuilderChart Builder Chart BuilderChart Builder
Report Design EngineReport Design Engine Charting EngineCharting Engine
RptDesignXML
Design File
BIRT Pipeline with respect to the APIs
7Actuate Corporation © 2009
BIRT Extensions Points
• BIRT is not just a tool but a framework.
• Predominant Extension Points.
• Emitter – Used to create additional output formats.
• ODA – DTP – Used to add customized Data Source Drivers
• Report Item – Used to extend the Palette with additional items.
• Chart Types – Used to add or extend chart types
8Actuate Corporation © 2009
Agenda
BIRT Scripting
9Actuate Corporation © 2009
Scripting
• BIRT JavaScript• Based on Mozilla Rhino
- This is Server Side Scripting not Browser Based Scripting• Two types of Scripting
• Expression Scripts - Scripts that return a data value. Available in the Expression Builder.
• Element Scripts – JavaScript methods that are called on events. Customize the behavior of the Report. Available in the Script view. Context of when the event occurs is important. Can also be implemented in Java.
• Element Scripts are Provided for Charts as well, but these scripts run at render time, not generation time.
• Java and JavaScript can be debugged within the designer
10Actuate Corporation © 2009
Expression Scripting
11Actuate Corporation © 2009
Expression Scripting – Example Locations
• Creating the display value for a report item• Creating a computed field in Data Explorer• Specifying a filter condition• Specifying a data series for a chart• Specifying a map condition• Specifying a highlight condition• Specifying a group key• Specifying a hyperlink• Specifying the URI for an image• Specifying dynamic data in a text control
12Actuate Corporation © 2009
Report Scripting
JavaScript Events
Generation Phase
Report Levelinitialize
beforeFactoryafterFactoryonPageStartonPageEnd
Data Source/SetbeforeOpenafterOpenonFetch
beforeCloseafterClose
Report ElementonPrepareonCreate
onPageBreak
Report Levelinitialize
beforeRenderafterRender
Presentation Phase
Report ElementonRender
Optional Java Events
Chart EventsonRender
..
Master PageonPageStartonPageEnd
13Actuate Corporation © 2009
Element Scripting
14Actuate Corporation © 2009
Element Event Handlers using Java
• A set of Adapters are supplied that allow most event handlers to be built in Java.
• The class is a property of the element.
• Can be debugged with JDT using the BIRT Report Configuration.
• BIRT 2.5 adds new instance setting
20Actuate Corporation © 2009
BIRT Scripting Demo
DEMO
21Actuate Corporation © 2009
Agenda
BIRT Engine(s) Overview
22Actuate Corporation © 2009
Report Engine
• Used to Generate Report Documents.
• Used to Generate Report Output (PDF, HTML, Paginated HTML,WORD, XLS, Postscript)
• Engine Creates task to implement operations.
• One or Two Phase operation (Run Task then Render Task or RunAndRenderTask)
• DataExtraction Task for retrieving Data from a report document.
• ParameterDetails Task for retrieving Parameter information, including dynamic and cascading information.
23Actuate Corporation © 2009
Report Engine Task
EngineConfig Set configuration variables such as Engine Home and Log configuration
ReportEngineGenerate one or more tasks
Open Report Design and Documents. Create Engine Task.
RptDesignXML
Design File
RptDesignXML
Design File
RptDesignXML
Design File
RptDocumentReport
Document
RptDocumentReport
Document
RptDocumentReport
Document
DataExtractionTask
GetParameterDefinitionTask
RunTask RenderTask
RunAndRenderTask
Retrieve Parameters and their properties
Does not support Pagination, TOC, Bookmarks.
Generate Paginated HTML, XLS, PDF Document, Postscript, XLS
Retrieve TOC and Bookmarks
Extract Data from Report Document
24Actuate Corporation © 2009
Design Engine
• Used to Generate/Modify Report Designs, Templates and Libraries.
• Can be used in conjunction with the RE API to modify designs on the fly.
• Can be used within BIRT Script to modify designs on the fly.
• Create and delete report elements.
• Put report elements into slots.
• Get and set parameter values.
• Retrieve metadata from report elements, properties and slots.
• Undo/Redo
• Semantic Checks on report designs.
25Actuate Corporation © 2009
Chart Engine - Two different Chart APIs
25
Optional Prepare Method. Called before Bind Data. In BIRT this sets up the Run Time Context
26Actuate Corporation © 2009
Chart EngineChart Engine
Chart Engine Flow – ChartEngine Generator class
26
Chart ModelChart Model 2. bind data2. bind data
3. build3. build
4. render4. render
Device RendererDevice
Renderer
1. prepare1. prepare
dv.SWT
dv.PNG
dv.JPG
dv.PDF
dv.SVG
dv.SWING
dv.BMP
27Actuate Corporation © 2009
Platform Startup Code for DE, CE and RE API
Design Engine SampleIDesignEngine engine = null;DesignConfig config = new DesignConfig( );config.setBIRTHome("C:/birt/birt-runtime-2_5_1/
ReportEngine");try{Platform.startup( config );IDesignEngineFactory factory = (IDesignEngineFactory)
Platform.createFactoryObject( IDesignEngineFactory.EXTENSIO
N_DESIGN_ENGINE_FACTORY );engine = factory.createDesignEngine( config );
Report Engine SampleIReportEngine engine=null;EngineConfig config = new EngineConfig();config.setBIRTHome("C:/birt/birt-runtime-2_5_1/
ReportEngine");try{Platform.startup( config );IReportEngineFactory factory = (IReportEngineFactory)
Platform.createFactoryObject( IReportEngineFactory.EXTENSION
_REPORT_ENGINE_FACTORY );engine = factory.createReportEngine( config );
Chart Engine SamplePlatformConfig pf = new PlatformConfig();
pf.setBIRTHome("C:/birt/birt-runtime-2_5_1/birt-runtime-2_5_1/ReportEngine");
ChartEngine ce = ChartEngine.instance(pf);
//non OSGi startup of CE
PlatformConfig pf = new PlatformConfig();
pf.setProperty("STANDALONE", true);
ChartEngine ce = ChartEngine.instance(pf);
Notes:
If you are using the APIs in an application that is already using OSGi and the BIRT plugins are deployed, alter the code like:
Confing.setBIRTHome(“”); and do not do a Platform.startup();
Only startup the platform once for the lifetime of your application.
29Actuate Corporation © 2009
Calling the DE API from the RE API/Report Script
RE API Code
IReportRunnable design = null;
//Open the report design
design = engine.openReportDesign("Reports/TopNPercent.rptdesign");
ReportDesignHandle report = (ReportDesignHandle) design.getDesignHandle( );
report.findElement(“table1”).drop();
beforeFactory Script
reportContext.getReportRunnable().
designHandle.getDesignHandle().
findElement("table1").drop();
Simple DE API exist for use in script as well.
30Actuate Corporation © 2009
Agenda
BIRT Deployment
31Actuate Corporation © 2009
BIRT Deployment Scenarios
APIs (DE API, CE API, RE API)
Web Viewer
J2EE AS
Custom Servlet
BIRT Tag Libs
RCP Application Standalone Application
Web ViewerPlugin
Paginated HTML, PDF, XLS, WORD, PostScript, TOC, Bookmarks, CSV
Chart Tag Libs
32Actuate Corporation © 2009
Main Web Viewer Servlet Mappings
Web Viewer Servlet Mappings
frameset
run
preview
Use this mapping to launch the complete AJAX based report viewer. Contains toolbar, navbar and table of contents features. Run and Render task are separated. This option will also create a rptdocument file.
Use this mapping to launch the viewer without the navbar, toolbar or table of contents. This mapping uses the RunAndRender task to create the output and does not support pagination and does not create a rptdocument. This mapping does use the AJAX framework to allow cancelling a report.
This mapping is used to RunAndRender a report directly to an output format, or to render an existing rptdocument directly to an output format. It does not use the AJAX framework, but will launch a parameter entry dialog.
33Actuate Corporation © 2009
WebViewerExample
plugins
logs
scriptlib
WEB-INF
lib
BIRT required runtime plug-ins.
The default location for BIRT logs.
Location for BIRT required Jars.
platform
configuration Location for OSGi configuration files.
report
webcontent
birt
ajax
pages
images
styles
Location for class files used in a Scripted Data Source.
Default location of Report Designs
JavaScript files used with the Viewer
JSP Fragments used to build the Viewer
Images used by the Viewer
CSS files used by the Viewer
BIRT WebViewer Structure
34Actuate Corporation © 2009
YourServletExample
plugins
logs
WEB-INF
lib
BIRT required runtime plug-ins. Copy from runtime.
The default location for BIRT logs.
Location for BIRT required Jars. Copy from Runtime.
platform
configuration Location for OSGi configuration files. Copy from runtime.
report
images
Default location of Report Designs
Default location for report images
Custom Servlet Deployment
Use Singleton to launch Design or Report Engine. Start Platform on
Servlet Startup and shutdown Platform on Servlet destroy.
http://wiki.eclipse.org/Servlet_Example_%28BIRT%29_2.1http://wiki.eclipse.org/Servlet_Example_%28BIRT%29_2.1
35Actuate Corporation © 2009
RCP Deployment
• Using the BIRT Plug-ins in Eclipse based applications
36Actuate Corporation © 2009
WebViewer Utility Class see RCPViewer Example
• WebViewer.display()
• See Example for Options.
• Used with external browser or SWT Browser Widget.
• Use the BIRT Runtime download and add the plugins to your project – See example target
37Actuate Corporation © 2009
Using the RE/DE API Plugins in an RCP application
• Do not set BIRT Home, Do not startup the Platform, and use engines as normal.
• See RCPEngine Example.
• Uses SWT Browser Widget.
• Use the BIRT Runtime download and add the plugins to your project – See example target
38Actuate Corporation © 2009
BIRT Engine and Deployment Demo
• http://www.birt-exchange.org/devshare/deploying-birt-reports/1061-birt-api-examples/#description
• http://www.birt-exchange.org/devshare/deploying-birt-reports/1060-scripting-event-handler-samples/#description
DEMO
39Actuate Corporation © 2009
BIRT Momentum: Publications
BIRT: A Field Guide to Reporting2nd Edition
BIRT: A Field Guide to Reporting2nd Edition
Integrating and Extending BIRT2nd Edition
Integrating and Extending BIRT2nd Edition
Practical Data Analysis and Reporting with BIRT
Practical Data Analysis and Reporting with BIRT
Eclipse BIRT: Business Intelligence und Reporting Tool
Eclipse BIRT: Business Intelligence und Reporting Tool
40Actuate Corporation © 2009
ResourcesBIRT 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• Applicationswww.birt-exchange.comwww.birt-exchange.com