Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

2006-03-30, Jens Rettig1 ORACLE Reports 10g im J2EE-Umfeld: Reports und XML DB Dipl.-Inform. Jens Rettig

Ähnliche Präsentationen


Präsentation zum Thema: "2006-03-30, Jens Rettig1 ORACLE Reports 10g im J2EE-Umfeld: Reports und XML DB Dipl.-Inform. Jens Rettig"—  Präsentation transkript:

1 , Jens Rettig1 ORACLE Reports 10g im J2EE-Umfeld: Reports und XML DB Dipl.-Inform. Jens Rettig

2 , Jens Rettig2 Agenda Vorstellung Reports und XML Reports in der J2EE-Welt XML DB – Speicherung Reports-Zugriff mit SQL und XPath Kopplung von XML-Daten in XML-DB mit Event Driven Publishing in Reports Probleme Fazit

3 , Jens Rettig3 ESEIS GmbH Evolutionäre Softwareentwicklung individueller Systeme GmbH Gründung in 04/2002 Im vierten Geschäftsjahr erfolgreich am Markt Ziele –Investitionssicherung bei Partnern durch Weiterentwicklung bestehender Systeme –Umfassende IT-Beratung –Unterstützung bei allen Tätigkeiten im SE-Bereich Kompetenzen –Oracle-Know-How von g –Alle Phasen der Softwareentwicklung auf vielen Plattformen

4 , Jens Rettig4 Portfolio und Kunden Kompetente Beratung bei der Planung und Umsetzung von IT-Strategien für betriebliche Informationssysteme, insbesondere -der Einführung neuer Technologien und -der Migration von Systemen -der Weiterentwicklung von bestehenden Systemen Systementwicklung von unternehmensweiten Anwendungen mit modernem Software Engineering und Qualitätsmanagement Die ESEIS GmbH bietet von der Projektleitung bis zur Einführung Aufgaben aus der gesamten Palette des Software Engineering ! Interessiert ? Hier könnte Ihr Logo stehen Für weitere Informationen :

5 , Jens Rettig5 DTD –Document Type Definition –Definition von Typen/Sorten von XML-Dateien XML-Schema –W3C XML Schema – –Nutzung von XML zur Beschreibung von XML xs:element xs:string xs:simpleType xs:complexType … Für weitere Informationen s. Literatur XML-Grundbegriffe: Schemata

6 , Jens Rettig6 Reports verarbeitet XML-Dateien als Input out of the box –…aber das kleingedruckte… Reports und XML The XML PDS implementation supports only two-dimensional listing of records. Oracle Reports expects the XML data file to be in simple table format with rows and columns. Oracle Reports iterates through the XML sequence at one level below the topmost element in the XML. If there are sequences at lower levels (nested elements), they are not handled. Thus, to generate a tabular report, you must "flatten" your XML file into simple row-column format, as shown in the following examples. (aus : Oracle® Reports - Building Reports - 10g Release 2 (10.1.2) - B July 2005, S. 720 von 796) Nur für zwei-dimensionale Daten !!! –nur nutzbar, wenn dies ausreicht… –oder XML-Transformation erforderlich

7 , Jens Rettig7 –Reports liest XML-Datei und zugehörige XML-Schema/DTD-Datei –Daten werden als Abfrage in separater Gruppe im Reports Datenschema dargestellt –Zwei-Dimensionale Daten durch Platt-klopfen Reports und XML: Beispiel

8 , Jens Rettig8 –Steuerung von Reports mit Hilfe von in XML-Dateien gespeicherten Informationen –XML-Schema-Auszug –Burst-Distribution Teilergebnisse separat verteilen (mit foreach) Report-Variablen zur Verteilung nutzen (z. B. als Mail-Empfänger, Dateiname) –Detaillierte Erklärung im JDeveloper –Steuerung mit Daten speichern !? XML in Reports: Distribution.xml

