BIRT Best Practices. Java, XML und Open Source seit 1998. ) Software Factory ) Christian Brell. Schlüsselfertige Realisierung von Java Software



Ähnliche Dokumente
Struts 2 Das Imperium schlägt zurück?

Last- und Stresstest mit the Grinder 3

Reporting mit Eclipse BIRT

Issue Tracker & Wiki

Atlassian Git Essentials Nahtlose Entwicklungsworkflows aus einer Hand

JasperReports vs. BIRT

High Performance BIRT Reports

BIRT in Enterprise Architekturen

teischl.com Software Design & Services e.u. office@teischl.com

Kurzeinführung Excel2App. Version 1.0.0

INDIVIDUELLE SOFTWARELÖSUNGEN CUSTOMSOFT CS GMBH

Microsoft SharePoint 2013 Designer

StuPro-Seminar Dokumentation in der Software-Wartung. StuPro-Seminar Probleme und Schwierigkeiten in der Software-Wartung.

Datenhaltung für Android Model First Christian Ingenhaag, Frederik Götz, Carl Steeg

IAWWeb PDFManager. - Kurzanleitung -

Tevalo Handbuch v 1.1 vom

White Paper WinLine "Business Intelligence"

Vodafone Conferencing Meeting erstellen

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Ein subjektiver Vergleich zwischen SSIS und Kettle mit Ausblick auf die Generierung von BI-Lösungen

HMS. Statistiken mit SAS ins Internet. HMS Analytical Software GmbH - Johannes Lang

Anleitung zur Installation und Verwendung von eclipseuml 2.1.0

Jeopardy and andere Quizformate im bilingualen Sachfachunterricht Tipps zur Erstellung mit Powerpoint

OP-LOG

Auslesen der Fahrtdaten wiederholen Schritt für Schritt erklärt (Funktion Abfrage zur Datensicherung erstellen )

Agile Vorgehensmodelle in der Softwareentwicklung: Scrum

CVR Seniorentreff vom 04. und Serienbriefe/Seriendruck. Serienbriefe / Seriendruck

Internet online Update (Internet Explorer)

Internet Explorer Version 6

3. GLIEDERUNG. Aufgabe:

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

Task: Nmap Skripte ausführen

Variablen & erweiterte Aktionen nutzen

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen mit SQL Server-Daten

IVS Arbeitsgruppe Softwaretechnik Abschnitt Management komplexer Integrationslösungen

Java Enterprise Architekturen Willkommen in der Realität

20. DOAG-Konferenz. Flexible Berichtsgestaltung für die Oracle E-Business Suite mit dem Oracle BI Publisher

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Werkzeugbasierte Entwicklung von Benutzeroberflächen mit CDA-Templates und ART DECOR

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Projektmanagementsoftware: Standard vs. Individual

Skrill Integra-on bei Kontakt

Macher Solutions Produktinformation SAP Crystal Reports 2011

Excel Pivot-Tabellen 2010 effektiv

BEO-SANKTIONSPRÜFUNG Eine Einführung zum Thema Sanktionsprüfung und eine Übersicht zur BEO-Lösung.

Netzwerkeinstellungen unter Mac OS X

Web Interface für Anwender

Projektmanagement in Outlook integriert

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Hibernate Search. Unterstützung laufender Java Projekte. Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE

Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen. Wir bringen Qualität. Wir beraten Sie. Wir unterstützen Sie. Wir schaffen Lösungen

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

Database Exchange Manager. Infinqa IT Solutions GmbH, Berlin Stralauer Allee Berlin Tel.:+49(0) Fax.:+49(0)

ADDISON tse:nit Hinweise zum Umstieg von SQL 2000 auf SQL 2008 im tse:nit Umfeld

Acceptor-Connector. Acceptor-Connector

Adminer: Installationsanleitung

Der frühe Tester fängt den Bug

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

- Öffnen Sie Ihren Internet-Browser und geben Sie nacheinander folgende Adressen ein:

Statistikreport für Sozialabteilungen von Zürcher Gemeinden Atelierbeitrag Statistiktage 2013

Matrix42. Use Case - Inventory. Version Februar

JSP Grundlagen. JEE Vorlesung Teil 5. Ralf Gitzel

Kontakte mit MS-Outlook als Mail versenden Inhalt

IntelliRestore Seedload und Notfallwiederherstellung

Internet online Update (Mozilla Firefox)

Ablauf. Redaktions-Schulung. Schulungs Unterlagen. Typo3

Psyprax GmbH. Netzwerk Installation unter XP. Wichtig für alle Netzwerkinstallationen: Psyprax GmbH

