Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:apex_add_delete_handler

Oracle Apex 18 - Eigenen Delete Handler Prozess trotz "Automatic Row Processing" verwenden - :REQUEST Bindvariable in PL/SQL verwenden

Aufgabe:

In einem Formular wird für die DML Operationen ein „Automatic Row Processing (DML)“ Default APEX Process verwendet.

Auf der Tabelle liegen aber einige Fremdschlüssel Beziehungen, die ein einfaches Löschen einer Master Zeile wie gewollt auch verhindern.

Für Update und Insert / Delete ist es aber sehr praktisch den APEX Default auch zu verwenden! D.h. dieser Handler sollte auch wenn immer möglich verwendet werden.

Aber woher weiß APEX auf der DB was der Handler tun soll?

Die REQUEST Variable (:REQUEST bzw. &REQUEST. ) wird bei einem Page Submit dem den Name des verwendeten Button gefüllt, wie z.B. mit „SAVE“, „DELETE“, „NEW“ usw.

Das kann nun einfach in unserem eigenen Handler in PL/SQL als Bind Variable :REQUEST abgefragt werden!


Lösung:

Einen eigenen Delete Handler als ersten Process hinterlegen und über die p_request Variable über :REQUEST abfragen.

 Eigenen Apex Process Handler für erweitere Funktionen im Automatic Row Processing

Code:

IF  :REQUEST = 'DELETE' THEN
 
  -- delete
  DELETE FROM  ... _ID=:P311_ID;
 
  COMMIT;
 
END IF;

Quellen

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
prog/apex_add_delete_handler.txt · Zuletzt geändert: 2019/01/13 18:41 von Gunther Pippèrr