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

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
"Autor: Gunther Pipperr"
prog/apex_add_delete_handler.txt · Zuletzt geändert: 2019/01/13 18:41 von gpipperr