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:


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: