Ereignisse in der ABAP-Klasse

Einführung

Veranstaltungen in ABAP-Klasse sind die Funktionen in einer Klasse, die die Ereignishandler einer anderen Klasse basierend auf den Ergebnissen auslöst. Mit Hilfe von Events können beliebig viele Event-Handler-Methoden aufgerufen werden. Die Verbindung zwischen den Auslöseereignis und Ereignishandler wird zur Laufzeit entschieden.

Definition

Ein Ereignis ist der Mechanismus, durch den eine Methode einer Klasse die Methode einer anderen Klasse aufrufen kann, ohne diese Klasse zu instanziieren.

Schritte zum Hinzufügen von Ereignissen in der ABAP-Klasse

  • Definiere ein Ereignis
  • Definiere eine Methode
  • Ereignis und Methode verknüpfen
  • Erstellen Sie eine auslösende Methode, um das Ereignis auszulösen
  • Definieren Sie die SET HANDLER-Anweisung an einer Instanz im Programm

Punkte, die man beachten sollte

  • Ereignishandlermethode wird durch FOR EVENT . definiert VON .
  • Es hat nur Ausgabeparameter.
  • Um Ausgabeparameter an die Event-Handler-Methode zu übergeben, wird die RAISE EVENT-Anweisung verwendet.
  • Die Methode SET HANDLER wird verwendet, um das Ereignis mit seinen Handlermethoden in einem Programm zu verknüpfen.

Arten von Ereignissen

Es gibt zwei Arten von Ereignissen:

  • Instanzereignisse: Instanzereignisse können nur in Instanzmethoden ausgelöst werden. Es wird mit der EVENTS-Anweisung deklariert.

VERANSTALTUNGEN ….

  • Statische Ereignisse: Statische Ereignisse werden sowohl von Instanz- als auch von statischen Methoden ausgelöst. Und auch statische Methoden können nur statische Ereignisse auslösen. Es wird mit CLASS-EVENTS deklariert.

KLASSEN-VERANSTALTUNGEN ….

Syntax

FÜR VERANSTALTUNG VON .

Beispiel

Lassen Sie uns ein Beispiel festhalten:

**** Hauptklassendefinition****

KLASSE zcl_demo DEFINITION.

ÖFFENTLICHER ABSCHNITT.

DATEN : num1 TYP I.

METHODEN: vergleichen IMPORTING num2 TYP I.

EREIGNISSE: event_compare.

ENDKLASSE.

****Ereignishandlerdefinition****

KLASSE zcl_eventhandler DEFINITION.

ÖFFENTLICHER ABSCHNITT.

METHODEN: handling_compare FÜR EREIGNIS event_compare OF zcl_demo.

ENDKLASSE.

****Klasse Umsetzung ****

KLASSE zcl_demo IMPLEMENTATION.

METHODE vergleichen.

Zahl1 = Zahl2.

Wenn Anzahl1 > 10.

EREIGNIS ANHEBEN event_compare. „Eine Veranstaltung auslösen

ENDIF.

ENDMETHODE.

ENDKLASSE.

 

****Event-Handler-Implementierung ****

KLASSE zcl_eventhandler IMPLEMENTATION.

METHODE handling_compare.

SCHREIBEN: „Ereignis ausgelöst… Num1 ist größer als 10..“

 

ENDMETHODE.

ENDKLASSE.

START-DER-AUSWAHL.

****Klassenobjekt erstellen****

DATEN : object_demo TYPE REF TO zcl_demo,

****Ereignis-Handleobjekt erstellen****

object_eventhandler TYPE REF Zu zcl_eventhandler.

OBJEKT ERSTELLEN object_demo.

CREATE OBJECT object_eventhandler.

SET HANDLER object_eventhandler-> handling_compare FOR zcl_demo. „Handler einrichten

object_demo-> vergleichen(2).

Ereignisse in der ABAP-Klasse

Kommentare: 2

Hinterlassen Sie eine Nachricht

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.