In einer Berichtsregion stellt APEX die Ergebnismenge einer SQL-Abfrage tabellarisch dar. Die wichtigste Grundlage eines Berichts ist demnach die zugrunde liegende SQL-Abfrage, die sich mit dem Query Builder grafisch erstellen lässt. Eine Formatvorlage (Layout Template), welche die Darstellung steuert, verknüpft sich mit dieser.
Ein interaktiver Bericht in Aktion (Abb. 5)
Interaktive Berichte sind seit Version 3.1 verfügbar. Diese Variante greift intensiv auf die Ajax-Technik zurück und bietet dem Endanwender umfangreiche Einstellungsmöglichkeiten. So lassen sich zusätzliche Filter, Gruppierungen oder Aggregationen hinzufügen, ohne dass der Anwendungsentwickler aktiv werden muss. Die interaktiven Berichte eignen sich damit für einfaches Reporting – als Entwickler muss man lediglich eine SQL-Abfrage bereitstellen, die Endanwender können sich den Bericht dann nach Belieben konfigurieren.
Layoutvorlage für eine Anwendungsseite (Page Template) (Abb. 6)
Die Darstellung der Anwendungsseiten ist durch Templates getrieben: So gibt es für das Design der Seite das Page Template, in dem der Aufbau der Anwendungsseite (HTML für Kopf- und Fußbereiche) zu definieren ist. Abbildung 6 zeigt das Zusammenspiel von statischen und dynamischen Seitenbereichen. Dem untergeordnet sind die Region Templates, die das Aussehen einer Region, zum Beispiel Rahmen oder Überschrift, steuern. Für die unterschiedlichen Komponenten stehen zusätzlich Templates bereit. So steuern Report Templates die tabellarische Darstellung von Berichten oder Label Templates die Beschriftung von Formularelementen. Zusammengehörige Templates lassen sich zu einem Theme kombinieren, sodass man das Look & Feel einer Anwendung komplett und konsistent wechseln kann.
Für die Ablaufsteuerung bietet APEX einfache, standardisierte Aufgaben an – ein Beispiel ist das Formular auf eine Tabelle. Die Methode zum Einfügen, Ändern oder Löschen der jeweiligen Tabellenzeile stellt APEX als fertigen Prozess des "Automatic Row Processing"-Typs bereit. Kompliziertere Anforderungen sind durch eigenen PL/SQL-Code zu lösen – dazu bietet Oracle die Prozessvariante PL/SQL. Eigener PL/SQL-Code lässt sich nahezu überall in die APEX-Anwendung integrieren.
Beim Erstellen einer Anwendung kann man auswählen, ob die Nutzer anhand der Datenbank, des APEX Workspace oder gar nicht zu authentifizieren sind. Anschließend lässt sich die Authentifizierung auf einen LDAP-, auf den Oracle-Single-Sign-on-Server oder auf ein selbstprogrammiertes Authentifizierungsschema umstellen. Für Windows-Systeme ist im Oracle Technology Network (OTN) ein Whitepaper verfügbar, das das Einrichten der Authentifizerung über Microsofts NTLM beschreibt. Sind die Nutzer identifiziert, ist für jede einzelne Komponente mit einem Autorisierungsschema festzulegen, ob sie sich für diesen Nutzer darstellen lässt oder nicht.
Analog zum Data Dictionary der Datenbank gibt es ein Dictionary, mit dem man sich die vorhandenen APEX-Anwendungen und ihre Details ansehen kann. Das folgende Listing zeigt, wie man mit SQL-Abfragen Informationen über die vorhandenen APEX-Applikationen abruft. Auch das Kommentarfeld, das es bei jeder APEX-Komponente gibt, ist in den Dictionary Views vorhanden.
SQL> select application_id, application_name from apex_applications
APPLICATION_ID APPLICATION_NAME
-------------- -------------------------
103 VPD_DEMO
101 SQL Injection
SQL> select page_id, page_title, regions, items
2 from apex_application_pages where application_id=103
PAGE_ID PAGE_TITLE REGIONS ITEMS
---------- ------------------------- ---------- ----------
1 Abteilungs-Übersicht 1 1
2 Auswertungen 2 0
3 Bearbeiten 1 8
SQL> select region_name, items
2 from apex_application_page_regions
3 where application_id=103 and page_id=2;
REGION_NAME ITEMS
------------------------- ----------
Abteilungs-Daten 3
Gehaltsaufteilung 2
Die APEX-Metadaten lassen sich mit allen Werkzeugen (hier: SQL Developer) betrachten (Abb. 7).
Insofern dokumentiert sich jede Anwendung über diese Dictionary Views selbst. Die Informationen sind beliebig zu nutzen. Denkbare Anwendungen wären das Generieren von Dokumentation und das Ermitteln von Kennzahlen zur Projektkalkulation. Informationen, die verborgen im Anwendungscode liegen, sind in APEX strukturiert und einfach auszuwerten. Auf diese Art und Weise lässt sich APEX, zumindest was den lesenden Zugriff angeht, gut mit anderen Werkzeugen zur Datenbankverwaltung integrieren. Die SQL-Abfragen auf die APEX Dictionary Views sind als Berichte in Fremdwerkzeugen zu hinterlegen; so können Datenbankadministratoren einen Überblick über die APEX-Aktivitäten in der Datenbank erlangen.
Auf der nächsten Seite: Tipps & Fazit
Themenforum: Ajax