+ All Categories
Home > Documents > BIRT Best Practices - OIO€¦ · 1 BIRT Best Practices Orientation in Objects GmbH Weinheimer Str....

BIRT Best Practices - OIO€¦ · 1 BIRT Best Practices Orientation in Objects GmbH Weinheimer Str....

Date post: 19-Oct-2020
Category:
Upload: others
View: 6 times
Download: 0 times
Share this document with a friend
19
BIRT Best Practices Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de [email protected] Christian Brell Java, XML und Open Source seit 1998 ) Competence Center) ) Object Rangers ) Schulungen, Coaching, Unterstützung laufender Schlüsselfertige Realisierung ) Software Factory ) BIRT Best Practices © 2010 Orientation in Objects GmbH Weiterbildungsberatung, Train & Solve-Programme Methoden, Standards und Tools für 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
Transcript
  • 1

    BIRT Best Practices

    Orientation in Objects GmbH

    Weinheimer Str. 6868309 Mannheim

    [email protected]

    Christian Brell

    Java, XML und Open Source seit 1998

    ) Competence Center)) Object Rangers )

    • Schulungen, Coaching, • Unterstützung laufender• Schlüsselfertige RealisierungJ S f

    ) Software Factory )

    BIRT Best Practices© 2010 Orientation in Objects GmbH

    Weiterbildungsberatung, Train & Solve-Programme

    • Methoden, Standards und Tools für 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

  • 2

    Warum Best Practices?

    • Ein Bericht existiert selten allein– Copy And Paste ist schlecht

    • Bericht baut auf Datenbank auf– Starke Abhängigkeit 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 ursprünglichem Entwickler

    geleistet?

    3

    Gliederung

    • Arbeit mit Libraries• Templates• BIRT JavaScriptBIRT JavaScript• Event-Handler• Datenbanken• Security• Checkliste für Reportprojekte• Zusammenfassung

    BIRT Best Practices© 2010 Orientation in Objects GmbH 4

  • 3

    Libraries

    • „Container“ für 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 führt zu Änderung in den abhängigen Berichten

    5

    Styles

    • "Styles" zur Wiederverwendung von Formatierung • Hybrid aus CSS und MS Word Styles

    • Styles erhalten Namen• Styles können einzelnen Report Elementen zugewiesen werden

    • Beispiel– Style mit Namen ColumnHeading erstellen– Allen Spaltenüberschriften zuweisen

    BIRT Best Practices© 2010 Orientation in Objects GmbH

    • Vordefinierte Styles erleichtern Formatierung– Bsp: table-header entspricht allen Tabellenüberschriften

    6

  • 4

    Libraries - Themes

    • Gruppierung von Styles zu Themes in Library

    • Pro Report kann ein Theme gewählt werdenPro Report kann ein Theme gewählt werden– Nur Styles aus gewähltem Theme nutzbar

    • Themes sind voneinander unabhängig– Können verschiedene Styles beinhalten

    BIRT Best Practices© 2010 Orientation in Objects GmbH 7

    Libraries – Best Practices

    • Mehrfache Libraries empfohlen– Library für Datenquellen: Datenbankverbindungen, Abfragen,…– Library für Themes: Hinterlegen von Styles und Master Pagesy g y g– Library für Elemente: Wiederverwendbare Grids, Label, Tabellen, …

    • Nur wiederverwendbare Elemente gehören in Library– Lohnt wenn gleiches Element mehr als 1x auftaucht

    • Elemente in Library einfach halten– Komplexe Elemente häufig nicht wiederverwendbar

    BIRT Best Practices© 2010 Orientation in Objects GmbH

    Komplexe Elemente häufig nicht wiederverwendbar– Features schwer zu warten

    8

  • 5

    Gliederung

    • Arbeit mit Libraries• Templates• BIRT JavaScriptBIRT JavaScript• Event-Handler• Datenbanken• Security• Checkliste für Reportprojekte• Zusammenfassung

    BIRT Best Practices© 2010 Orientation in Objects GmbH 9

    Templates

    • Report in irgendeinem Stadium– Startpunkt für neuen Report

    • Gleiche Möglichkeiten wie Reports– Einbinden von Libraries– Einfügen 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 ausgewählt werden

    10

  • 6

    Unterschiede Libraries und Templates

    • Reports verlieren ihre Verbindung zu verwendetem Template– Änderungen am Template gelten nur für zukünftige 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– Unterstützung 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

  • 7

    Gliederung

    • Arbeit mit Libraries• Templates• BIRT JavaScriptBIRT JavaScript• Event-Handler• Datenbanken• Security• Checkliste für Reportprojekte• Zusammenfassung

    BIRT Best Practices© 2010 Orientation in Objects GmbH 13

    BIRT Scripting

    • Basiert auf Mozilla Rhino Script

    • Expressions (Ausdruckserstellung)Expressions (Ausdruckserstellung)– Ausdrücke die einen einzelnen Werte zurück geben– Rückgabewert ist implizit letzte Zeile die vor Beendigung erreicht wird

    • Kein return statement erlaubt!– Anwendung mittels Expression Builder

    • Eventhandler (Method Scripting)Später!

    BIRT Best Practices© 2010 Orientation in Objects GmbH

    – Später!

    14

  • 8

    BIRT Scripting - Alltag

    • Häufig verwendete Funktionen pro Bericht nachprogrammiert– Copy&Paste– Reimplementierung pro Berichtp g p

    • Berichte mit Geschäftslogik überfrachtet– Teilweise nur schwer von Berichtslogik abzugrenzen

    • Wenig Unterstützung durch Entwicklungsumgebung– Kein Syntaxhighlighting, keine Code-Completion

    BIRT Best Practices© 2010 Orientation in Objects GmbH 15

    Funktionen schwer wartbarKein Überblick über verwendete Funktionen

    Trennung von Geschäftslogik und Berichtsdesign

    • Auslagern oft verwendeter Skripte als Funktion in eigene Datei– .js Datei enthält RhinoScript Funktionen– deklarierte Funktionen in Report nutzbarp

    • Trennung von Geschäftslogik und Berichtsdesign– Funktionen sind isoliert wart- und testbar

    • Junit?

    • Komplexe Logik aufwändig umzusetzen– Wenig Unterstützung ü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

  • 9

    Gliederung

    • Arbeit mit Libraries• Templates• BIRT JavaScriptBIRT JavaScript• Event-Handler• Datenbanken• Security• Checkliste für 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. Löschen von Elementen

    • beforeRender

    BIRT Best Practices© 2010 Orientation in Objects GmbH

    – Logik in Abhängigkeit des Ausgabeformats• Z.B. Theme Switching (später)

    20

  • 11

    Events – Best Practice

    • afterFactory, afterRender– Cleanup

    • onCreate– Elemente in Abhängigkeit der Daten verändern

    • onRender– Elemente in Abhängigkeit der Daten und/oder des Ausgabeformats

    ändern• Größenanpassung für 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 für Reportprojekte• Zusammenfassung

    BIRT Best Practices© 2010 Orientation in Objects GmbH 23

    Arbeit mit Datenbanken

    • Datenbankverbindung immer in Library auslagern

    • Öffnen einer Datenbankverbindung teuerÖffnen einer Datenbankverbindung teuer– Verbindung nicht von BIRT pro Lauf herstellen lassen

    • Besser Möglichkeiten 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 Abhängigkeit 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 für Reportprojekte• Zusammenfassung

    BIRT Best Practices© 2010 Orientation in Objects GmbH 25

    Security

    • Visibility meist kein Mittel um Daten zu verstecken – .rptdocument enthält Daten aller Reportelemente – Besser Element in beforeFactory Event aus Report löscheny 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 möglich

    26

  • 14

    Gliederung

    • Arbeit mit Libraries• Templates• BIRT JavaScriptBIRT JavaScript• Event-Handler• Datenbanken• Security• Checkliste für Reportprojekte• Zusammenfassung

    BIRT Best Practices© 2010 Orientation in Objects GmbH 27

    Checkliste für Reportprojekte

    • Requirement-Analyse für Reports durchführen

    • Namenskonventionen festgelegenNamenskonventionen festgelegen

    • Verzeichnisstruktur für 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 für Reportprojekte - 2

    • Wiederverwendung evtl. bestehender Java Klassen analysieren

    • Mehrsprachigkeit?Mehrsprachigkeit?

    • Templates zur Unterstützung der Entwickler erstellen

    • Templates zur Reportdokumentation anfertigen (Word, Wiki, …)

    • Testplan für fertige Reports entwickeln

    BIRT Best Practices© 2010 Orientation in Objects GmbH

    • Projekt für Bugtracking Tool aufsetzen (Jira, Bugzilla, …)

    29

    Gliederung

    • Arbeit mit Libraries• Templates• BIRT JavaScriptBIRT JavaScript• Event-Handler• Datenbanken• Security• Checkliste für Reportprojekte• Zusammenfassung

    BIRT Best Practices© 2010 Orientation in Objects GmbH 30

  • 16

    Zusammenfassung

    • JavaScript sehr mächtiges Werkzeug– Entwicklung komplexer Logik besser in Java

    • Einsatz von Libraries dringend empfohlen– Templates können Arbeitsalltag deutlich vereinfachen

    • Erstellen von Report- und Funktionsbibliotheken iterativer Prozess– Regelmäßiger Austausch wichtig– Refactoring

    BIRT Best Practices© 2010 Orientation in Objects GmbH

    • Komplexität wächst mit Größe des Projekts– Ebenso Wichtigkeit einer strukturierten Vorgehensweise– Häufig 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 Expert‘s 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 regelmäßigem Austausch zum Thema BIRT?

    • Gründung der BIRT User Group Mannheim im Anschluss an ActuateGründung 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 für ihre Aufmerksamkeit !

    Orientation in Objects GmbH

    Weinheimer Str. 6868309 Mannheim

    [email protected]

  • 19

    ? ??? ?

    ???

    Fragen ?

    Orientation in Objects GmbH

    Weinheimer Str. 6868309 Mannheim

    [email protected]

    ??


Recommended