Inhaltsverzeichnis

Oracle Apex 20.2 - Mit den APEX Automations Feature Code im Hintergrund bei Bedarf starten

Mit dem APEX Automations Feature (Declarative asynchronous processes ) läßt sich gut Logik im Hinterrund der Applikation bei Bedarf ausführen.

 APEX Automations

PDF ⇒ APEX Connect 2021 - APEX 20.2 Automations Feature und der Oracle Scheduler im Einsatz - Mittwoch, 5. Mai, 14:00 - 14:40 Online

Typische Business Cases:

Workflows anstarten wenn bestimmte Daten in der Datenbank vorliegen

Regelmäßig im Hintergrund etwas starten

Vorteil:

Nach einen erneuten Deployments prüfen ob die APEX-Automations noch nicht deaktiviert sind!

Anlegen

Ablauf

 Interner Ablauf APEX Automations Feature

Die Automation

 Oracle APEX Automations

Voraussetzung

Das Schema in der die APP läuft muss das Rechte „create Job“ besitzen!

# als SYS
 
GRANT CREATE job TO GPI;

Anlegen über die APEX Oberfläche

Anlegen in der Applikation unter “Shared Components” /  ” Application Logic - Automations“

 Oracle APEX Automations anlegen

Über die Oberfläche definieren:  Oracle APEX Automations anlegen}

Auf die STATIC ID achten, über diese wird der Automation Task später in der API angesprochen!

In der Query kann auf die letzte Ausführung der Automation referenziert werden:

SELECT * 
  FROM {TABLE}
 WHERE created_at > apex_automation.get_last_run;

Im den Aktionen der Automation kann per „:“ Notation auf die Spalten in der Automation Check Query zugegriffen werden, über die API können Log Einträge erstellt und die Ausführung der Aktion gesteuert werden.

Beispiel Action:

BEGIN
 
  apex_automation.log_info(         p_message     => 'Found '||:ENAME );
 
  IF :ENAME = 'Gunther' THEN
      apex_automation.skip_current_row( p_log_message => 'Gunther is found' );
      apex_automation.log_warn(         p_message     => 'Gunther is found' );
  END IF;
 
  IF :ENAME IS NULL THEN   
      apex_automation.exit(p_log_message => 'No Member Name found' );
  END IF;   
 
END;

Über die API Aufrufen

Referenziert wird der Automation Task über seine Static ID.

Siehe dazu ⇒ https://docs.oracle.com/en/database/oracle/application-express/20.2/aeapi/APEX_AUTOMATION.html

Zum Beispiel über Button mit PL/SQL aufrufen:

apex_automation.execute(
        p_static_id       =>  'new-emp-message'
);

Abfragen

Metadaten abfragen:

Was wurde angelegt:

Monitoring


Intern

Was wird erzeugt? – Wer ruft das dann auf?


Quellen

Oracle Doku:

Web: