Ansicht
Dokumentation

ABAPSET_HANDLER_INSTANCE - SET HANDLER INSTANCE

ABAPSET_HANDLER_INSTANCE - SET HANDLER INSTANCE

CL_GUI_FRONTEND_SERVICES - Frontend Services   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

SET HANDLER, FOR

Kurzreferenz



SET HANDLER handler1 handler2 ... FOR ${ oref $|${ALL INSTANCES$} $}
                                  $[ACTIVATION act$].

Zusätze:

1. ... FOR oref

2. ... FOR ALL INSTANCES

3. ... ACTIVATION act

Wirkung

Diese Anweisung registriert die Ereignisbehandler handler1 handler2 ... für die zugehörigen Instanzereignisse der hinter FOR angegebenen Objekte. Mit dem Zusatz ACTIVATION können Ereignisbehandler deregistriert oder eine dynamische Registrierung durchgeführt werden.

Ein Ereignisbehandler wird ausgeführt, wenn das zugehörige Instanzereignis in einem Objekt, für das er registriert ist, mit RAISE EVENT ausgelöst wird. Ein Ereignisbehandler handler kann wie folgt angegeben werden, wobei die Bezeichner die gleiche Bedeutung wie beim expliziten Methodenaufruf haben:

  • meth
  • oref->meth
  • class=>meth

Es können Methoden meth der eigenen oder anderer Klassen angegeben werden, die mit dem Zusatz FOR EVENT evt OF ${class$|intf$} der Anweisungen $[CLASS-$] METHODS als Ereignisbehandler für Instanzereignisse definiert sind. Es können keine Ereignisbehandler für statische Ereignisse angegeben werden. Es muss mindestens ein Bezeichner angegeben werden.

Der in der Definition eines Ereignisbehandlers für Instanzereignisse hinter FOR EVENT OF angegebene Typ class bzw. intf legt die Objekte fest, deren Ereignisse er behandeln kann. Hinter dem Zusatz FOR können einzelne Objekte oder alle behandelbaren Objekte angegeben werden.

Zusatz 1

... FOR oref

Wirkung

Mit diesem Zusatz werden die Ereignisbehandler der Liste handler1 handler2 ... für genau ein Objekt registriert oder deregistriert. Dabei ist oref eine Objektreferenz, die auf ein Objekt zeigen muss, dessen Ereignisse von den angegebenen Ereignisbehandlern behandelt werden können. Die Klasse des Objekts muss gleich class oder Unterklasse von class sein bzw. das Interface intf direkt oder über eine Oberklasse implementieren.

Bei oref handelt es sich um eine funktionale Operandenposition.

Beispiel

Registrierung eines Ereignisbehandlers für ein ALV-Ereignis.

Zusatz 2

... FOR ALL INSTANCES

Wirkung

Mit diesem Zusatz werden die Ereignisbehandler der Liste handler1 handler2 ... für alle Objekte registriert oder deregistriert, deren Ereignisse sie behandeln können. Das sind alle Objekte, deren Klassen gleich class oder Unterklasse von class sind bzw. das Interface intf direkt oder über eine Oberklasse implementieren. Eine solche Registrierung gilt auch für alle auslösenden Instanzen, die erst nach der Anweisung SET HANDLER erzeugt werden.

Hinweis

Die Registrierung mit FOR ALL INSTANCES gilt insbesondere auch für temporäre Instanzen, wie sie bei Verwendung des Instanzierungsoperators NEW entstehen können.

Zusatz 3

... ACTIVATION act

Wirkung

Hinter dem Zusatz ACTIVATION kann ein einstelliges textartiges Feld act angegeben werden. Hat act den Wert "X" (Standardwert), werden die Ereignisbehandler handler registriert, hat act hingegen den Wert " ", wird die Registrierung der Ereignisbehandler handler zurückgenommen. Eine Einzelregistrierung kann aber nicht durch eine Massenderegistrierung deregistriert werden. Umgekehrt können nach einer Massenregistrierung einzelne auslösende Objekte nicht von der Registrierung ausgenommen werden.

Hinweis

Solange die Registrierung einer Instanzmethode als Ereignisbehandler für ein Instanzereignis nicht mit ACTIVATION " " zurückgenommen wird oder alle auslösenden Instanzen gelöscht werden, kann das zugehörige Objekt nicht vom Garbage Collector gelöscht werden, da es noch vom Laufzeit-Framework verwendet wird.

Beispiel

Registrierung eines Ereignisbehandlers mit FOR ALL INSTANCES. Es werden die Ereignisse aller mit NEW erzeugten temporären Instanzen behandelt, bis die Registrierung aufgehoben wird. Das Programm kann als DEMO_SET_HANDLER_FOR_ALL ausgeführt werden.






TXBHW - Original Tax Base Amount in Local Currency   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 6777 Date: 20240523 Time: 133925     sap01-206 ( 112 ms )