ABAP-引用接口创建全局类
- 打开tcode SE24 创建接口
创建方法GET_AUDAT
为GET_AUDAT创建参数并激活接口
2.创建类YN_CLASS_DEMO_01
为YN_CLASS_DEMO_01引用刚刚创建的接口YN_INTERFACE_DEMO_01
创建属性
引用接口中的方法YN_INTERFACE_DEMO_01~GET_AUDAT
创建event并为其创建参数
编写方法YN_INTERFACE_DEMO_01~GET_AUDAT的实现:
METHOD YN_INTERFACE_DEMO_01~GET_AUDAT.
SELECT SINGLE *
INTO ME->A_VBAK
FROM VBAK
WHERE VBELN = VBELN .
IF SY-SUBRC = 0.
ERDAT = ME->A_VBAK-ERDAT .
ELSE.
RAISE EVENT NODATA EXPORTING MESSAGE = '订单' && VBELN && '凭证日期查询失败!'.
ENDIF.
ENDMETHOD.
创建NODATA_HANDEL用于绑定EVENT,选中NODATA_HANDEL点击
可进行绑定操作
为NODATA_HANDEL方法编写实现,并激活类YN_CLASS_DEMO_01
3.创建程序测试调用YN_CLASS_DEMO_01
*&---------------------------------------------------------------------*
*& Report YN_ZCLASS_TEST_01
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YN_ZCLASS_TEST_01.
TABLES:VBAK.
TYPES: BEGIN OF GTS_DATA,
VBELN TYPE VBAK-VBELN, "SO单号
ERDAT TYPE VBAK-ERDAT, "过账日期
END OF GTS_DATA.
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN MODIF ID C1 OBLIGATORY . "SO单号
SELECTION-SCREEN END OF BLOCK B1.
DATA GT_VBAK TYPE TABLE OF GTS_DATA WITH HEADER LINE .
DATA OL_CLS_SO TYPE REF TO YN_CLASS_DEMO_01 .
CLASS DEMO DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
MAIN.
ENDCLASS.
CLASS DEMO IMPLEMENTATION.
METHOD MAIN.
DATA(OUT) = CL_DEMO_OUTPUT=>NEW( ).
OUT->BEGIN_SECTION( `结果展示`
)->WRITE( GT_VBAK[] ).
OUT->DISPLAY( ).
ENDMETHOD.
ENDCLASS.
START-OF-SELECTION .
SELECT VBELN INTO CORRESPONDING FIELDS OF TABLE GT_VBAK[] FROM VBAK
WHERE VBELN IN S_VBELN .
CHECK GT_VBAK[] IS NOT INITIAL .
CREATE OBJECT OL_CLS_SO .
LOOP AT GT_VBAK .
CALL METHOD OL_CLS_SO->YN_INTERFACE_DEMO_01~GET_AUDAT
EXPORTING
VBELN = GT_VBAK-VBELN
IMPORTING
ERDAT = GT_VBAK-ERDAT
.
MODIFY GT_VBAK .
CLEAR GT_VBAK .
ENDLOOP.
DEMO=>MAIN( ).
结果展示: