|
"Packaged Applications" II:
Application Express-Anwendungen als sofort installierbare Pakete
In der Vergangenheit war das größte Hindernis bei der Übertragung
von Anwendungen auf andere Server oder Application Express-Umgebungen die
Tatsache, dass die einzelnen Komponenten separat
exportiert und importiert werden mussten.
Mit APEX Version 2.2 gehört dies der Vergangenheit an. Nun ist es möglich,
Unterstützende Objekte zu einer
Applikation zu definieren. Bei einem Export werden diese Objekte dann mit in die
Exportdatei aufgenommen und beim Import automatisch mitinstalliert. In der
letzten Ausgabe haben Sie erfahren,
wie unterstützende Objekte definiert werden und wie
Sie ein einfaches Installationspaket erstellen. In dieser Ausgabe behandeln wir
weitere, "fortgeschrittene" Möglichkeiten, die sich Ihnen bei der Definition
der unterstützenden Objekte bieten.
Abb.1: Navigation zur Definition der Unterstützenden Objekte
Validierungen
Bereits in der letzten Ausgabe wurde beschrieben, wie Sie einfache Validierungen
hinterlegen können. Dies bezog sich vor allem auf nötige Systemprivilegien oder
das Vorhandensein bzw. Nicht-Vorhandensein bestimmter Datenbankobjekte. Nun lernen
Sie noch weitergehende Validierungen kennen.
Navigieren Sie den Unterstützenden Objekten
(Abbildung 1). Wählen Sie dort Bearbeiten aus und klicken
Sie anschließend auf die Reiterkarte Validierungen.
Sie sollten daraufhin den in Abbildung 2 dargestellten Dialog sehen.
Abb.2: Unterstützende Objekte: Validierungen
Im folgenden wird durch eine Validierung sichergestellt, dass die Datenbank, in
welche die Anwendung installiert werden soll, die XML-Funktionalität
(Oracle XML DB) enthält. Dies lässt sich am einfachsten
durch eine Prüfung des Datenbankschemas
XDB feststellen. Ist es vorhanden, so ist
die XML DB installiert, fehlt es, so fehlt auch die XML DB.
Abb.3: Neue Validierung erstellen: Ist die XML DB vorhanden?
Mit einem Klick auf die Schaltfläche Erstellen erzeugen
Sie die neue Validierung.
Wählen Sie Exists (SQL Abfrage gibt mindestens eine Zeile zurück)
als Typ der Validierung aus.
Hinterlegen Sie
"SELECT username FROM all_users WHERE username='XDB'"
als SQL-Abfrage. Nachdem Sie eine
Fehlermeldung für den Fall, dass XDB nicht existiert,
hinzugefügt haben, klicken Sie auf Erstellen.
Es wäre darüber hinaus noch möglich,
diese Validierung weiter unten an eine Bedingung zu knüpfen.
Abb.4: Unterstützende Objekte: Die erstellte Validierung
Auf diesem Weg kann natürlich nicht nur das Vorhandensein der XML DB sichergestellt
werden, sondern auch das anderer Datenbankkomponenten ...
- ... Oracle TEXT (Datenbankschema CTXSYS)
- ... Oracle Spatial (Datenbankschema MDSYS)
... oder beliebiger Datenbankobjekte (Tabellen, PL/SQL-Pakete, Funktionen, Views und andere).
Ersetzungszeichenfolgen
Sind in Ihrer Anwendung globale Ersetzungszeichenfolgen
(Substitution Strings) definiert,
so kann der Anwender bei Installation einen Wert für diese angeben. Ersetzungszeichenfolgen
definieren Sie in den Anwendungsattributen -
Navigieren Sie im Application Builder zu
Ihrer Anwendung, von dort aus zu den Anwendungsattributen
und dann zu Definition. Dort sind die allgemeinen Attribute
Ihrer Anwendung enthalten.
So könnte Ihre Applikation eine
Hilfeseite mit Angaben zum Administrator, seiner Mail-Adresse oder seiner Telefonnummer
ausgestattet werden. Diese könnten wie folgt als Ersetzungszeichenfolgen definiert sein
(Abbildung 5).
Abb.5: Definition von Ersetzungszeichenfolgen in den Anwendungsattributen
Klicken Sie im Bereich der unterstützenden Objekte nun auf die Reiterkarte
Ersetzungen. Dort sehen Sie alle in der
Anwendung definierten Ersetzungszeichenfolgen - Sie können
nun für jede einzelne festlegen, ob und mit welchem Prompt
während der Installation
eine Eingabe erwartet wird (Abbildung 6).
Abb.6: Definition der Ersetzungen in den unterstützenden Objekten
Während der Installation wird daraufhin der in Abbildung 7 dargestellte
Dialog gezeigt. Die dort gemachten Angaben werden in die Anwendungsattribute
übernommen (Application Builder,
Anwendungsattribute,
Definition) und können
dort jederzeit wieder geändert werden (Abbildung 8).
Abb.7: Abfrage von Werten für die Ersetzungszeichenfolgen während der Installation
Abb.8: Ersetzungszeichenfolgen in den Anwendungsattributen nach der Installation
Bedingte Installationsskripts
Installationsskripts wurden bereits in der
letzten Ausgabe behandelt. Heute wollen wir
ein wenig näher auf die Bedingungen eingehen, welche
zu jedem Installationsskript
hinterlegt werden können. Ein Anwendungsfall dafür wäre das Eingehen auf
verschiedene Datenbankversionen.
Wenn Sie die neuen Features einer Datenbankversion nutzen,
gleichzeitig jedoch sicherstellen möchten, dass Ihre Anwendung auch auf den älteren
Versionen läuft, so können Sie für jede Version eigene Skripts schreiben und mit
Bedingungen sicherstellen, dass bei der Installation nur die zur jeweiligen
Datenbankversion passenden Skripts ausgeführt werden.
Abbildung 9 zeigt das Einrichten einer solchen Bedingung. Navigieren Sie in den
unterstützenden Objekten auf die Reiterkarte Skripts
und wählen Sie das Skript aus, zu welchem Sie eine Bedingung hinterlegen möchten.
Klicken Sie dann auf das
Editiersymbol dieses Skripts. Sie gelangen daraufhin in den
Skript-Editor - klicken
Sie hier auf die linke Reiterkarte Skript-Eigenschaften,
um eine Bedingung hinterlegen zu können.
Um sicherzustellen, dass eine Skript erst in Datenbanken ab Version
10 ausgeführt
wird, wählen Sie als Bedingungstyp aus
PL/SQL Funktions-Body, der einen booleschen
Wert zurückgibt". Als PL/SQL Block hinterlegen Sie dann Folgendes:
Das PL/SQL Paket DBMS_DB_VERSION enthält Angaben
zur Datenbankversion. So liefert die Konstante VERSION
die Major- und RELEASE die Minor-Versionsnummer zurück.
In einer 10g Release 2-Datenbank enthält VERSION also
den Wert 10 und RELEASE den Wert 2. Sie müssen die
Konstanten mit PL/SQL auslesen, ein direkter Zugriff mit
SQL ist nicht möglich.
Natürlich können Sie das Paket DBMS_DB_VERSION auch
bei den Eingangs vorgestellten Validierungen nutzen
um das Vorhandensein einer bestimmten Datenbankversion zu
erzwingen. Wenn Ihre Applikation in einer 9er Datenbank nicht lauffähig ist, sollten
Sie eine passende Validierung mit entsprechender Fehlermeldung hinterlegen.
Zurück zur Community-Seite
|