Event handler with example in ABAP
Events: Method of one class can call the method of another class.
Triggering Method: This method raises the event.
Event Handler Method: The method will handle the event.
Register the event handler method using SET HANDLER statement.
1. Goto SE38.
2. Give program name and click on create.
3. Give description and select type executable program.
4. Write code.
REPORT zab_rp_event_hand_mara.
DATA: lv_matkl TYPE matkl,
lv_mtart TYPE mtart,
lv_meins TYPE meins,
lv_mbrsh TYPE mbrsh.
PARAMETERS: p_matnr TYPE matnr.
CLASS class1 DEFINITION.
PUBLIC SECTION.
METHODS display IMPORTING pmatnr TYPE matnr
EXPORTING pmatkl TYPE matkl
pmtart TYPE mtart
pmeins TYPE meins
pmbrsh TYPE mbrsh.
EVENTS: empty.
ENDCLASS.
CLASS class1 IMPLEMENTATION.
METHOD display. "Triggering method
IF pmatnr IS INITIAL.
RAISE EVENT empty.
ELSE.
SELECT SINGLE matkl
mtart
meins
mbrsh
FROM mara
INTO ( pmatkl , pmtart, pmeins, pmbrsh )
WHERE matnr = pmatnr.
ENDIF.
ENDMETHOD.
ENDCLASS.
CLASS class2 DEFINITION.
PUBLIC SECTION.
METHODS message FOR EVENT empty OF class1.
ENDCLASS.
CLASS class2 IMPLEMENTATION.
METHOD message. "Event handler method
WRITE: 'Please enter material number'.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA: obj1 TYPE REF TO class1,
obj2 TYPE REF TO class2.
CREATE OBJECT: obj1,obj2.
SET HANDLER obj2->message FOR obj1. "Register the event
obj1->display(
EXPORTING
pmatnr = p_matnr
IMPORTING
pmatkl = lv_matkl
pmtart = lv_mtart
pmeins = lv_meins
pmbrsh = lv_mbrsh
).
WRITE: / p_matnr,
/ lv_matkl,
/ lv_mtart,
/ lv_meins,
/ lv_mbrsh.
case1
Input
Output
case2
Input
Output
Comments
Post a Comment