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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 1

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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 2

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: FreiberuflichSchwerpunkte: Oracle Portal, Oracle Reports, Oracle Application Express, Oracle Express EditionSeit Nov. 2005 ausschließlich APEX Entwicklung

Aktivitätenhttp://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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 3

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEXDie Problemstellung

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

Möglichkeiten der PDF – Erstellung mit APEXUnterstützung seit 3.0Standard 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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 4

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEXStandard-Integration - Berichtsregion

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

Definition:Auf dem Bericht

Eigene Berichtslayouts mitXSLT spezifizieren

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

Definition:Auf dem Bericht

Eigene Berichtslayouts mitXSLT spezifizieren

APEX

ClientApache /

mod_plsql

J2EE / Tomcat

2

1

Page 6: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 5

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEXStandard-Integration

Ablauf

1: Link ruft APEX Funktion auf

2: APEX ermittelt XSL des Layoutsund 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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 6

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEXErweiterte Integration mit dem BI-Publisher

OptionenBerichtsabfragen definieren (Alle Items der Applikation, multiple Abfragen integrieren)Eigene Berichtslayouts mit MS Word gestaltenAusgabe in RTF und Excel

Was bedeutet das?Lizenz für den BI-PublisherSehr mächtige IntegrationLangfristig evtl. Option, insbesondere wenn die Fachabteilungen viele Berichte in Word / Excel habenEinbindung von Power Usern

Installationhttp://www.oracle.com/technology/products/database/application_express/html/configure_printing.html

Page 8: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 7

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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 8

PDF Erstellung mit APEX Dietmar Aust

PDF–Erstellung mit APEXCustom Integration

Beliebige Reporting EnginesJasperReportsOracle Reports… beliebige, die aufgerufen werden über:

− URL

− Betriebssystem-Aufrufe

− … (external procedure calls)

http-Tunnel für beliebige DateienWie? Tunnel mit utl_http, Berücksichtigung des MimeTypesWozu? => Security (nur wenige Ports) und Autorisierung (wer darf was)?

APEX

Client

Apache / mod_plsql

J2EE / TomcatBerichtsdefinitionen

Daten aus Oracle mit JDBC

2

1

3

Page 10: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 9

PDF Erstellung mit APEX Dietmar Aust

JasperReportsÜbersicht

JasperReportssehr beliebte Reporting EngineJava Bibliothek, um Reporting in Applikationen zu integrierenStandard im JBOSSViele Projekte und große Kunden setzen es einBerichtsdefinitionen in XML

FunktionalitätenDatenquellen : JDBC, XML, OLAP, TEXT, …Ausgabeformate: PDF, XLS, HTML, CSV, TEXT, RTF, ODFMatrixberichteMultiple Datenquellen pro BerichtBerichtstriggerUnterberichteBedingte FormatierungFonts, Unicode, NLS…

Page 11: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 10

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBeispiele

Page 12: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 11

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBeispiele

Page 13: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 12

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBeispiele

Page 14: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 13

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBerichtsdesign mit dem iReport Designer

iReport DesignerGraphischer Editor, um XML – Berichtsdefinitionen für JasperReports zu erstellenAktuell zwei Versionen, klassisch und Netbeans

Download des iReport Designershttp://ireport.sourceforge.net/

Page 15: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 14

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBerichtsdesign mit dem iReport Designer

Page 16: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 15

PDF Erstellung mit APEX Dietmar Aust

JasperReportsBerichtsdesign mit dem Report Designer

Demo

Page 17: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 16

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.

declarel_base_url varchar2(2000) :=

'http://localhost:8080/jasperIntegration/report?_repName=Departments';beginxlib_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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 17

PDF Erstellung mit APEX Dietmar Aust

Integration I – externe Berichtehttp Tunnel

Implementierung des http Tunnels

BEGINl_http_request := UTL_HTTP.begin_request (p_url);

DBMS_LOB.createtemporary (l_blob, FALSE); BEGIN

LOOPUTL_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_bodyTHEN

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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 18

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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 19

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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 20

PDF Erstellung mit APEX Dietmar Aust

Integration II – XML FeedÜbersicht

„echter“ Ersatz des BI-Publishers

Kommunikation APEX BI-Publisher:XML – Feed der DatenBerichtsdefinition 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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 21

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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 22

PDF Erstellung mit APEX Dietmar Aust

Integration II – XML Feed Demo

Demo

Page 24: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 23

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 umzusetzenJava Servlet Programmierung notwendig

RTF Export nicht optimalTextfelder / Positionsrahmen nicht einfach zu editierenKeine Ränder im Dokument

Page 25: PDF Erstellung mit APEX - eine kostenlose Alternative · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 24

PDF Erstellung mit APEX Dietmar Aust

APEX Training - Ankündigung

Oracle APEX: Knowhow aus der Praxis! 23.03 – 25.03.2009 in Bensheimhttp://www.opal-consulting.de/trainingDozenten:

− 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 · PDF Erstellung mit APEX Dietmar Aust PDF–Erstellung mit APEX Die Problemstellung ¾Wozu PDF Berichte? Druckfähig / pixelperfektes

Seite 25

PDF Erstellung mit APEX Dietmar Aust

Kontakt

Opal-Consulting Dietmar AustWeb: http://www.opal-consulting.deBlog: http://daust.blogspot.com/E-Mail: [email protected]