9 , Jens Rettig9 –Aufruf von Reports direkt aus der Browser-Session des Clients Rückgabe des Ergebnisses an den Browser –Verschiedene Ausgabeformate XML PDF (Excel-)Spreadsheet –Verschiedene Ausgabeziele Per FTP, Mail, Ausgabe an Drucker –Auch gleichzeitig per Burst Distribution Reports in der J2EE-Welt

10 , Jens Rettig10 –Aufruf von Reports direkt aus der Browser-Session des Clients z.B.: –http://www.eseis.de/rwservlet:7780/reports/rwservlet ?report=Mitarbeiterprofil.rdf&destype=screen &desformat=pdf&desname=my_mitarbeiterprofil.pdfhttp://www.eseis.de/rwservlet:7780/reports/rwservlet –Verschiedene Ausgabeformate XML ( desformat=xml ) PDF ( s.o. ) Excel-Ausgabe ( desformat=spreadsheet ) –Verschiedene Ausgabeziele Per FTP, Mail, Ausgabe an Drucker –mit destype, desformat, desname –mit distribute=yes, destination= Auch gleichzeitig per Burst Distribution –One Source nur unterschiedliche Aufruf-Parameter Reports in der J2EE-Welt: Beispiel

11 , Jens Rettig11 –Reimplementierung von Geschäftslogik ?!? (Doppelter SQL- Zugriff in App-Server auf komplexe DB-Objekte) –Pluggable Data Sources ? Probleme in der J2EE-Welt Datenbank-Server Application-Server J2EE-ApplicationReport-Server Web-Client z.B. via BC4J SQLNet

12 , Jens Rettig12 –ORACLE Datenbank-Komponente zur effizienten Speicherung und Abfrage von XML-Daten aus ORACLE DB Ermöglicht XPath-Ausdrücke in SQL Registrierung von XML-Schemata vs. Datenbank- Tabellen (und damit Prüfungsmöglichkeit) –Incl. Namespace-Unterstützung Speicherung von XML-Daten –(Teil-)Relational durch Eintragung von (xdb-) Speicherungsanweisungen in XML-Schema –oder (default) Speicherung als CLOB Insert von XML-Daten (Dateien) auch per –FTP oder –HTTP –Ab Version Oracle 9i verfügbar (mindestens …) ORACLE XML DB

13 , Jens Rettig13 XML DB: Speicherung und Abfrage XML DB Insert als Clob Select mit SQL und XPath Reports XML DB Insert als Clob Select mit SQL Reports XML DB Insert als Clob Reports Select mit SQL (Teil-)relationale Speicherung durch Implementierung von XML-Schema Abfrage mit reinem SQL durch Definition von relationalen Views mit XPath-Anweisungen

14 , Jens Rettig14 Beispiel: Mitarbeiterprofil

15 , Jens Rettig15 Zugriff mit SQL und XPath I select extractValue( OBJECT_VALUE –- oder auch value(a), '/wws:Mitarbeiter/Name', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) Mitarbeitername, extractValue( OBJECT_VALUE, '/wws:Mitarbeiter/Geburtsjahr', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) Geburtsjahr, extractValue( OBJECT_VALUE, '/wws:Mitarbeiter/Ausbildung', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) Ausbildung, extractValue( OBJECT_VALUE, '/wws:Mitarbeiter/Nationalitaet', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) Nationalitaet, extractValue( OBJECT_VALUE, '/wws:Mitarbeiter/EDVseit', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) EDVseit, extractValue( OBJECT_VALUE, '/wws:Mitarbeiter/verfügbarAb', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) verfügbarAb from rettig."Mitarbeiter_TAB" a;

