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

Popular posts from this blog

Custom entity/Action dialog in RAP using Unmanaged scenario

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

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