1BIRT Best Practices
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
Christian Brell
Java, XML und Open Source seit 1998
) Competence Center)) Object Rangers )
Schulungen, Coaching, Untersttzung laufender Schlsselfertige RealisierungJ S f
) Software Factory )
BIRT Best Practices 2010 Orientation in Objects GmbH
Weiterbildungsberatung, Train & Solve-Programme
Methoden, Standards und Tools fr die Entwicklung von offenen, unternehmens-weiten Systemen
Java Projekte
Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing
von Java Software
Individualsoftware Pilot- und Migrationsprojekte Sanierung von Software Software Wartung
2
2Warum Best Practices?
Ein Bericht existiert selten allein Copy And Paste ist schlecht
Bericht baut auf Datenbank auf Starke Abhngigkeit von Bericht zu Datenbank
Verschiedene Ausgabeformate Komplexe Logik um Bericht auf Ausgabeformate zu optimieren
Entwickeln im Team
BIRT Best Practices 2010 Orientation in Objects GmbH
Entwickeln im Team Wartung und Weiterentwicklung von ursprnglichem Entwickler
geleistet?
3
Gliederung
Arbeit mit Libraries Templates BIRT JavaScriptBIRT JavaScript Event-Handler Datenbanken Security Checkliste fr Reportprojekte Zusammenfassung
BIRT Best Practices 2010 Orientation in Objects GmbH 4
3Libraries
Container fr wiederverwendbare Elemente
Modularisierung und Wiederverwendung mittels Libraries vonModularisierung und Wiederverwendung mittels Libraries von Data Sources Data Sets Styles Elemente
Bericht kann beliebig viele Libraries nutzen
BIRT Best Practices 2010 Orientation in Objects GmbH
Bericht kann beliebig viele Libraries nutzen Drag&Drop von Elementen in Bericht
nderungen im Lib fhrt zu nderung in den abhngigen Berichten
5
Styles
"Styles" zur Wiederverwendung von Formatierung Hybrid aus CSS und MS Word Styles
Styles erhalten Namen Styles knnen einzelnen Report Elementen zugewiesen werden
Beispiel Style mit Namen ColumnHeading erstellen Allen Spaltenberschriften zuweisen
BIRT Best Practices 2010 Orientation in Objects GmbH
Vordefinierte Styles erleichtern Formatierung Bsp: table-header entspricht allen Tabellenberschriften
6
4Libraries - Themes
Gruppierung von Styles zu Themes in Library
Pro Report kann ein Theme gewhlt werdenPro Report kann ein Theme gewhlt werden Nur Styles aus gewhltem Theme nutzbar
Themes sind voneinander unabhngig Knnen verschiedene Styles beinhalten
BIRT Best Practices 2010 Orientation in Objects GmbH 7
Libraries Best Practices
Mehrfache Libraries empfohlen Library fr Datenquellen: Datenbankverbindungen, Abfragen, Library fr Themes: Hinterlegen von Styles und Master Pagesy g y g Library fr Elemente: Wiederverwendbare Grids, Label, Tabellen,
Nur wiederverwendbare Elemente gehren in Library Lohnt wenn gleiches Element mehr als 1x auftaucht
Elemente in Library einfach halten Komplexe Elemente hufig nicht wiederverwendbar
BIRT Best Practices 2010 Orientation in Objects GmbH
Komplexe Elemente hufig nicht wiederverwendbar Features schwer zu warten
8
5Gliederung
Arbeit mit Libraries Templates BIRT JavaScriptBIRT JavaScript Event-Handler Datenbanken Security Checkliste fr Reportprojekte Zusammenfassung
BIRT Best Practices 2010 Orientation in Objects GmbH 9
Templates
Report in irgendeinem Stadium Startpunkt fr neuen Report
Gleiche Mglichkeiten wie Reports Einbinden von Libraries Einfgen von Datenquellen, Abfragen Tabellen Strukturelemente
Bei anlegen eines neuen Reports kann
BIRT Best Practices 2010 Orientation in Objects GmbH
Bei anlegen eines neuen Reports kannTemplate ausgewhlt werden
10
6Unterschiede Libraries und Templates
Reports verlieren ihre Verbindung zu verwendetem Template nderungen am Template gelten nur fr zuknftige Reports
Reports behalten ihre Verbindung zu Libraries nderung an Element aus Library spiegelt sich in allen Reports wieder
die dieses Element verwenden
Templates sind unfertige Reports
Libraries sind keine Reports
BIRT Best Practices 2010 Orientation in Objects GmbH
Libraries sind keine Reports
11
Templates Best Practices
Einsatz von Templates pro Reportprojekt Untersttzung der Reportdesigner durch definierten Ausgangspunkt
Template verlinkt Report bereits mit notwendigen Libraries Importiert ber Reports hinweg verwendete Elemente
Master-Pages Data-Sources Stukturelemente
Definiert evtl. bereits verwendeten Theme
BIRT Best Practices 2010 Orientation in Objects GmbH 12
7Gliederung
Arbeit mit Libraries Templates BIRT JavaScriptBIRT JavaScript Event-Handler Datenbanken Security Checkliste fr Reportprojekte Zusammenfassung
BIRT Best Practices 2010 Orientation in Objects GmbH 13
BIRT Scripting
Basiert auf Mozilla Rhino Script
Expressions (Ausdruckserstellung)Expressions (Ausdruckserstellung) Ausdrcke die einen einzelnen Werte zurck geben Rckgabewert ist implizit letzte Zeile die vor Beendigung erreicht wird
Kein return statement erlaubt! Anwendung mittels Expression Builder
Eventhandler (Method Scripting)Spter!
BIRT Best Practices 2010 Orientation in Objects GmbH
Spter!
14
8BIRT Scripting - Alltag
Hufig verwendete Funktionen pro Bericht nachprogrammiert Copy&Paste Reimplementierung pro Berichtp g p
Berichte mit Geschftslogik berfrachtet Teilweise nur schwer von Berichtslogik abzugrenzen
Wenig Untersttzung durch Entwicklungsumgebung Kein Syntaxhighlighting, keine Code-Completion
BIRT Best Practices 2010 Orientation in Objects GmbH 15
Funktionen schwer wartbar Kein berblick ber verwendete Funktionen
Trennung von Geschftslogik und Berichtsdesign
Auslagern oft verwendeter Skripte als Funktion in eigene Datei .js Datei enthlt RhinoScript Funktionen deklarierte Funktionen in Report nutzbarp
Trennung von Geschftslogik und Berichtsdesign Funktionen sind isoliert wart- und testbar
Junit?
Komplexe Logik aufwndig umzusetzen Wenig Untersttzung ber vorhandene Tools
Nur begrenztes Syntaxhighlighting
BIRT Best Practices 2010 Orientation in Objects GmbH
Keine Code-completion
Logik in Java programmieren und ber Rhino Script einbinden
16
9Gliederung
Arbeit mit Libraries Templates BIRT JavaScriptBIRT JavaScript Event-Handler Datenbanken Security Checkliste fr Reportprojekte Zusammenfassung
BIRT Best Practices 2010 Orientation in Objects GmbH 17
Event Handler Kurze Wiederholung
Bei Berichtsgenerierung werden Hook-Methoden aufgerufen
Beziehen sich auf einzelne ReportelementeBeziehen sich auf einzelne Reportelemente Bericht als ganzes Datenquellen und Datasets Elemente des Berichts
Implementierung in Java oder JavaScript
Generation Phase Presentation Phase
BIRT Best Practices 2010 Orientation in Objects GmbH 18
Report LevelInitialize
beforeFactoryafterFactory
Data Source/SetbeforeOpenafterOpenonFetch
beforeCloseafterClose
Report ElementonPrepareonCreate
Report LevelInitialize
beforeRenderafterRender
Report ElementonRender
Generation Phase Presentation Phase
10
Events - Run then Render Pipeline (Web viewer)
Generation PhaseInitialize onPrepareonPrepare
onPrepareTableRow
Report
beforeFactorybeforeOpenafterOpenonFetch
onPrepare
onCreate
beforeCloseafterClose
onCreateonCreate
RowDataItemData Set
afterFactory
BIRT Best Practices 2010 Orientation in Objects GmbH 19
afterFactory
Presentation PhasebeforeRender onRenderonRender
onRenderafterRender
Events Best Practice
initialize Wird als erstes aufgerufen globale Variablen initialisiereng Security Checks
beforeFactory Manipulieren der Reportstruktur
Z.B. Lschen von Elementen
beforeRender
BIRT Best Practices 2010 Orientation in Objects GmbH
Logik in Abhngigkeit des Ausgabeformats Z.B. Theme Switching (spter)
20
11
Events Best Practice
afterFactory, afterRender Cleanup
onCreate Elemente in Abhngigkeit der Daten verndern
onRender Elemente in Abhngigkeit der Daten und/oder des Ausgabeformats
ndern Grenanpassung fr PDF
BIRT Best Practices 2010 Orientation in Objects GmbH
p g
21
Events - Theme Switching
BIRT Best Practices 2010 Orientation in Objects GmbH 22
12
Gliederung
Arbeit mit Libraries Templates BIRT JavaScriptBIRT JavaScript Event-Handler Arbeit mit Datenbanken Security Checkliste fr Reportprojekte Zusammenfassung
BIRT Best Practices 2010 Orientation in Objects GmbH 23
Arbeit mit Datenbanken
Datenbankverbindung immer in Library auslagern
ffnen einer Datenbankverbindung teuerffnen einer Datenbankverbindung teuer Verbindung nicht von BIRT pro Lauf herstellen lassen
Besser Mglichkeiten der Laufzeitumgebung nutzen JNDI Datenbankverbindung ber ReportEngine API injizieren
Datenbanksystem optimiert auf Datenverarbeitung Filtern und Sortieren in Datenbank ist schneller!
BIRT Best Practices 2010 Orientation in Objects GmbH
Starke Abhngigkeit zwischen Report und Tabellenstruktur Entkoppelung durch Arbeit mit Views Entkoppelung durch Verwenden von Stored Procedures Delegieren an DB-Entwickler
24
13
Gliederung
Arbeit mit Libraries Templates BIRT JavaScriptBIRT JavaScript Event-Handler Arbeit mit Datenbanken Security Checkliste fr Reportprojekte Zusammenfassung
BIRT Best Practices 2010 Orientation in Objects GmbH 25
Security
Visibility meist kein Mittel um Daten zu verstecken .rptdocument enthlt Daten aller Reportelemente Besser Element in beforeFactory Event aus Report lscheny p
Parameterinjektion Keine Reportparameter ber JavaScript in Abfrage basteln
BIRT Best Practices 2010 Orientation in Objects GmbH
Keine Reportparameter ber JavaScript in Abfrage basteln Nur ber Parameter-Tab in Dataset verlinken
Reportdesign ffentlich? Aktive Suche nach Schwachstellen mglich
26
14
Gliederung
Arbeit mit Libraries Templates BIRT JavaScriptBIRT JavaScript Event-Handler Datenbanken Security Checkliste fr Reportprojekte Zusammenfassung
BIRT Best Practices 2010 Orientation in Objects GmbH 27
Checkliste fr Reportprojekte
Requirement-Analyse fr Reports durchfhren
Namenskonventionen festgelegenNamenskonventionen festgelegen
Verzeichnisstruktur fr Projekt festgelegen
Report- und Funktionsbibliotheken anlegen
Laufzeitumgebung (Server) festlegen
BIRT Best Practices 2010 Orientation in Objects GmbH
Datenzugriffe spezifizieren (SQL-Query vs. Stored Procedures, XML,..)
28
15
Checkliste fr Reportprojekte - 2
Wiederverwendung evtl. bestehender Java Klassen analysieren
Mehrsprachigkeit?Mehrsprachigkeit?
Templates zur Untersttzung der Entwickler erstellen
Templates zur Reportdokumentation anfertigen (Word, Wiki, )
Testplan fr fertige Reports entwickeln
BIRT Best Practices 2010 Orientation in Objects GmbH
Projekt fr Bugtracking Tool aufsetzen (Jira, Bugzilla, )
29
Gliederung
Arbeit mit Libraries Templates BIRT JavaScriptBIRT JavaScript Event-Handler Datenbanken Security Checkliste fr Reportprojekte Zusammenfassung
BIRT Best Practices 2010 Orientation in Objects GmbH 30
16
Zusammenfassung
JavaScript sehr mchtiges Werkzeug Entwicklung komplexer Logik besser in Java
Einsatz von Libraries dringend empfohlen Templates knnen Arbeitsalltag deutlich vereinfachen
Erstellen von Report- und Funktionsbibliotheken iterativer Prozess Regelmiger Austausch wichtig Refactoring
BIRT Best Practices 2010 Orientation in Objects GmbH
Komplexitt wchst mit Gre des Projekts Ebenso Wichtigkeit einer strukturierten Vorgehensweise Hufig schnell mit 2 Berichten begonnen, dann ?
31
Literaturhinweise
BIRT: A Field Guide to Reporting (Revised) Broschiert: 794 Seiten Addison Wesley Erscheinungsdat: 28. August 2008 Sprache: Englisch ISBN: 978-0321580276
Integrating and Extending BIRT (Revised) Broschiert: 724 Seiten Addison Wesley Erscheinungsdat: 7 August 2008
BIRT Best Practices 2010 Orientation in Objects GmbH 32
Erscheinungsdat: 7. August 2008 Sprache: Englisch ISBN: 978-0321580306
17
Literaturhinweise
Le BIRT Experts Guide to BIRT Best Practices Le BIRT Expert s Guide to BIRT Best Practices David Mehi, eBook Erscheinungsdatum: 2009 (fortlaufend
aktualisiert) Sprache: Englisch Bezugsquelle: http://www.lebirtexpert.com
BIRT Best Practices 2010 Orientation in Objects GmbH 33
BIRT User Group Mannheim
Interessiert an regelmigem Austausch zum Thema BIRT?
Grndung der BIRT User Group Mannheim im Anschluss an ActuateGrndung der BIRT User Group Mannheim im Anschluss an ActuateKundentag (heute, hier, 17:30 )
BIRT Best Practices 2010 Orientation in Objects GmbH 34
18
Mehr von OIO zum Thema
Schulung: Reporting mit Eclipse BIRT http://www.oio.de/seminar/open-source/eclipse-birt-reporting-
schulung.htm
Vortrag Jax2009: Eclipse BIRT Day: BIRT within Java Enterprise http://www.oio.de/m/konf/jax2009/BIRT-Enterprise-Architektur.pdf
Vortrag W-Jax2006: Reporting mit Eclipse BIRT http://www.oio.de/m/konf/wjax2006/ReportingMitEclipseBIRT-final.pdf
BIRT Best Practices 2010 Orientation in Objects GmbH 35
Vielen Dank fr ihre Aufmerksamkeit !
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
19
? ??? ?
???
Fragen ?
Orientation in Objects GmbH
Weinheimer Str. 6868309 Mannheim
??