26
PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Embed Size (px)

Citation preview

Page 1: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

PDF Erstellung mit APEX - eine kostenlose Alternative

Dietmar AustOpal-Consulting, Köln

1. Dezember 2008

21. Deutsche Oracle Anwenderkonferenz

Page 2: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 2

PDF Erstellung mit APEX Dietmar Aust

Agenda

Vorstellung Opal-Consulting

PDF-Erstellung mit APEX

Berichterstellung mit JasperReports

Integration als externer Bericht

Integration über XML Feed

Fazit

Page 3: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 3

PDF Erstellung mit APEX Dietmar Aust

Vorstellung Opal-Consulting

Dipl.-Inform. Dietmar Aust, Freelance Consultant

1997-2000: Consultant bei der Oracle Deutschland GmbH / Düsseldorf

Schwerpunkte: Oracle Portal, Oracle Reports, Oracle Forms, PL/SQL, PLSQL Web Toolkit (OWA)

Seit 09/2000: Freiberuflich Schwerpunkte: Oracle Portal, Oracle Reports, Oracle

Application Express, Oracle Express Edition Seit Nov. 2005 ausschließlich APEX Entwicklung

Aktivitäten http://daust.blogspot.com/ http://forums.oracle.com/forums/forum.jspa?forumID=137

(APEX) http://forums.oracle.com/forums/forum.jspa?forumID=251

(XE)

Page 4: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 4

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEXDie Problemstellung

Wozu PDF Berichte? Druckfähig / pixelperfektes Layout Standard – Berichtswesen Formulare, Rechnungen, Angebote

Möglichkeiten der PDF – Erstellung mit APEX Unterstützung seit 3.0 Standard Support

− Apache FOP (nur PDF)

− Cocoon (PDF und RTF)

Erweiterter Support− Erfordert den BI-Publisher von Oracle !

Custom Solutions− Beliebige Reporting Engine anbinden (URL-interface)

− Z.B. Oracle Reports, Crystal Reports, JasperReports, BIRT, etc…

Page 5: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 5

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEXStandard-Integration - Berichtsregion

Alternativen 1. XSL/FO Transformation mit FOP (nur PDF) 2. Cocoon (PDF + RTF)

Definition: Auf dem Bericht

Eigene Berichtslayouts mitXSLT spezifizieren

Alternativen 1. XSL/FO Transformation mit FOP (nur PDF) 2. Cocoon (PDF + RTF)

Definition: Auf dem Bericht

Eigene Berichtslayouts mitXSLT spezifizieren

APEX

Client

Apache / mod_plsql

J2EE / Tomcat

2

1

Page 6: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 6

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEXStandard-Integration

Ablauf

1: Link ruft APEX Funktion auf

2: APEX ermittelt XSL des Layouts und das XML des Berichts

3: APEX macht Post an J2EE Server, übermittelt die Berichtsdefinition zusammen mit den Daten

APEX

Client

Apache / mod_plsql

J2EE / Tomcat

2

1

Page 7: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 7

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEXErweiterte Integration mit dem BI-Publisher

Optionen Berichtsabfragen definieren (Alle Items der Applikation,

multiple Abfragen integrieren) Eigene Berichtslayouts mit MS Word gestalten Ausgabe in RTF und Excel

Was bedeutet das? Lizenz für den BI-Publisher Sehr mächtige Integration Langfristig evtl. Option, insbesondere wenn die

Fachabteilungen viele Berichte in Word / Excel haben Einbindung von Power Usern

Installation http://www.oracle.com/technology/products/database/

application_express/html/configure_printing.html

Page 8: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 8

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEX

Konfiguration: /pls/apex/apex_admin (Instanz-Administration)

Home>Service verwalten>Instance-Einstellungen

Page 9: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 9

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEXCustom Integration

Beliebige Reporting Engines JasperReports Oracle Reports … beliebige, die aufgerufen werden über:

− URL

− Betriebssystem-Aufrufe

− … (external procedure calls)

http-Tunnel für beliebige Dateien Wie? Tunnel mit utl_http, Berücksichtigung des

MimeTypes Wozu? => Security (nur wenige Ports) und Autorisierung

(wer darf was)?

APEX

Client

Apache / mod_plsql

J2EE / TomcatBerichtsdefinitionenDaten aus Oracle mit

JDBC

2

1

3

Page 10: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 10

PDF Erstellung mit APEX Dietmar Aust

JasperReportsÜbersicht

JasperReports sehr beliebte Reporting Engine Java Bibliothek, um Reporting in Applikationen zu integrieren Standard im JBOSS Viele Projekte und große Kunden setzen es ein Berichtsdefinitionen in XML

Funktionalitäten Datenquellen : JDBC, XML, OLAP, TEXT, … Ausgabeformate: PDF, XLS, HTML, CSV, TEXT, RTF, ODF Matrixberichte Multiple Datenquellen pro Bericht Berichtstrigger Unterberichte Bedingte Formatierung Fonts, Unicode, NLS …

Page 11: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 11

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBeispiele

Page 12: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 12

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBeispiele

Page 13: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 13

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBeispiele

Page 14: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 14

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBerichtsdesign mit dem iReport Designer

iReport Designer Graphischer Editor, um XML – Berichtsdefinitionen für

