APEX 5.1 – die Neuerungen | RedStack

27.
September
2017
Veröffentlicht von: Lisa Klimesch

Es war ein schönes Weihnachtsgeschenk der Oracle APEX-Entwickler: Die heiß ersehnte Application Express Version 5.1 wurde am 21. Dezember 2016 veröffentlicht und steht seitdem zum Download bereit. Wir beschäftigen uns in diesem Artikel mit den "großen" Neuerungen der Version, stellen aber auch ein paar versteckte Features vor.

Es war ein schönes Weihnachtsgeschenk der Oracle APEX-Entwickler: Die heiß ersehnte Application Express Version 5.1 wurde am 21. Dezember 2016 veröffentlicht und steht seitdem zum Download bereit. Wir beschäftigen uns in diesem Artikel mit den "großen" Neuerungen der Version, stellen aber auch ein paar versteckte Features vor.

Um einen ersten Überblick über die Möglichkeiten der Anwendungsentwicklung mit APEX 5.1 zu erhalten, lohnt es sich, die neuen sowie überarbeiteten Packaged Apps – in der APEX-Installation enthaltene Beispiel-Anwendungen – zu installieren. Neu sind die Applikationen "Quick SQL", "REST Client Assistant", "Sample REST Services" und "Sample Interactive Grids", wobei Letztere das wohl wichtigste Feature der Version 5.1 vorstellt: Die sogenannten Interactive Grids.

Interactive Grid

Hinter diesem Begriff versteckt sich ein neuer Report-Typ, dessen einzelne Felder ähnlich wie in Excel bearbeitet und modifiziert werden können. Dabei vereint das Interactive Grid die Anpassungsmöglichkeiten des Interactive Reports mit den Optionen der Tabular Form (nun veraltet), in der man Daten direkt auf der Report-Seite hinzufügen, bearbeiten oder löschen kann. 

Abbildung 1: Datenbearbeitung im Interactive Grid

Neben Funktionen, die bereits aus dem Interactive Report bekannt sind – z. B. das Erzeugen von Diagrammen, Zusammenfassen von Spalten oder Speichern eigener Reports – hat der Benutzer im Interactive Grid die Möglichkeit, den Report durch Drag & Drop individuell zu gestalten und so beispielsweise die Spaltenreihenfolge und -breite nach Belieben zu definieren. Über das Menü der Spaltenüberschriften kann zudem die neue Option "Freeze" angewählt werden: Damit fixiert der Benutzer einzelne Spalten rechts im Report, die auch während horizontalen Scrollens immer angezeigt werden.

Abbildung 2: Spalten "einfrieren"

In Interactive Grids mit Bearbeitungsfunktion können bereits in der Report Query bestimmte Zeilen der Tabelle geschützt werden: So wird genau festgelegt, auf welchen Datensätzen welche DML-Operationen ("U", "D", "UD") durchgeführt werden dürfen. Geschützte Zeilen werden im Bearbeitungsmodus ausgegraut dargestellt. Neu ist auch die automatische Erzeugung von drei neuen Spalten: „APEX$ROW_SELECTOR“ vom Typ „Row Selector“ beinhaltet Checkboxen, „APEX$ROW_ACTION“ vom „Typ Actions Menu“ stellt dem Benutzer verschiedene Funktionen zur Verfügung und „ROWID“ hält als versteckte Spalte die physikalische Adresse eines Datensatzes vor. Der Entwickler kann so differenzierter steuern, welche Optionen er dem Benutzer anbieten möchte. Für die Definition einer Spalte stehen im Interactive Grid nun übrigens alle Item-Typen (Ausnahme: Rich Text Editor) sowie Item-Plugins zur Verfügung. Mehrere Report-Spalten lassen sich zudem deklarativ in einer Spalten-Gruppe zusammenfassen. Der Benutzer erhält auf diese Weise einen besseren Überblick über die Daten.

Abbildung 3: Definition von Spaltengruppen

Das Interactive Grid bietet unterschiedliche Varianten der Report-Pagination, wobei hier insbesondere die Scroll Pagination, auch "Infinite Scrolling" genannt, als neues Features hervorsticht. Während des Scroll-Prozesses werden dabei immer nur die für den Benutzer aktuell sichtbaren Datensets geladen, um so eine bestmögliche Performance bei konstanter Benutzerfreundlichkeit zu gewährleisten. In den bisherigen APEX-Versionen konnte lediglich eine Master-Detail-Beziehung pro Seite abgebildet werden. Das Interactive Grid bringt auch in diesem Punkt eine Erweiterung mit sich: Es lassen sich nun beliebig viele Master-Detail-Beziehungen über beliebig viele Ebenen hinweg darstellen. Neu im Bereich Dynamic Actions ist der Auswahltyp "Columns", der sowohl in einem Event, als auch einer bestimmten Aktion genutzt werden kann. Ändert der Benutzer beispielsweise einen Spaltenwert im Interactive Grid, kann nun mit einer Dynamic Action entsprechend darauf reagiert werden. 

Oracle JET Charts

Die Packaged App "Sample Chart" ist zwar schon aus früheren APEX Versionen bekannt, wurde jedoch für das neue Release erweitert und dient nun der Vorstellung eines weiteren APEX 5.1 Features: Oracle JET Charts. Dem APEX-Entwickler stehen nun verschiedene neue Diagramm-Typen wie beispielsweise Polar, Funnel oder Radar zur Verfügung. Alle grafischen Darstellungen erscheinen im modernen HTML5-Design, können in den Einstellungen oder auch über JavaScript APIs individuell angepasst werden und reagieren responsiv auf Änderungen der Displaygröße oder weitere Eigenheiten des jeweiligen Endgeräts. 

Abbildung 4: Kreisdiagramm im neuen Look

Ermöglicht wird das durch eine neue Chart-Engine, die auf Komponenten der Oracle JavaScript Extension Toolkit (JET) Data Visualizations, einem Open Source JavaScript Framework, basiert. AnyChart-Diagramme aus älteren APEX-Versionen können über einen Migrations-Wizard in JET Charts umgewandelt werden. Eine Auflistung der neuen Attribute verschiedenster Diagramm-Typen würde den Rahmen dieses Artikels sprengen – beispielhaft seien hier drei interessante Neuerungen erwähnt: 1. Diverse deklarative Diagramm-Attribute ermöglichen eine individuelle Auswahl von Cursor-Effekten, Animationen oder Tooltip-Optionen. 2. Im Bereich „Series“ kann nun jede SQL-Abfrage mit mindestens zwei Spalten als Diagramm-Grundlage verwendet werden – der Entwickler muss unter „Column Mapping“ lediglich entscheiden, auf welche Weise die selektierten Spalten für die grafische Darstellung genutzt werden sollen. 3. Die Definition der X- und Y-Achse wurde in einen eigenen Menüpunkt gepackt – dort können nun nicht nur Haupt- und Hilfslinien, sondern auch Format und Skalierung der Achsenwerte definiert werden. 

Universal Theme

Die Packaged App "Universal Theme" (auch zu finden unter apex.oracle.com/ut) wurde komplett überarbeitet und präsentiert nun im neuen Design die diversen Erweiterungen des Universal Theme unter APEX 5.1. Interessant ist dabei vor allem die neue Font APEX Icon-Bibliothek, welche den früheren Font Awesome um mehr als 400 neue Zeichen ergänzt. Das Icon-Präfix "fa" wurde dabei beibehalten, um den Umstieg auf Font APEX zu erleichtern. Die neuen Linien-Icons sind schlanker und dadurch deutlich besser skalierbar als ihre Vorgänger, außerdem besitzen sie verschiedenste Anpassungsmöglichkeiten und können beispielsweise animiert, beliebig gedreht bzw. gespiegelt oder durch zusätzliche kleine Icons ergänzt werden.  

Abbildung 5: Beispiel-Icons aus dem Font APEX

Ein weiteres praktisches Feature des Universal Themes ist die Auto-Size-Funktion modaler Dialogfenster: Sie passen sich in APEX 5.1 automatisch an ihren jeweiligen Inhalt an. Darüber hinaus sind nun die sogenannten „Live Template Options“ über die Option "Quick Edit" in der Entwickler-Toolbar erreichbar. Durch eine dem Theme Roller ähnlichen Vorgehensweise können so Template Options des gewünschten Elements zur Laufzeit geändert werden. Das erspart dem Entwickler Zeit, denn er muss nicht mehr zwischen Page Designer und laufender Applikation wechseln und die Seite nach einer Änderung neu laden. Leider besteht beim Menüpunkt „Header“ (Farbauswahl für Regions-Überschriften) weiterhin die Frage, welche Farbe sich denn nun hinter Bezeichnungen wie „Accent 1“ oder „Accent 2“ verbirgt. 

Abbildung 6: Live Template Options

Page Designer

Auch der Page Designer hält einige Neuerungen für APEX-Entwickler bereit: Zunächst wurde die frühere Seitenbearbeitungsansicht "Component View" in den Layout Editor des Page Designers integriert. Damit können Entwickler ihre gewohnte Bearbeitungsansicht, aber gleichzeitig auch die Vorteile des Page Designers nutzen. Wer die Component View ganz ohne Page Designer nutzen möchte, kann die frühere Ansicht in den Benutzer-Präferenzen aktivieren und anschließend über den Button „Legacy Component View“ dorthin navigieren. Die Darstellung des Page Designers kann in APEX 5.1 beliebig angepasst werden: Zur Auswahl steht hier nicht nur die Anzeige von drei bzw. nur zwei Ausschnitten (Layout und Property Editor), die einzelnen Menü-Tabs im Page Designer können auch per Drag & Drop an einen anderen Bereich geheftet werden. 

Abbildung 7: Drag&Drop-Funktion für die Bereiche des Page Designers

Vorteile im Hinblick auf Übersichtlichkeit und Effektivität bieten außerdem sowohl die deutliche Kennzeichnung konditionierter Seitenelemente durch einen lila Punkt wie auch die neu eingerichtete Suchleiste im Property Editor, in der Entwickler nach bestimmten Ausdrücken filtern und direkt zur gesuchten Eigenschaft springen können. 

Shared Components

Auch in den sogenannten Shared Components, den „gemeinsamen Komponenten“, verstecken sich verschiedene Neuerungen. Anstelle der Standard-Icons im App Builder, die die Initialen von selbst erstellten Applikationen anzeigen, können nun auch eigene Bilder genutzt werden: Im Bereich „Application Definition Attributes“ der Shared Components gibt es den neuen Menüpunkt „Application Icon“. Hier wird lediglich der Dateiname des gewünschten Bildes (nicht die Referenz durch #APP_IMAGES#) erwartet. Einzige Voraussetzung: Das Bild muss vorher als „Static Application File“ hochgeladen worden sein. Der neue Menüpunkt „Favicon“ im Bereich „User Interface“ ist ebenfalls eine neue deklarative Eigenschaft, mit dem für alle Seiten der Applikation eigene Favicon-Symbole im Browser-Tab gesetzt werden können. An dieser Stelle muss nur noch der entsprechende HTML-Link-Tag eingefügt werden, schon wird das Standard-Favicon durch das eigene ersetzt.

Abbildung 8: Definition eines Favicons für die Applikation

Wählt man im Bereich „User Interface Details“ den Menüpunkt „Navigation Menu“, findet man dort eine weitere kleine Neuerung der APEX 5.1-Version: Die Navigationsleiste einer Applikation kann nun auch vollständig ausgeblendet werden. Werfen wir noch einen Blick auf den Bereich „Static Files“ in den Shared Components: Hier haben Entwickler ab 5.1 die Möglichkeit, gleich mehrere Dateien auszuwählen und diese gemeinsam hochzuladen – eine deutliche Erleichterung im Gegensatz zu früheren Versionen.

Items und Seiten

Das Hochladen mehrerer Dateien steht übrigens nicht nur Entwicklern, sondern auch Benutzern zur Verfügung: Im „File Browse“-Item kann dieses Features ebenfalls genutzt werden. Ab 5.1 steht außerdem ein neuer Item-Typ in der Page Designer Galerie zur Auswahl: Das Element „Percent Graph“ visualisiert Werte im Bereich von 0 bis 100 in Form eines Prozentbalkens. In den dazugehörigen Eigenschaften können unter anderem Balkenbreite, Vorder- und Hintergrundfarbe sowie Textfarbe definiert werden. Im Package APEX_ITEM ist die neue Funktion „Switch“ verfügbar, mit der in Reports oder im Interactive Grid ein „Ja/Nein“-Kippschalter, generiert werden kann. 

Abbildung 9: Beispiel-Report mit der Funktion APEX_ITEM.SWITCH

In den Seiten-Eigenschaften stellt die Option „Reload on Submit“ eine interessante Neuerung dar. Dabei stehen zwei Auswahlmöglichkeiten zur Verfügung: „Always“ und „Only for Success“. Letztere ist die neue Standard-Einstellung für APEX 5.1: Nach einem Submit werden Inhalte mittels AJAX-Request zunächst validiert und anschließend verarbeitet. Tritt beim Validieren ein Fehler auf, wird die Seite – im Gegensatz zu früher – nicht neu geladen. Die entsprechende Fehlermeldung wird dem Benutzer dynamisch angezeigt. Dieses Vorgehen erhöht die Benutzerfreundlichkeit der Anwendungen: Ladezeiten werden so gering wie möglich gehalten, während gleichzeitig sichergestellt wird, dass vom Benutzer bereits eingetragene Werte (vor allem in Passwort- und File-Browse-Items) auf der Seite erhalten bleiben. Die Einstellung „Always“ dagegen bewirkt, dass die Seite nach einem Submit auf jeden Fall neu geladen wird, unabhängig davon, ob die Validierung erfolgreich war oder nicht. Wer in seinen Applikationen oft Kalender im Einsatz hat, dem sei die Packaged App „Sample Calendar“ empfohlen, in der die 5.1-Neuerungen speziell für Kalenderseiten anhand von praktischen Beispielen erläutert werden. Unter anderem sind drei neue Event-Optionen im Bereich Dynamic Actions verfügbar, mit denen auf die Auswahl eines Datums bzw. Termins oder einen Wechsel der Kalenderansicht reagiert werden kann. Außerdem steht es Entwicklern nun frei, auf der jQuery FullCalendar Bibliothek (ab 5.1 in der aktualisierten Version 2.9.1) basierende Standard-Eigenschaften jederzeit anhand des neuen Kalender-Attributs „Initialization JavaScript Code“ an den eigenen Bedarf anzupassen.  

Fazit

Dieser Einblick in einige der neuen Features zeigt, dass sich die Anwendungsentwicklung auch mit APEX 5.1 wieder unkomplizierter, individueller und effektiver gestalten lässt. Es lohnt sich auf jeden Fall, die neue Version zu installieren, auszuprobieren und dabei viele weitere tolle Neuerungen zu entdecken! 

Initiates file downloadHier geht es zum PDF des Artikels.

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.