Graphen in Apex von Thomas Hernando www.syntegris.de Einleitung FIRMENINFOS • Gründung im Jahre 2000 mit Sitz in Neu-Isenburg bei Frankfurt am Main • Mehr als 30 Berater • Oracle Gold Partner • Schwerpunkte liegen im • Data Warehouse • Business Process Development • Anwendungsentwicklung (Oracle ApEx und Java) • Administration und • Schulung ZUR PERSON • Seit 2012 im Unternehmen als Berater und Anwendungsentwickler tätig • Schwerpunkt Oracle DB und Oracle Application Express © SYNTEGRIS INFORMATION SOLUTIONS GMBH Agenda Serverseitige Clientseitige Generierung auf Application Server © SYNTEGRIS INFORMATION SOLUTIONS GMBH Ziel des Vortrags © SYNTEGRIS INFORMATION SOLUTIONS GMBH Ziel des Vortrags Datalineage als Beispiel Graphen © SYNTEGRIS INFORMATION SOLUTIONS GMBH Ziel des Vortrags Datalineage als Beispiel Graphen © SYNTEGRIS INFORMATION SOLUTIONS GMBH Aktuelle Situation in Apex ZUERST EINMAL Graphen können nicht aus dem Apex Standard heraus erstellt werden. BÄUME SIND VORHANDEN • Klassische interaktive Baumdarstellung • Links • Bilder • Tooltip‘s © SYNTEGRIS INFORMATION SOLUTIONS GMBH Agenda Serverseitige Clientseitige © SYNTEGRIS INFORMATION SOLUTIONS GMBH Serverseitige Erstellung • ApEx „fragt“ die DB nach Graphen • Die Datenbank ruft externes Programm auf • Beim Aufruf Übergabe der darzustellenden Daten mit Formatvorlage • Programm* erstellt Bild, Vektorgrafik oder ähnliches • DB/ApEx liest vom Dateisystem das Bild ein und stellt es im Browser dar * In der Demo wird GraphViz genutzt © SYNTEGRIS INFORMATION SOLUTIONS GMBH Serverseitige Erstellung Demo Beispiel in GraphViz - Vorbereitung • Installation von GraphViz (www.graphviz.org) • Verzeichnis auf DB-Server anlegen (am besten direkt im Image Verzeichnis der Apex Installation) • Shell-Skript erstellen mit Aufruf für GraphViz #!/bin/hash cd /home/oracle/apex/images/images/doag_2014 /usr/bin/dot –Tpng graphviz_demo.dot –o graphviz_demo.png echo “Graph wurde erzeugt“ © SYNTEGRIS INFORMATION SOLUTIONS GMBH Serverseitige Erstellung Demo Beispiel in GraphViz - Vorbereitung • Installation von GraphViz (www.graphviz.org) • Verzeichnis auf DB-Server anlegen (am besten direkt im Image Verzeichnis der Apex Installation) • Shell-Skript erstellen mit Aufruf für GraphViz #!/bin/hash Applikationsverzeichnis von GraphViz cd /home/oracle/apex/images/images/doag_2014 /usr/bin/dot –Tpng graphviz_demo.dot –o graphviz_demo.png echo “Graph wurde erzeugt“ © SYNTEGRIS INFORMATION SOLUTIONS GMBH Serverseitige Erstellung Demo Beispiel in GraphViz - Vorbereitung • Installation von GraphViz (www.graphviz.org) • Verzeichnis auf DB-Server anlegen (am besten direkt im Image Verzeichnis der Apex Installation) • Shell-Skript erstellen mit Aufruf für GraphViz Aufruf von GraphViz #!/bin/hash cd /home/oracle/apex/images/images/doag_2014 /usr/bin/dot –Tpng graphviz_demo.dot –o graphviz_demo.png echo “Graph wurde erzeugt“ © SYNTEGRIS INFORMATION SOLUTIONS GMBH Serverseitige Erstellung Demo Beispiel in GraphViz - Datenbank • Oracle Directory auf das angelegte Verzeichnis create directory doag_2014 as '/home/oracle/apex/images/images/doag_2014'; • Anlage einer External Table auf das entsprechende Verzeichnis • Mit Preprocessor Option ruft das Shell Skript bei Selektion der External Tabelle auf © SYNTEGRIS INFORMATION SOLUTIONS GMBH Serverseitige Erstellung Demo Beispiel in GraphViz - Apex • Demo beinhaltet ein Textfeld zur Eingabe des DOT-Codes • Per SUBMIT wird ein Prozess gestartet der • DOT-Code in Datei schreibt und • die External Table selektiert • External Table ruft das Shell-Skript auf und dieses erzeugt Graphen • Seite enthält ein Display Image Item • Display Image Item holt den Graphen aus dem Verzeichnis © SYNTEGRIS INFORMATION SOLUTIONS GMBH Demo Demo GraphViz © SYNTEGRIS INFORMATION SOLUTIONS GMBH Agenda Serverseitige Clientseitige © SYNTEGRIS INFORMATION SOLUTIONS GMBH Clientseitige Erstellung • ApEx „fragt“ DB nach Daten für einen Graphen • DB generiert (evtl. bereits mit Positionsangaben) Datei/Daten im entsprechenden Format (json, xml, csv usw.) • DB liefert diese Daten an ApEx / Browser • Im Browser werden per JavaScript die erhaltenen Daten interpretiert und entsprechend der Formatvorlage dargestellt • „Formatvorlagen“ müssen manuell definiert und in JavaScript implementiert werden (JSFrameworks dienen lediglich der Vereinfachung) © SYNTEGRIS INFORMATION SOLUTIONS GMBH Clientseitige Erstellung Demo Beispiel mit d3.js - Vorbereitung • Download von d3.js (www.d3js.org) • Einbindung der d3.v3.min.js © SYNTEGRIS INFORMATION SOLUTIONS GMBH Clientseitige Erstellung Demo Beispiel in d3.js - Apex • PL/SQL Region erzeugt z.B. JSON-Objekt • JSON-Objekt wird an JavaScript Engine übergeben • D3.js – Programmcode im Page Header • Wandelt JSON-Objekt in Graphen um • Graph selber ist eine SVG-Matrix und vollständig individualisierbar per CSS • CSS Code im Page Header © SYNTEGRIS INFORMATION SOLUTIONS GMBH Demo Demo D3.js © SYNTEGRIS INFORMATION SOLUTIONS GMBH Fazit GRAPHVIZ D3.JS • Schnelle Implementation • Vielseitige Möglichkeiten bzgl. Design • Vielseitige Möglichkeiten bzgl. Design • Geringer administrativer Aufwand bei Implementation • Logik zur Graph Darstellung ist vorhanden • Individualisierung vollständig möglich Interaktion • Geringer Aufwand bei Rollout • Vielseitig einsetzbar, z.B. Charts usw. © SYNTEGRIS INFORMATION SOLUTIONS GMBH Dankt Ihnen für Ihre Aufmerksamkeit syntegris information solutions gmbh Hermannstrasse 54-56 63263 Neu-Isenburg Fon (06102) 29 86 68 Fax (06102) 55 88 06 [email protected] www.syntegris.de