Über unsMediaKontaktImpressum
Ralf Beckmann 17. Oktober 2017

Oracle Application Express (APEX): Einführung mit Beispielen

Mit APEX entwickeln Sie im Browser Webanwendungen. © den-belitsky / Fotolia.com
© den-belitsky / Fotolia.com

Mit Oracle Application Express entwickeln Sie sehr schnell datenbankgestützte sichere responsive Webanwendungen. Diese Anwendungen sind mehrbenutzerfähig, mehrsprachenfähig und benutzerfreundlich. Wenn Sie sich mit der Entwicklung von Anwendungen beschäftigen, sehen Sie sich nicht selten der Anforderung gegenüber, in kurzer Zeit ein Programm zu erstellen, welches den Anforderungen in einem Unternehmen standhalten muss. Dabei spielen Stabilität, Entwicklungszeiten und geringe Entwicklungskosten eine wichtige Rolle.

Oracle Application Express (Oracle APEX)

Zugegeben, am Anfang (Version 3.x) war APEX doch etwas seltsam. Man war es gewohnt, Anwendungen klassisch in Quellcode zu gießen – dann kam APEX. Die größte Hürde, die man bei der Einarbeitung in APEX zu nehmen hatte: Das Verständnis dafür zu entwickeln, wie APEX tickt.

Oracle Application Express ist Bestandteil einer Oracle-Datenbank. Selbst eine Oracle XE hat APEX bereits im Bauch.

Abb.1:Oracle Application Express Entwicklungsumgebung. © Ralf Beckmann
Abb.1:Oracle Application Express Entwicklungsumgebung. © Ralf Beckmann

Mit APEX entwickeln Sie im Browser Webanwendungen, deren Daten in der Oracle-Datenbank gespeichert werden. Der Unterschied zur klassischen Softwareentwicklung besteht darin, dass Sie APEX-Anwendungen zum größten Teil deklarativ erstellen. Hierzu bedienen Sie sich des sogenannten Application Builders, einem Bestandteil der APEX-Entwicklungsumgebung.

Über den Application Builder legen Sie neue Anwendungen an, definieren deren Seiten, die Inhalte der Seiten und auch das Verhalten der Anwendung. Die so erfassten Eigenschaften einer Anwendung speichert APEX in der Oracle-Datenbank. Die APEX-eigenen Tabellen finden Sie in dem nach der APEX-Version benannten Datenbank-Schema. Dabei ist der Version das Präfix APEX vorangestellt. Für die APEX Version 5.1.x ergibt sich beispielsweise der Schema-Name APEX_050100.

Abb.2:describe f. © Ralf Beckmann
Abb.2:describe f. © Ralf Beckmann

Aus diesem Data Dictionary wird dann zur Laufzeit die Webanwendung erzeugt. Das Rendering der jeweiligen Webseite wird dabei von der Datenbankprozedur f übernommen. Diese befindet sich auch in dem APEX-Schema. Plakativ könnte man sagen "f ist APEX".

APEX-Anwendungen werden auf der Basis ihrer Metadaten zur Laufzeit interpretiert. Man kann Oracle Application Express damit klar von anderen modellbasierten Case Tools abgrenzen. Es wird kein Quellcode im klassischen Sinn erzeugt, womit sich eine gegen Versionsveränderungen sehr robuste Architektur ergibt.

APEX-Architektur

Die Datenbankprozedur f kann man als die eigentliche APEX-Engine ansehen. Neben dem Rendering der Webseiten obliegt ihr auch die Verwaltung des serverseitigen Session Cache, in dem für jede Client-Sitzung die Variablen mit den dazugehörigen Werten verwaltet werden. Außerdem wird von der APEX-Engine die Business Logik, die Sie in PL/SQL bzw. SQL erstellen, ausgeführt.

Um die erzeugte Seite zum Client zu transportieren wird noch ein Webserver benötigt. Hierzu bietet Oracle verschiedene Konfigurationen.

Embedded PL/SQL Gateway (kurz EPG)

