Multiple event handlers in OOPS ABAP
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_mara2.
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,not_correct.
ENDCLASS.
CLASS class1 IMPLEMENTATION.
METHOD display.
IF pmatnr IS INITIAL.
RAISE EVENT empty.
ELSE.
SELECT SINGLE matkl
mtart
meins
mbrsh
FROM mara
INTO ( pmatkl , pmtart, pmeins, pmbrsh )
WHERE matnr = pmatnr.
IF sy-subrc <> 0.
RAISE EVENT not_correct.
ENDIF.
ENDIF.
ENDMETHOD.
ENDCLASS.
CLASS class2 DEFINITION.
PUBLIC SECTION.
METHODS message FOR EVENT empty OF class1.
METHODS message1 FOR EVENT not_correct OF class1.
ENDCLASS.
CLASS class2 IMPLEMENTATION.
METHOD message.
WRITE: 'Please Give material number'.
ENDMETHOD.
METHOD message1.
WRITE: 'Material number not in table'.
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
DATA: obj1 TYPE REF TO class1,
obj2 TYPE REF TO class2.
CREATE OBJECT: obj1,obj2.
IF p_matnr IS INITIAL.
SET HANDLER obj2->message FOR obj1.
ELSE.
SET HANDLER obj2->message1 FOR obj1.
ENDIF.
obj1->display(
EXPORTING
pmatnr = p_matnr
IMPORTING
pmatkl = lv_matkl
pmtart = lv_mtart
pmeins = lv_meins
pmbrsh = lv_mbrsh
).
IF lv_matkl IS NOT INITIAL AND lv_mtart IS NOT INITIAL AND lv_meins IS NOT INITIAL AND lv_mbrsh IS NOT INITIAL.
WRITE: / p_matnr,
/ lv_matkl,
/ lv_mtart,
/ lv_meins,
/ lv_mbrsh.
ENDIF.
Case1 - No input
Input
Output
Case2 - Not Correct input
Input
Output
Case3 - Correct input
Input
Output
****************************Thank you ****************************
Comments
Post a Comment