Oracle APEX · · 3 Min.

APEX 26.2: Dashboard-Regionen gemeinsam aktualisieren

Ein einzelner Datenwechsel muss oft Kennzahlen, Diagramme und Tabellen auf einer Seite aktualisieren. `apex.region.multipleRefresh` kann mehrere unterstützte Regionen in einem Ajax-Aufruf bündeln.

In einem APEX-Dashboard zeigt eine Seite häufig dieselben Geschäftsdaten aus mehreren Blickwinkeln: als Kennzahl-Karten, Chart und Interactive Grid. Nach einer Aktion werden diese Bereiche oft nacheinander einzeln aktualisiert. Das erzeugt mehrere Ajax-Aufrufe und kann zu zusätzlichem Netzwerk- und Serveraufwand führen. Oracle APEX 26.2 ergänzt dafür apex.region.multipleRefresh: Unterstützte Regionen werden gemeinsam über einen Ajax-Aufruf aktualisiert.

Statische IDs vergeben

Geben Sie den betroffenen Regionen im Page Designer stabile Static IDs, zum Beispiel orders_grid, sales_chart und kpi_cards. Dann kann eine Dynamic Action nach einem erfolgreichen Prozess die Bereiche gesammelt auffrischen:

apex.region.multipleRefresh([
  "orders_grid",
  "sales_chart",
  "kpi_cards"
]).then(function () {
  console.log("Dashboard aktualisiert");
});

Der Aufruf liefert ein Promise, das nach Abschluss der beteiligten Refresh-Aufrufe aufgelöst wird. Das eignet sich zum Beispiel, um anschließend eine Erfolgsmeldung anzuzeigen oder einen weiteren UI-Schritt freizugeben. Die Static IDs sollten eindeutig und unabhängig von Seitennummern oder wechselnden Komponenten bleiben.

Welche Regionen profitieren?

APEX bündelt Requests für Cards, Charts, Interactive Grids und Template Component Reports. Sie können diese Typen in derselben Liste mischen. Bei anderen Regionen ruft APEX weiterhin deren normale Refresh-Methode auf; diese senden dann eigene Ajax-Aufrufe. Die API bleibt also auch bei gemischten Listen verwendbar, aber die Zahl der Requests sinkt nur für die unterstützten Regionen.

Interactive Grid beachten: Hat ein editierbares Grid noch nicht gespeicherte Änderungen, wird es nicht einfach mit neuen Daten überschrieben. Speichern Sie Änderungen zuerst und aktualisieren Sie die abhängigen Regionen danach.

Nach erfolgreicher Änderung aktualisieren

Platzieren Sie den Aufruf hinter dem Prozess, der die Daten wirklich speichert. Für eine Dynamic Action kann das beispielsweise ein erfolgreicher Ajax-Callback sein. Aktualisieren Sie nur Bereiche, deren Daten von der Änderung abhängen; unnötige Refreshes kosten weiterhin Datenbankarbeit, auch wenn sie gebündelt übertragen werden.

  1. Dashboard-Regionen identifizieren, die dieselben Datenänderungen widerspiegeln.
  2. Unterstützte Regionstypen und stabile Static IDs prüfen.
  3. Eine Aktualisierung erst nach erfolgreichem DML oder Prozessabschluss auslösen.
  4. Im Browser-Netzwerk-Tab kontrollieren, ob unterstützte Regionen gemeinsam abgefragt werden.
  5. Fehler- und Erfolgspfad testen, ebenso leere Ergebnisse und ungespeicherte Grid-Änderungen.

Die API ersetzt kein Performance-Tuning der zugrunde liegenden SQL-Abfragen. Sie reduziert aber die Anzahl einzelner Roundtrips in passenden Dashboards und hält die Oberfläche nach Änderungen konsistent aktuell. Messen Sie vor und nach dem Umbau Request-Anzahl und Antwortzeiten, um den Effekt im eigenen Anwendungskontext zu beurteilen.

Weiterführend: Oracle APEX 26.2 Neuerungen und die JavaScript-Referenz zu apex.region.multipleRefresh.