JasperReports zu erstellen Aktuell zwei Versionen, klassisch und Netbeans

Download des iReport Designers http://ireport.sourceforge.net/

Page 15: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 15

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBerichtsdesign mit dem iReport Designer

Page 16: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 16

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBerichtsdesign mit dem Report Designer

Demo

Page 17: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 17

PDF Erstellung mit APEX Dietmar Aust

Integration I – externe Berichtehttp Tunnel

Berichtsdefinition in J2EE Applikation

Aufruf aus APEX: Url für OnDemand Prozess

OnDemand Prozess prc_show_url

f?p=&APP_ID.:0:&APP_SESSION.:APPLICATION_PROCESS=prc_show_url:::F_TMP_1:&F_TMP_1.

declare l_base_url varchar2(2000) := 'http://localhost:8080/jasperIntegration/report?_repName=Departments';begin xlib_http_pck.display_url_raw(p_url => l_base_url || '&p_deptno=' || v('F_TMP_1'));exceptionwhen others then htp.p(sqlerrm);end;

Page 18: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 18

PDF Erstellung mit APEX Dietmar Aust

Integration I – externe Berichtehttp Tunnel

Implementierung des http Tunnels

BEGIN l_http_request := UTL_HTTP.begin_request (p_url);

DBMS_LOB.createtemporary (l_blob, FALSE); BEGIN LOOP UTL_HTTP.read_raw (l_http_response, l_raw, l_buffer_size); DBMS_LOB.writeappend (l_blob, UTL_RAW.LENGTH (l_raw), l_raw); END LOOP; EXCEPTION WHEN UTL_HTTP.end_of_body THEN UTL_HTTP.end_response (l_http_response); END;

HTP.p ('Content-length: ' || DBMS_LOB.getlength (l_blob)); OWA_UTIL.http_header_close; WPG_DOCLOAD.download_file (l_blob); DBMS_LOB.freetemporary (l_blob);END;

Page 19: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 19

PDF Erstellung mit APEX Dietmar Aust

Integration I – externe BerichteJ2EE / Servlet

Implementierung des Servlets

ds = (DataSource) initContext.lookup("java:comp/env/jdbc/"+ dataSource);

conn = ds.getConnection();

jasperPrint = JasperFillManager.fillReport(reportFileName + ".jasper", reportParams, conn);

ServletOutputStream out = response.getOutputStream();

JRPdfExporter exporter = new JRPdfExporter();exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);exporter.setParameter(JRExporterParameter.OUTPUT_STREAM, out);exporter.exportReport();

Page 20: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 20

PDF Erstellung mit APEX Dietmar Aust

Integration I – externe Berichte Demo der Integration und der vereinfachten API

Demo

Page 21: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 21

PDF Erstellung mit APEX Dietmar Aust

Integration II – XML FeedÜbersicht

„echter“ Ersatz des BI-Publishers

Kommunikation APEX BI-Publisher: XML – Feed der Daten Berichtsdefinition als RTF-Template

BI-Publisher werden die Daten mit dem Template verbunden und im gewünschten Format zurückgeliefert

Page 22: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 22

PDF Erstellung mit APEX Dietmar Aust

Integration II – XML FeedUmsetzung

Berichtsabfrage erstellen

XML exportieren

Berichtslayout mit JasperReports erstellen

Berichtslayout hochladen (.jrxml)

Berichtslayout auf der Region festlegen

J2EE Applikation: Berichtsdefinition kompilieren (.jrxml => .jasper) Bericht befüllen (XML an JasperReports übergeben) Ergebnis zurückliefern

Page 23: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 23

PDF Erstellung mit APEX Dietmar Aust

Integration II – XML Feed Demo

Demo

Page 24: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 24

PDF Erstellung mit APEX Dietmar Aust

Fazit

Bloß nicht programmieren !!! (z.B. PL/PDF)

JasperReports: kostenlos, stabil, performant und flexibel (API)

iReport Designer: kostenlos, intuitiv, mächtig und nicht kompliziert

Integration in APEX ist einfach und sicher umzusetzen Java Servlet Programmierung notwendig

RTF Export nicht optimal Textfelder / Positionsrahmen nicht einfach zu editieren Keine Ränder im Dokument

Page 25: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 25

PDF Erstellung mit APEX Dietmar Aust

APEX Training - Ankündigung

Oracle APEX: Knowhow aus der Praxis! 23.03 – 25.03.2009 in Bensheim http://www.opal-consulting.de/training Dozenten:

− Patrick Wolf (APEX Entwickler des Jahres 2007; Oracle ACE Director)

− Denes Kubicek (APEX Entwickler des Jahres 2008; Oracle ACE)

− Dietmar Aust

Praxisrelevant!

Lessons learned von vielen APEX Projekten

Hands-On Sessions

Page 26: PDF Erstellung mit APEX - eine kostenlose Alternative Dietmar Aust Opal-Consulting, Köln 1. Dezember 2008 21. Deutsche Oracle Anwenderkonferenz

Seite 26

PDF Erstellung mit APEX Dietmar Aust

Kontakt

Opal-Consulting Dietmar Aust Web: http://www.opal-consulting.de Blog: http://daust.blogspot.com/ E-Mail: [email protected]