Benutzer-Werkzeuge

Webseiten-Werkzeuge


prog:apex_add_delete_handler

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
prog:apex_add_delete_handler [2019/01/13 18:40] gpipperrprog:apex_add_delete_handler [2019/01/13 18:41] (aktuell) – [Oracle Apex 18 - Eigenen Delete Handler Prozess trotz "Automatic Row Processing" verwenden - :REQUEST Bindvariable in PL/SQL verwenden] gpipperr
Zeile 1: Zeile 1:
 +====Oracle Apex 18 - Eigenen Delete Handler Prozess trotz "Automatic Row Processing" verwenden - :REQUEST Bindvariable in PL/SQL verwenden====
 +
 +<fc #800000>**Aufgabe**:</fc> 
 +
 +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 <fc #008000>**:REQUEST**</fc> abgefragt werden!
 +
 +----
 +
 +
 +<fc #008080>**Lösung**:</fc>
 +
 +Einen eigenen Delete Handler als ersten Process hinterlegen und über die p_request Variable über <fc #008000>**:REQUEST**</fc> abfragen.
 +
 +{{ :prog:apex:apex_delete_hander.png | Eigenen Apex Process Handler für erweitere Funktionen im Automatic Row Processing }}
 +
 +Code:
 +
 +<code plsql>
 +
 +if  :REQUEST = 'DELETE' then
 +  
 +  -- delete
 +  delete from  ... _ID=:P311_ID;
 +  
 +  commit;
 +  
 +end if;
 +
 +</code>
 +
 +
 +==== Quellen ====
 +
 +  * https://apex.oracle.com/pls/apex/germancommunities/apexcommunity/tipp/5121/index.html
 +
 +
 +
  
prog/apex_add_delete_handler.txt · Zuletzt geändert: 2019/01/13 18:41 von gpipperr