Das Embedded PL/SQL Gateway (kurz EPG) ist die einfachste Variante, APEX zu betreiben. Dieser Webserver nutzt den XDB-Protokollserver, der auf dem Oracle Listener aufsetzt. Oracle empfiehlt allerdings, das EPG nur für Entwicklungssysteme und nicht für Produktivsysteme einzusetzen.

Oracle HTTP Server (kurz OHS)

Der in der Praxis immer noch häufig eingesetzte Webserver ist der Oracle HTTP Server. Dabei handelt es sich um den Apache-Webserver mit der mod_plsql-Erweiterung. Über diese Erweiterung werden die Client-Anfragen an die Prozedur  f der Datenbank weitergeleitetet und in der Gegenrichtung die gerenderte Seite zum Client übertragen. Der Einsatz eines Oracle HTTP-Servers bietet Ihnen deutlich mehr Einsatzmöglichkeiten als der des EPGs.

Oracle REST Data Services (ehemals APEX Listener)

Der aktuell von Oracle empfohlene Webserver basiert auf J2EE und läuft als Java-Container. Der Oracle REST Data Service bietet Ihnen deutlich erweiterte Konfigurationsmöglichkeiten und vor allem die Nutzung von REST-Webservices.
Weitere Details zu den Web-Servern finden Sie u.a. im Installationshandbuch [1].

APEX ist Cloud-fähig – Workspaces

APEX bringt von Haus aus eine Aufteilung in sogenannte Workspaces mit. Ein Workspace wird von einem oder mehreren Workspace-Administratoren verwaltet und beinhaltet eine eigene Benutzerverwaltung.

Jedem Workspace werden ein oder mehrere Datenbank-Schematas zugewiesen. Darüber werden die Besitzverhältnisse abgebildet. Einem Datenbank-Schema sind dann wiederum die Datenbank-Objekte wie Tabellen, Views, PL/SQL-Packages, usw. zugeordnet. Die in einem Workspace enthaltenen Anwendungen haben nur Zugriff auf die Objekte ihrer Datenbank-Schematas.

Beispielanwendung

Im Folgenden soll anhand einer kleinen Beispielanwendung die Erstellung von Webanwendungen mit APEX demonstriert werden. Als Beispiel soll ein Programm zur Erfassung von Besprechungsterminen dienen.

Ablauf der Anwendungsentwicklung

Wie gehen Sie nun mit APEX an diese kleine Aufgabe heran?

  1. APEX-Workspace anlegen
  2. Erstellen des Datenmodells und anlegen der Datenbank-Tabellen
  3. Erzeugen einer APEX-Anwendung auf Basis des Datenmodells
  4. Anpassen und Erweitern der Anwendung

Anlegen eines APEX-Workspace

In einer selbst betriebenen Umgebung erledigen Sie das Anlegen eines Workspaces über die Apex Administration Application. Diese rufen Sie beim EPG über die URL http://<server>:<port>/apex/apex_admin auf. Bei der Verwendung anderer Webserver bzw. Konfigurationen weicht die URL ab. Schauen Sie für genauere Informationen in die ausführliche APEX-Dokumentation [2] von Oracle.

Die einfachste Möglichkeit, APEX einmal auszuprobieren finden Sie unter https://apex.oracle.com. Hier bietet ORACLE einen APEX-Server im Internet. Allerdings dürfen Sie über diese Plattform keine kommerziellen Programme bereitstellen.

In diesem Beispiel möchte ich der Einfachheit halber apex.oracle.com verwenden.

  1. Öffnen Sie die Seite https://apex.oracle.com
  2. Über Get Started >> Free Workspace >> Application Development beantragen Sie einen neuen Workspace
  3. Folgen Sie dem Anmelde-Wizzard