16 , Jens Rettig16 Zugriff mit SQL und XPath II select extractValue( value(a), '/wws:Mitarbeiter/Name', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) Mitarbeitername, extractValue(value(bs), '/Programmiersprache ) Programmiersprache from rettig."Mitarbeiter_TAB" a, table( XMLSequence( extract(value(a), '/wws:Mitarbeiter/Programmiersprache', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) ) bs;

17 , Jens Rettig17 select extractValue( value(a), '/wws:Mitarbeiter/Name, 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) Mitarbeitername, extractValue(value(p), '/Projekt/Name', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) Projektname, extractValue(value(bs), '/Programmiersprache' ) Programmiersprache from rettig."Mitarbeiter_TAB" a, table( XMLSequence( extract(value(a), '/wws:Mitarbeiter/Projekt', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) ) p, table( XMLSequence( extract(value(p), '/Projekt/Programmiersprache', 'xmlns:wws="http://www.eseis.de/reports/MitarbeiterProfil.xsd"' ) ) bs; Zugriff mit SQL und XPath III Wichtiger Kniff: Extrahieren und verknüpfen von XML-Fragmenten, um relational zusammengehörige Objekte (Master-Detail-Detail) auch zusammengehörig zu selektieren

18 , Jens Rettig18 Event-Driven Publishing XML DB Insert, FTP, WebDav Select Reports EingangDaten Journal Trigger insert into Daten (xmldata) select, extract( OBJECT_VALUE, '/Eingang/Daten ).getclobval() DATEN from Eingang v_PList := SRW_PARAMLIST(SRW_PARAMETER('','')); Srw.add_parameter(v_PList,'GATEWAY,'http://www.eseis.de:7780/reports/rwservlet'); Srw.add_parameter(v_PList,'SERVER','rep_druck_queue'); Srw.add_parameter(v_PList,'REPORT',p_report_name); Srw.add_parameter(v_PList,'DESTYPE','file'); Srw.add_parameter(v_PList,'DESNAME,'/home/oracle/jret_test/drucken/testoutput.pdf'); v_ident := Srw.run_report(v_PList);

19 , Jens Rettig19 Probleme Distribution-XML muss als Datei auf dem Report-Server vorliegen –Für Event-Driven Publishing (vom DB- Server aus) eher lästig, da Schicht- übergreifender Datei-Zugriff realisiert werden muss. Distribution (derzeit !?!) nicht mit allen Ausgabeformaten möglich –Spreadsheet (Excel) –XML

20 , Jens Rettig20 Fazit Praxisrelevantes Beispiel ? –Prototyp beim Kunden realisiert –Erweiterung um weitere Reports und größere Datenmengen steht an Vielleicht zur DOAG-Jahrestagung '06: –Darstellung der (weiteren) Erfahrungen –Performance Aussagen Erste kleine Tests mit guter Performance Große Dateien ? –Weitere Konzepte: Monitoring-Komponente mit Wiederanlauf-Mechanismen

21 , Jens Rettig21 Fazit II –Reports Pluggable Data Sources Faszinierende Variante, beliebige Datenquellen mit Reports zu koppeln Java-API Aber aufgrund der Mächtigkeit auch komplex Eher ein eigenes Projekt als schnelle Lösung –Pluggable Report Destinations Auch für Ausgabeziele können Java-Klassen gebaut werden…

22 , Jens Rettig22 Literatur –Ray, E.T.: Einführung in XML, OReilly –Harold, E.R., Means, W.S.: XML in a Nutshell, OReilly –v.d.Vlist, E.: XML-Schema, OReilly –Schardina, M., Chang, B., Wang, J.: XML&SQL:Design, Build&Manage XML Applications in Java, C,C++ & PL/SQL, Oracle Press –Online Dokumentation von Oracle XML-DB und Oracle Reports (!!!) –http://www.otn.oracle.com

23 , Jens Rettig23 ORACLE Reports 10g im J2EE-Umfeld: Reports und XML DB Dipl.-Inform. Jens Rettig


Herunterladen ppt "2006-03-30, Jens Rettig1 ORACLE Reports 10g im J2EE-Umfeld: Reports und XML DB Dipl.-Inform. Jens Rettig"

Ähnliche Präsentationen


Google-Anzeigen