CLASS LCL_HANDLER_01 DEFINITION.
PUBLIC SECTION.
DATA : GS_KNA1 TYPE KNA1.
METHODS GET_KNA1 IMPORTING P_KUNNR LIKE GS_KNA1-KUNNR .
* 声明event
EVENTS EVENT_KNA1 EXPORTING VALUE(P_KNA1) LIKE GS_KNA1.
ENDCLASS.
CLASS LCL_HANDLER_01 IMPLEMENTATION.
METHOD GET_KNA1 .
SELECT SINGLE * FROM KNA1 INTO GS_KNA1 WHERE KUNNR = P_KUNNR .
IF SY-SUBRC = 0.
* 触发EVENT
RAISE EVENT EVENT_KNA1 EXPORTING P_KNA1 = GS_KNA1.
ELSE.
WRITE '没有数据!' .
ENDIF.
ENDMETHOD.
ENDCLASS .
*声明event接收类
CLASS LCL_HANDLER_02 DEFINITION.
PUBLIC SECTION.
* 声明接收event方法
METHODS WRITE_DATA FOR EVENT EVENT_KNA1 OF LCL_HANDLER_01
IMPORTING P_KNA1.
ENDCLASS.
CLASS LCL_HANDLER_02 IMPLEMENTATION.
METHOD WRITE_DATA .
WRITE : /,P_KNA1-KUNNR,P_KNA1-NAME1,P_KNA1-NAME2.
ENDMETHOD.
ENDCLASS .
PARAMETERS LP_KUNNR TYPE KNA1-KUNNR.
START-OF-SELECTION .
* 类实例
DATA : LCL_01 TYPE REF TO LCL_HANDLER_01.
CREATE OBJECT LCL_01.
DATA : LCL_02_1 TYPE REF TO LCL_HANDLER_02.
CREATE OBJECT LCL_02_1.
DATA : LCL_02_2 TYPE REF TO LCL_HANDLER_02.
CREATE OBJECT LCL_02_2.
* 事件注册
SET HANDLER LCL_02_1->WRITE_DATA FOR LCL_01.
SET HANDLER LCL_02_2->WRITE_DATA FOR LCL_01.
* 测试
CALL METHOD LCL_01->GET_KNA1
EXPORTING
P_KUNNR = LP_KUNNR.