Ordnung in das Theme-Chaos bringen
- Peter Raganitsch
- Kategorie: Oracle APEX, Oracle APEX, Tipps & Tricks | Tags: Templates, Themes
Oracle Application Express bietet uns die Möglichkeit eigene Themes (Layouts) zu erstellen, damit passen wir das Aussehen der Applikationen an das jeweilige Firmen-CI an, womit sich eine nahtlose Integration von neuen APEX Anwendungen in das bestehende Firmen Intranet ergibt.
Wie allerdings muss ich vorgehen, damit ich mein Theme zentral verwalten und in mehreren Applikation einsetzen kann?
Es ist zwar möglich ein Theme als Workspace-Theme zu definieren, allerdings stellt sich das in der Praxis als zu aufwändig und zu kompliziert dar, denn man kann ein Workspace-Theme nicht einfach bearbeiten (um einen Fehler zu korrigieren), sondern muss das Theme dann wieder in eine Applikation importieren, dort bearbeiten und dann wieder neu in den Workspace stellen.
Applikationen, die ein Workspace-Theme verwenden, machen sich eine Kopie davon und bekommen so natürlich keine Änderungen mit.
Das ist also eine Sackgasse, Workspace-Themes helfen uns hier nicht weiter.
Stattdessen machen wir uns die Subscribe-Funktion von Templates zu Nutze.
Dazu am besten wie folgt vorgehen:
- eine Applikation zum Entwickeln/Warten des Themes anlegen
- eine Applikation als Master-Template anlegen, diese Subscribed die Templates von 1.
- wird eine neue Applikation erstellt, dann wird dazu als Ausgangsbasis eine Kopie von der Master-Template-Applikation erstellt
- Änderungen am Theme werden in 1. durchgeführt und mittels “Publish”-Button an alle Subscriber-Applikationen weitergegeben
Im Detail:
1. eine Applikation zum Entwickeln/Warten des Themes anlegen
In ihrem Entwicklungsworkspace eine Applikation anlegen, in der das Theme mit all seinen Templates erstellt, getestet und gewartet wird. Dies soll keine produktive Applikation, sondern lediglich eine Entwicklungsapplikation sein, in der alle gewünschten Fälle durchgetestet werden können: Tabs, Buttons, Labes, Pages, Regions, Reports, usw.
2. eine Applikation als Master-Template anlegen
Dazu wird die Theme-Applikation kopiert und bis auf ein Applikations-Grundgerüst reduziert, d.h. alle Pages rauslöschen die man nicht in allen Applikationen sehen will, dafür hier bereits all jene externen Javascript-Libraries einbinden die in den produktiven Anwendungen verwendet werden sollen.
Tipp: die OpenSource-Erweiterung ApexLib einbinden, dann profitiert jede mit diesem Template erstellte Anwendung von den Vorteilen der ApexLib.
Wichtigster Schritt hier, ist das Subscriben aller Templates von der in Schritt 1 angelegten Theme-Entwicklungs-Applikation.

Im diesem Grundgerüst einer Applikation verbleiben dann zumeist nur 3 Pages:
- Page 0: zum Einbinden der ApexLib, Menü-Region, …
- Page 1: Standard-Einstiegsseite in die Applikation
- Page 101: Login-/Authentifizierungsseite
3. wenn eine neue Applikation erstellt werden soll
Soll eine neue Applikation mit dem Firmen-Theme erstellt werden, dann wird dazu ganz einfach die Master-Template-Applikation aus Schritt 2 kopiert und erweitert.
Durch das kopieren der Applikation bleiben alle Templates subscribed, d.h. alle Änderungen an der Theme-Entwicklungs-Applikation werden vererbt.

4. Änderung am Theme vornehmen
Sollen Änderungen am Theme vorgenommen werden, entweder weil sich der Firmen-CI ändert oder weil noch ein Fehler entdeckt wurde, dann wird diese Änderung in der Theme-Entwicklungs-Applikation aus Schritt 1 vorgenommen und getestet.
Ist die Entwicklung abgeschlossen, können die Änderungen an alle Subscriber-Applikation weitervererbt werden:

Mit diesen 4 Schritten haben sie ihre Themes auf alle Fälle fest im Griff und haben ganz nebenbei ein Grundgerüst für neue Applikationen geschaffen und müssen nicht immer bei Null beginnen.
