Die "Global Notification" nutzen und IN der Anwendung ändern

Sicherlich kennen Sie die schon die "globale Benachrichtigung" (Global Notification) in einer APEX-Anwendung. Um eine solche Benachrichtigung zu setzen, navigieren Sie zu den Gemeinsamen Komponenten, dort zu Definition und schließlich zu Globale Benachrichtigung (Abbildung 1).

Globale Benachrichtung setzen

Abbildung 1: Globale Benachrichtung setzen

Daraufhin wird der hinterlegte Text auf allen Anwendungsseiten angezeigt.

Globale Benachrichtung in Aktion

Abbildung 2: Globale Benachrichtung in Aktion

Der Text kann auch mit dem Oracle SQL Developer eingestellt werden (Abbildung 3).

Globale Benachrichtigung mit dem SQL Developer setzen

Abbildung 3: Globale Benachrichtigung mit dem SQL Developer setzen

Bei dieser Variante ist besonders der rechte Reiter SQL interessant (Abbildung 4) ...

Vom SQL Developer ausgeführtes SQL

Abbildung 4: Vom SQL Developer ausgeführtes SQL

Mit diesem Wissen ist es nun ein Leichtes, die globale Benachrichtigung aus der Anwendung heraus zu setzen bzw. zu ändern. Der Vorteil liegt auf der Hand: ein "Superuser" kann nun den Benachrichtungstext ändern, ohne sich in die APEX-Entwicklungsumgebung einloggen zu müssen. Erzeugen Sie sich also eine neue Anwendungsseite mit einem Texteingabefeld PX_GLOBAL_NOTIFICATION (HTML-Editor ist auch möglich) und einer Schaltfläche zum Absenden.

Anwendungsseite zur Wartung der "Global Notification"

Abbildung 5: Anwendungsseite zur Wartung der "Global Notification"

Nun fehlen nur noch zwei Seitenprozesse. Der erste Prozeß namens Benachrichtigung Holen wird beim Laden der Seite (onLoad) ausgeführt und lädt die aktuell eingestellte Globale Benachrichtigung in das Seitenelement.

begin
  select global_notification into :PX_GLOBAL_NOTIFICATION
  from apex_applications 
  where application_id = v('APP_ID');
end; 

Der zweite Prozess namens Benachrichtigung Speichern soll beim Absenden der Seite onSubmit ausgeführt werden. Hinterlegen Sie folgenden PL/SQL-Code:

begin
  wwv_flow_api.set_global_notification(
    p_flow_id             => v('APP_ID'),
    p_global_notification => v('PX_GLOBAL_NOTIFICATION')
  );
end; 

Probieren Sie es aus - Sie können die Globale Benachrichtung nun mit dieser Seite setzen, ohne dass Sie sich als Entwickler am APEX-Workspace anmelden müssen. Analog können Sie auch die Verfügbarkeit der Anwendung festlegen ... Der PL/SQL-Code wäre in diesem Fall der folgende ...

begin
  wwv_flow_api.set_flow_status(
    p_flow_id     => v('APP_ID'),
    p_flow_status => 'AVAILABLE|UNAVAILABLE|DEVELOPERS_ONLY|AVAILABLE_W_EDIT_LINK'
  );
end; 

Zurück zur Community-Seite