Quick Guide ProServe 6.0

SAP NetWeaver Gateway. 2013

ARCWAY Cockpit 3.4. Standardbericht und Formatvorlagen. ReadMe

Web-basierte Benutzerschnittstellen für Embedded Systeme: Eine Benutzerschnittstelle drei Sichtweisen

Graphen in Apex von Thomas Hernando.

Erstellung von Word und Excel Berichten mit Eclipse BIRT

HINWEISE ZUR ARBEIT IM LABOR

Verbinden von IBM Informix mit Openoffice mittels JDBC

Bedienungsanleitung PC-Konfigurationssoftware des ID Inclinometers

Werkzeuge für Datenbank Handwerker: IBM Data Studio und IBM Optim QWT

Agile Ressourcenplanung

Präsentation Von Laura Baake und Janina Schwemer

Managed Services als strategische Lösung. Typische Aufgaben. Wir schaffen Ihnen Freiräume!

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Online-Publishing mit HTML und CSS für Einsteigerinnen

So importieren Sie einen KPI mithilfe des Assistenten zum Erstellen einer Scorecard

OWB 10.2 Experts im Einsatz: Automatisierung von Designschritten bei der Bayer Healthcare AG. Referent: Lutz Bauer, Senior Systemberater, MT AG

Anwendungbeispiel Entity Data Connector

Loggen Sie sich in Ihrem teamspace Team ein, wechseln Sie bitte zur Verwaltung und klicken Sie dort auf den Punkt Synchronisation.

VOBS Typo3 Kurzanleitung Foto upload anlegen in 7 einfachen Schritten

Netzgestalten

==============================!" ==

Dr. Klaus Körmeier BlueBridge Technologies AG

Das Pflichtenheft. Dipl.- Ing. Dipl.-Informatiker Dieter Klapproth Ains A-Systemhaus GmbH Berlin

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Diese Programm ist für Hausverwaltungen, Kleingärtner Vereine gedacht und besteht eigentlich aus drei Programmen:

25 Import der Beispiele

novapro Open Audittrail Report

IMS - Learning Design

Version White Paper ZS-TimeCalculation und die Zusammenarbeit mit dem iphone, ipad bzw. ipod Touch

Transkript:

Christian Brell Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) Software Factory ) ) Object Rangers ) ) Competence Center) Schlüsselfertige Realisierung von Java Software Individualsoftware Pilot- und Migrationsprojekte Sanierung von Software Software Wartung Unterstützung laufender Java Projekte Perfect Match Rent-a-team Coaching on the project Inhouse Outsourcing Schulungen, Coaching, Weiterbildungsberatung, Train & Solve-Programme Methoden, Standards und Tools für die Entwicklung von offenen, unternehmensweiten Systemen 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 Wartung und Weiterentwicklung von ursprünglichem Entwickler geleistet? 3 Gliederung Arbeit mit Libraries Templates BIRT JavaScript Event-Handler Datenbanken Security Checkliste für Reportprojekte Zusammenfassung 4

Libraries Container für wiederverwendbare Elemente Modularisierung und Wiederverwendung mittels Libraries von Data Sources Data Sets Styles Elemente 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 Vordefinierte Styles erleichtern Formatierung Bsp: table-header entspricht allen Tabellenüberschriften 6

Libraries - Themes Gruppierung von Styles zu Themes in Library Pro Report kann ein Theme gewählt werden Nur Styles aus gewähltem Theme nutzbar Themes sind voneinander unabhängig Können verschiedene Styles beinhalten 7 Libraries Best Practices Mehrfache Libraries empfohlen Library für Datenquellen: Datenbankverbindungen, Abfragen, Library für Themes: Hinterlegen von Styles und Master Pages 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 Features schwer zu warten 8

Gliederung Arbeit mit Libraries Templates BIRT JavaScript Event-Handler Datenbanken Security Checkliste für Reportprojekte Zusammenfassung 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 Template ausgewählt werden 10

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 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 12

Gliederung Arbeit mit Libraries Templates BIRT JavaScript Event-Handler Datenbanken Security Checkliste für Reportprojekte Zusammenfassung 13 BIRT Scripting Basiert auf Mozilla Rhino Script 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! 14

BIRT Scripting - Alltag Häufig verwendete Funktionen pro Bericht nachprogrammiert Copy&Paste Reimplementierung pro Bericht Berichte mit Geschäftslogik überfrachtet Teilweise nur schwer von Berichtslogik abzugrenzen Wenig Unterstützung durch Entwicklungsumgebung Kein Syntaxhighlighting, keine Code-Completion Funktionen schwer wartbar Kein Überblick über verwendete Funktionen 15 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 nutzbar 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 Keine Code-completion Logik in Java programmieren und über Rhino Script einbinden 16