IT-Tage 2017 - Oracle
Abb.3:Anmeldung an der APEX-Entwicklungsumgebung. © Ralf Beckmann
Abb.3:Anmeldung an der APEX-Entwicklungsumgebung. © Ralf Beckmann
Abb.4:SQL Workshop. © Ralf Beckmann
Abb.4:SQL Workshop. © Ralf Beckmann
Abb.5:Tabelle mit dem Objectbrowser erstellen. © Ralf Beckmann
Abb.5:Tabelle mit dem Objectbrowser erstellen. © Ralf Beckmann
Abb.6: Anwendung erstellen – Theme. © Ralf Beckmann
Abb.6: Anwendung erstellen – Theme. © Ralf Beckmann
Abb.7: Anwendungseigenschaften festlegen. © Ralf Beckmann
Abb.7: Anwendungseigenschaften festlegen. © Ralf Beckmann
Abb.8: Neu erstellte Anwendung im Application Builder. © Ralf Beckmann
Abb.8: Neu erstellte Anwendung im Application Builder. © Ralf Beckmann
Abb.9:My Meeting Minutes – Anmeldung. © Ralf Beckmann
Abb.9:My Meeting Minutes – Anmeldung. © Ralf Beckmann
Abb.10: Default-Anwendung. © Ralf Beckmann
Abb.10: Default-Anwendung. © Ralf Beckmann

Im Rahmen der Anmeldung erhalten Sie per Mail ihre Zugangsdaten sowie einen Link, über den Sie die Anforderung abschließen müssen.

Erstellen des Datenmodells und Anlegen der Datenbank-Tabellen

Zur APEX-Entwicklungsumgebung gelangen Sie nun über den Link, der ebenfalls in der Mail enthalten ist. Melden Sie sich an Ihrem Workspace mit den eben erfassten Zugangsdaten an.

APEX bietet eine sehr umfangreiche Palette an Tools. Zur Bearbeitung von Datenbankobjekten nutzen Sie die Werkzeuge, welche sich hinter dem Modul SQL Workshop verbergen.

In diesem Beispiel legen Sie eine Tabelle mit Hilfe des Objectbrowsers an.

  1. Starten Sie den Objectbrowser
  2. Eine neue Tabelle M_MEETING legen Sie über das + auf der rechten Seite des Objectbrowsers an.
  3. Über den startenden Wizzard können Sie Ihre Datenbanktabelle definieren.
  4. Über den Weiter-Button gelangen Sie zu der nächsten Seite. Dort können Sie festlegen, dass die Spalte ID über eine Datenbank-Sequence mit Hilfe eines Datenbank-Triggers erzeugt und zugewiesen werden soll.
  5. Die nächsten Schritte können Sie einfach mit Weiter überspringen und abschließend den Wizzard anweisen, die Tabelle anzulegen.

Erzeugen einer APEX-Anwendung auf Basis des Datenmodells

Jetzt geht es an das Erzeugen der Webanwendung. Dazu dient der Application Builder.

  1. Öffnen Sie den Application Builder über das Menü im oberen Bereich der APEX-Entwicklungsumgebung.
  2. Klicken Sie auf Create und anschließend auf Desktop-Anwendung.
  3. Nun geben Sie Ihrem Programm einen Namen und wählen eine Schablone – Theme genannt – auf deren Basis die Applikation erstellt wird.
  4. Im nächsten Schritt können Sie bereits Seiten zu Ihrer Anwendung hinzufügen. An dieser Stelle belassen Sie es bei der Home-Seite und klicken auf Weiter.
  5. Gemeinsame Komponenten (Shared Components) übernehmen Sie in diesem Schritt keine. Klicken Sie auf Weiter.
  6. Jetzt werden noch einige wenige Angaben benötigt.
  7. Dann klicken Sie auf Weiter und zu guter Letzt auf Anwendung erstellen.

Nach einigen Sekunden hat APEX Ihre Anwendung generiert und Sie sehen dann die Übersichtsseite des Application Builders. Starten Sie einfach die Anwendung über den Button Anwendung ausführen. Es öffnet sich nun im Browser ein neues Register, in dem die My Meeting Minutes mit der Aufforderung, sich an der Anwendung anzumelden, gestartet wird. Verwenden Sie einfach Ihren initial erfassten Account. APEX bringt eine eigene Benutzerverwaltung mit. Als Workspace-Admin können Sie diese über den Menüpunkt Administration aus der Entwicklungsumgebung erreichen. 

Nach erfolgreicher Anmeldung stellt sich Ihre Webapplikation wie in Abb.10 zu sehen ist dar. Sie finden auf der linken Seite ein Menü, welches zum jetzigen Zeitpunkt nur die Home-Seite enthält.

