Einführung

Das SAPGUI filtert im Initialzustand des Controls alle Ereignisse aus, die durch Benutzeraktionen vom Control ausgelöst werden. So wird verhindert, daß permanente Ereignisse - wie zum Beispiel Mausbewegungen - die Verbindung zum Applikationsserver zu stark belasten. Eine Behandlung von Ereignissen ist erst möglich, wenn Sie über Methoden der angelegten Instanz ausgewählte Ereignisse registrieren. Als Standardmethode steht hierfür die Methode SET_REGISTERED_EVENTS zur Verfügung.

Welche Ereignisse auf dem Frontend
abgefangen werden können, entnehmen Sie der Klassendefinition des jeweiligen
Control im
Class
Builder.
Das SAPGUI kodiert ein ausgelöstes Ereignis im Ok-Code, der vom Frontend zum Applikationsserver übertragen wird. So ein Ereignis, das auf dem Frontend ausgelöst wird, hat also noch nichts mit Ereignissen von ABAP Objects zu tun. Um dessen Ereignisbehandlung anzustoßen, muß das Control Framework noch das zugehörige Ereignis der entsprechenden Instanz zuordnen und auslösen.
Es gibt nun zwei Möglichkeiten, das ausgelöste Ereignis im ABAP Programm zu verarbeiten:
· Das Control Framework löst das Ereignis unabhängig von der Ablauflogik des Dynpros aus, d.h. ohne die Ereignisse PAI und PBO zu prozessieren. Solche Ereignisse werden System-Ereignisse genannt. Diese Art der Ereignisverarbeitung ist als default eingestellt.
· Das Control Framework prozessiert nach einem Ereignis den PAI. In diesem Fall müssen Sie die Methode CL_GUI_CFW=>DISPATCHaufrufen, um die Ereignisbehandlung von ABAP Objects selbst anzustoßen. Solche Ereignisse werden Anwendungs-Ereignisse genannt.

Sie müssen selbst entscheiden, ob Sie für Ihre Anwendung System-Ereignisse oder Anwendungs-Ereignisse benötigen. Die Übungen Übung 2: Ein Anwendungs-Ereignis registrieren und Übung 3: Ein System-Ereignis registrieren diskutieren die Konsequenzen der jeweiligen Entscheidung.
Schließlich wird die Methode, die Sie mit dem Ereignis verknüpft haben, automatisch aufgerufen.
Um Ereignisse, die von einem Control ausgelöst werden, verarbeiten zu können, müssen Sie:
· Die Ereignisse bei der Control-Instanz registrieren, so daß sie nicht mehr vom SAPGUI zurückgehalten werden.
· Bei Anwendungs-Ereignissen müssen Sie die statische Methode DISPATCH im PAI aufrufen. Dadurch werden die übermittelten Ereignisse auseinandergesteuert und entsprechende Ereignisbehandlermethoden - sofern vorhanden - aufgerufen.
· Eine Klasse mit Ereignisbehandlermethoden definieren. In den Methoden können Sie weitere Informationen zum Ereignis abfragen und das weitere Verhalten des Control steuern.
· Die Ereignisse Ihrer Control-Instanz mit der jeweiligen Ereignisbehandlermethode verknüpfen. Sie benutzen dafür die Methode SET HANDLER.