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.

DATAlv_matkl TYPE matkl,
      lv_mtart TYPE mtart,
      lv_meins TYPE meins,
      lv_mbrsh TYPE mbrsh.

PARAMETERSp_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.
    EVENTSempty,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 pmtartpmeinspmbrsh )
             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.
  DATAobj1 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

Popular posts from this blog

New syntax for append- VALUE (new syntax 7.4+) in ABAP

Read statement new syntax in ABAP. (7.4+).

Concatenation new syntax( 7.4+ ).