how to use events in sap ABAP?

There are 4 steps to accomplish the events:

  1. Events raise
  2. Event handler
  3. Set handler
  4. Call Method

For File Structure :

  • YYREX_Events_Top – Data
  • YYREX_Events_CL1 – classes
  • YYREX_Events_O01 – PBO
  • YYREX_Events_I01 – PAI

Create objects(YYREX_Events_TOP)

 
* Deffered to declare class before creating objects

PROGRAM YYREX_EVENTHANDLER_CONCEPT.
Class:  lcl_processor DEFINITION DEFERRED,
        lcl_handler DEFINITION DEFERRED.

Data: go_processing TYPE REF TO lcl_processor,
      go_handling TYPE REF TO lcl_handler.


Create Classes(YYREX_Events_CL1)

 

* create class
class lcl_processor DEFINITION.
  PUBLIC SECTION.
  EVENTS trigger.
  METHODS trigger_event.
  ENDCLASS.

class lcl_processor IMPLEMENTATION.
  METHOD trigger_event.
    RAISE EVENT trigger.
    ENDMETHOD.
  ENDCLASS.

class lcl_handler DEFINITION.
  PUBLIC SECTION.
  METHODS return FOR EVENT trigger
        OF lcl_processor.
class lcl_handler IMPLEMENTATION.

  METHOD return.
    MESSAGE 'you clicked return ' TYPE 'I'.
  ENDMETHOD.
  ENDCLASS.




Screen PAI and PBO

 

*Screen number
PROCESS BEFORE OUTPUT.
 MODULE STATUS_9001.
*
PROCESS AFTER INPUT.
 MODULE EXIT_COMMAND AT EXIT-COMMAND.
 MODULE USER_COMMAND_9001


Create objects and set handler, call method

MODULE user_command_9001 INPUT.
  IF Sy-ucomm = 'MSG'.
*      MESSAGE 'you click on button' TYPE 'I'.
    Create OBJECT go_processing.
    Create OBJECT go_handling.
    Create OBJECT go_handling1.
    SET HANDLER  go_handling->return FOR go_processing.
    CALL METHOD go_processing->trigger_event.
  ENDIF.

ENDMODULE.

Leave a Comment