Starten Sie eine APEX-Anwendung aus dem Application Builder heraus, so finden Sie im unteren Bereich die Developer Toolbar, welche Ihnen diverse Funktionen zum Bearbeiten der Anwendung bietet.

Anpassen und Erweitern der Anwendung

Abb.11:Page-Designer. © Ralf Beckmann
Abb.11:Page-Designer. © Ralf Beckmann
Abb.12: Seiten erzeugen.© Ralf Beckmann
Abb.12: Seiten erzeugen.© Ralf Beckmann

Im nächsten Schritt hauchen Sie der Anwendung ein wenig mehr Leben ein. Dazu benutzen Sie den Page-Designer. Mittels Page-Designer erstellen Sie Seiten und legen deren Inhalt und Verhalten fest.

Sie können den Page-Designer über den Application Builder oder direkt aus der Anwendung über die Developer Toolbar erreichen.

  1. Klicken Sie auf Seite bearbeiten. Es öffnet sich der Page-Designer.
  2. Hier klicken Sie auf das +-Symbol und dann auf den Eintrag Seite.
  3. Es startet ein Wizzard zum Anlegen verschiedener Seitentypen. Wählen Sie Formular >> Bericht mit Formular basierend auf Tabelle.
  4. In diesem Schritt wählen Sie als Berichtstyp den Interaktiven Bericht, als Berichtsname geben Sie Meetings ein. Die Formularseite benennen Sie mit Meeting bearbeiten und belassen es bei dem Formularseitenmodus Normal. Klicken Sie auf Weiter.
  5. Anschließend wählen Sie die Option Neuen Navigationsmenüeintrag erstellen, um als Aufrufmöglichkeit der Übersichtsseite einen neuen Menüpunkt zu erzeugen.
  6. Nach der Definition der grundsätzlichen Struktur der zu erzeugenden Seiten geht es jetzt um die Verbindung zur jeweiligen Datenbanktabelle. Selektieren Sie hier die Tabelle M_MEETING und schieben Sie dann in dem darunterliegenden Shuttle Control alle Spalten der Tabelle in die rechte Liste.
Abb.13: Interaktiver Bericht als Übersicht. © Ralf Beckmann
Abb.13: Interaktiver Bericht als Übersicht. © Ralf Beckmann
Abb.14: Meetings erfassen. © Ralf Beckmann
Abb.14: Meetings erfassen. © Ralf Beckmann
  1. Jetzt wählen Sie noch die Spalte ID aus und geben an, dass diese über einen Trigger gefüllt wird.
  2. Schließen Sie den Vorgang über den Button Erstellen ab.

APEX erzeugt jetzt zwei neue Seiten. Die erste enthält ein interaktiven Bericht, welcher eine tabellarische Übersicht aller Besprechungen beinhaltet. Über diese Seite können Sie neue Meetings (Button Erstellen) anlegen oder vorhandene Einträge über das ein Icon im Grid öffnen.

Beide Funktionen führen dazu, dass die Formular-Seite einmal zum Bearbeiten und einmal zur Neuanlage geöffnet wird. Des Weiteren lassen sich vorhandene Einträge über diese Seite auch entfernen.

Fazit

Hoffentlich konnten Sie einen ersten Eindruck von APEX und vor allem der Art der Anwendungsentwicklung gewinnen. Für die Erstellung dieser – zugeben recht einfachen Anwendung – benötigt man keine 10 Minuten.

Wie geht es weiter? Wenn Sie sich ausführlicher mit APEX beschäftigen möchten, sei Ihnen neben der Hersteller-Dokumentation die einschlägige Literatur ans Herz gelegt. Eine weitere ergiebige Quelle ist die Seite der deutschsprachigen APEX-Community [3]. Oder Sie probieren das Programm einfach selbst aus... [4].

nach Oben
Autor

Ralf Beckmann

Ralf Beckmann ist Diplom-Ingenieur für Technische Informatik und als Projektleiter, Systemintegrator und Entwickler tätig.
>> Weiterlesen
Buch des Autors:

botMessage_toctoc_comments_929