Gliederung Arbeit mit Libraries Templates BIRT JavaScript Event-Handler Datenbanken Security Checkliste für Reportprojekte Zusammenfassung 17 Event Handler Kurze Wiederholung Bei Berichtsgenerierung werden Hook-Methoden aufgerufen Beziehen sich auf einzelne Reportelemente Bericht als ganzes Datenquellen und Datasets Elemente des Berichts Implementierung in Java oder JavaScript Generation Phase Presentation Phase Report Level Initialize beforefactory afterfactory Data Source/Set beforeopen afteropen onfetch beforeclose afterclose Report Element onprepare oncreate Report Level Initialize beforerender afterrender Report Element onrender 18

Events - Run then Render Pipeline (Web viewer) Initialize beforefactory afterfactory onprepare oncreate onprepare oncreate onprepare oncreate Generation Phase beforeopen afteropen onfetch beforeclose afterclose Report Table Row DataItem Data Set beforerender onrender afterrender onrender Presentation Phase onrender 19 Events Best Practice initialize Wird als erstes aufgerufen globale Variablen initialisieren Security Checks beforefactory Manipulieren der Reportstruktur Z.B. Löschen von Elementen beforerender Logik in Abhängigkeit des Ausgabeformats Z.B. Theme Switching (später) 20

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 21 Events - Theme Switching 22

Gliederung Arbeit mit Libraries Templates BIRT JavaScript Event-Handler Arbeit mit Datenbanken Security Checkliste für Reportprojekte Zusammenfassung 23 Arbeit mit Datenbanken Datenbankverbindung immer in Library auslagern Ö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! Starke Abhängigkeit zwischen Report und Tabellenstruktur Entkoppelung durch Arbeit mit Views Entkoppelung durch Verwenden von Stored Procedures Delegieren an DB-Entwickler 24

Gliederung Arbeit mit Libraries Templates BIRT JavaScript Event-Handler Arbeit mit Datenbanken Security Checkliste für Reportprojekte Zusammenfassung 25 Security Visibility meist kein Mittel um Daten zu verstecken.rptdocument enthält Daten aller Reportelemente Besser Element in beforefactory Event aus Report löschen Parameterinjektion Keine Reportparameter über JavaScript in Abfrage basteln Nur über Parameter-Tab in Dataset verlinken Reportdesign öffentlich? Aktive Suche nach Schwachstellen möglich 26

Gliederung Arbeit mit Libraries Templates BIRT JavaScript Event-Handler Datenbanken Security Checkliste für Reportprojekte Zusammenfassung 27 Checkliste für Reportprojekte Requirement-Analyse für Reports durchführen Namenskonventionen festgelegen Verzeichnisstruktur für Projekt festgelegen Report- und Funktionsbibliotheken anlegen Laufzeitumgebung (Server) festlegen Datenzugriffe spezifizieren (SQL-Query vs. Stored Procedures, XML,..) 28

Checkliste für Reportprojekte - 2 Wiederverwendung evtl. bestehender Java Klassen analysieren Mehrsprachigkeit? Templates zur Unterstützung der Entwickler erstellen Templates zur Reportdokumentation anfertigen (Word, Wiki, ) Testplan für fertige Reports entwickeln Projekt für Bugtracking Tool aufsetzen (Jira, Bugzilla, ) 29 Gliederung Arbeit mit Libraries Templates BIRT JavaScript Event-Handler Datenbanken Security Checkliste für Reportprojekte Zusammenfassung 30

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 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 Sprache: Englisch ISBN: 978-0321580306 32

Literaturhinweise Le BIRT Expert s Guide to David Mehi, ebook Erscheinungsdatum: 2009 (fortlaufend aktualisiert) Sprache: Englisch Bezugsquelle: http://www.lebirtexpert.com 33 BIRT User Group Mannheim Interessiert an regelmäßigem Austausch zum Thema BIRT? Gründung der BIRT User Group Mannheim im Anschluss an Actuate Kundentag (heute, hier, 17:30 ) 34

Mehr von OIO zum Thema Schulung: Reporting mit Eclipse BIRT http://www.oio.de/seminar/open-source/eclipse-birt-reportingschulung.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 35 Vielen Dank für ihre Aufmerksamkeit! Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de

???? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de? Fragen??