Erscheinungsmonat | APEX-Version | Datenbankversion | Cloud oder on Premise |
Oktober 2016 | 5.0 | ab 10.2.0.4 | on Premise und Cloud |
Die Sammlung an Packaged Applications, die mit Application Express ausgeliefert wird, wächst mit jedem Release. Im aktuellen Release 5.0.4 finden sich 35 Packaged Apps (und mit dem kommenden Release 5.1 werden es, aller Wahrscheinlichkeit nach, nochmals mehr werden).
Abbildung 1: Packaged Applications in Application Express 5.0
Die mitgelieferten Anwendungen teilen sich in zwei Kategorien auf:
Beispielanwendungen (Sample Applications)
Sample Apps haben Beispielcharakter: Das Ziel ist es, dass man sich diese anschaut, um zu sehen, wie das eine oder andere in Application Express umgesetzt werden kann. Nach der Installation können die Applikationen betrachtet und bearbeitet werden wie eigene Anwendungen. Für Sample Applications gibt es keinen Oracle-Support und sind auch nicht immer upgrade-fähig. Letzteres bedeutet, dass eine Sample Application in einem neuen APEX-Release nicht in-place aktualisiert werden kann; man muss sie löschen und dann die neue Version installieren.
16 der 35 Packaged Applications sind Beispielanwendungen - man erkennt sie am "Sample" im Namen und an der Kategorie Sample Application.
Abbildung 2: Sample Applications
Produktive Anwendungen (Productivity Applications)
Diese Anwendungen haben einen produktiven Charakter - jede Anwendung hat einen bestimmten Zweck. Das Ziel dieser Anwendungen ist gerade nicht, dass man diese verändert, daher sind die Anwendungsattribute und der Page Designer für diese Anwendungen zunächst gesperrt. Klickt man im Application Builder auf die installierte Anwendung, so sieht man nur den in Abbildung 3 gezeigten Dialog.
Abbildung 3: Productivity Applications können zunächst nicht bearbeitet werden
Hinter der Schaltfläche Manage können die Grundeinstellungen verändert werden.
Abbildung 4: Dialog zum Ändern der Grundeinstellungen eine Productivity Application
Solange die Anwendung gesperrt ist, wird sie von Oracle "supported"; man kann also in MyOracle Support, im Rahmen eines gültigen Supportvertrages, Service Requests für diese Anwendungen stellen. Auch sind Productivity Applications upgradefähig; wenn mit einem neuen Release von Application Express eine neuen Version der Anwendung kommt, so kann diese in-Place aktualisiert werden, so dass alle gespeicherten Daten erhalten bleiben. Man hat also eine "echte", produktive Anwendung - voll unterstützt von Oracle.
Oft möchte man aber doch gerne wissen, wie die eine oder andere Seite, das eine oder andere Feature in einer solchen Productivity Application realisiert wurde. Um das zu ermöglichen, bietet Application Express an, die Bearbeitungs-Sperre der Anwendung aufzuheben. Klicken Sie dazu im Dialog Manage auf die Schaltfläche Unlock (Abbildung 5).
Abbildung 5: Entsperren einer Productivity Application
Application Express weist nochmals darauf hin, dass man mit einem Unlock den Support für die Anwendung verliert und dass die Anwendung von da an nicht mehr aktualisierbar ist. Ein Klick auf Unlock Application führt das Entsperren durch. Danach kann die Anwendung betrachtet und verändert werden wie jede andere Anwendung auch.
Abbildung 6: Productivity Application nach dem Entsperren
Fundgrube Packaged Applications: Plug-Ins
Einerseits können Packaged Applicatins (und zwar alle) als Vorlage betrachtet werden, man kann sich ansehen, wie das Oracle Application Express Entwicklerteam bestimmte Aufgaben löst. Zum anderen finden sich in den Packaged Applications einige Komponenten, die sich sehr gut auch in eigenen Anwendungen nutzen lassen. Hier sind vor allem die Plug-Ins zu nennen; diese sind ja schon von Haus aus dazu gedacht, in anderen Anwendungen wiederverwendet zu werden.
Sehr viele nützliche Plug-Ins finden sich in der Beispielanwendung Sample Charts. Diese zeigt nicht nur Diagramme mit den in Application Express eingebauten Charts, sie enthält auch eine Menge Plug-Ins.
Abbildung 7: Plug-Ins in der Beispielanwendung Sample Charts
Wenn Sie ein solches Plug-In in einer eigenen Anwendung verwenden wollen, erzeugen Sie in dieser ein neues Plug-In ( Shared Components - Plug-Ins) als Kopie eines vorhandenen Plug-Ins. Wählen Sie dann die bereits installierte Anwendung Sample Charts aus und schließlich die Plug-Ins, die Sie in Ihre eigene Anwendung übernehmen möchten. Achtung: Standardmäßig sind alle Plug-Ins ausgewählt; mit der Schaltfläche Deselect All unten können Sie zunächst alle Plug-Ins abwählen und dann einzeln die Plug-Ins aussuchen, die Sie wirklich interessieren.
Abbildung 8: Neues Plug-In erstellen als Kopie eines vorhandenen Plug-In
Abbildung 9: Die Plug-Ins sollen aus der Anwendung "Sample Charts" kopiert werden
Abbildung 10: Zunächst sind alle Plug-Ins ausgewählt
Wenn Sie in der Auswahlliste für eines der Plug-Ins Yes auswählen, so wird das Plug-In einfach kopiert; wenn Sie No auswähle, dann nicht. Copy and Subscribe ist etwas besonderes: Das Plug-In wird kopiert und gleichzeitig bei der Sample Charts Anwendung abonniert. Wenn sich am Plug-In in der Anwendung Sample Charts etwas ändert, so kann diese Änderung an alle Abonnenten verteilt werden. Wenn Sie ein Plug-In also in vielen Anwendungen eines Workspace verwenden - und einen Fehler beheben, so ist dieser Subscribe Mechanismus ein sehr bequemer Weg, die Änderung in allen Anwendungen wirksam zu machen. Zu diesem Thema gibt es übrigens einen eigenen Community-Tipp: APEX-Komponenten im Griff: Master-Anwendungen und Subscriptions (der Tipp ist zwar schon etwas älter, aber immer noch gültig). Mit Application Express 5.0 wurde der Subscribe Mechanismus für einige neue Komponententypen eingeführt; unter anderem für Plug-Ins.
Im Gegensatz zu Application Express Standardkomponenten sind die Plug-Ins in den Packaged Applications nicht immer vollständig dokumentiert; Sie brauchen also ein wenig Experimentierfreude, um sie voll auszunutzen. Bei einigen davon lohnt es sich.
Wenn Sie das Plug-In kopiert haben (mit oder ohne Abonnenment), dann können Sie es in Ihrer Anwendung nutzen. Wenn es eines aus der Sample Charts Anwendung ist, können Sie damit moderne Diagrammtypen in Ihrer Anwendung nutzen.
Abbildung 11: Ein Plug-In aus der Anwendung "Sample Charts": D3 Sunburst Chart
Sehr interessant ist das Plug-In Mini-Calendar, welches Sie unter anderem in der Anwendung Bug Tracker oder auch in Sample Calendars finden. Es erlaubt Ihnen, einen kleinen Kalender auf der Seite zu platzieren. Im Gegensatz zum in Application Express bereits enthaltenen Standard-Kalender kann dieser sehr klein und schmal gemacht werden, eignet sich also gut zum Platzieren auf der rechten oder linken Seite. Außerdem enthält er keine Navigationselemente; dient also gut zum schlichten Darstellen eines Datums auf einem Monatsblatt (Abbildung 12).
Abbildung 12: Plug-In " Mini-Kalender" in Aktion
Das Plug-In ist denkbar einfach zu nutzen. Es kommt als Regions-Plug-In daher und erwartet eine SQL-Abfrage, die wenigstens zwei Spalten zurückliefert: Label und Date Column. In den Plug-In Attributes legen Sie schließlich fest, welche der Spalten die Label und welche die Datumsspalte ist. Danach starten Sie die Seite: fertig.
Ein weiteres, interessantes Plug-In ist Timeline and Status List - ebenfalls aus der Anwendung Bug Tracker. Dieses ist allerdings, gerade zu Beginn, etwas schwieriger zu nutzen, da es nicht besonders gut dokumentiert ist; es bietet dafür eine sehr elegante Art und Weise, den Status von bestimmten Eigenschaften auf einer Anwendungsseite zu visualisieren - Abbildung 13 zeigt das Plug-In am Beispiel der Tabelle EMP.
Abbildung 13: Plug-In " Time Line and Status List" in Aktion
Um die in Abbildung 13 dargestellt Ausgabe zu bekommen, gehen Sie wie folgt vor:
select d.dname, e.ename, e.job, e.sal, case when sal > 2500 then 'Hohes Gehalt' else 'Niedriges Gehalt' end as status, case when sal > 4000 then 'red' when sal > 2500 then 'yellow' else 'green' end as color from emp e, dept d where e.deptno = d.deptno
Diese drei Beispiele sollen für den Moment genügen; man sieht sofort, dass es sich empfiehlt, einen Blick auf die in APEX enthaltenen Packaged Applications zu werfen; es kann, auch für eigene Anwendungen, eine ganze Menge dabeisein.