我理解amdp 类似于数据库存储过程,对一系列简单动作的封装,本文主要讲的是创建cds amdp 给abap调用
CDS代码
class ZCL_AMDP_YYYY_DEMO1 definition
public
final
create public .
public section.
INTERFACES if_amdp_marker_hdb.
DATA lt_ZTYYY_TEST type table OF ZTYYY_TEST.
TYPES:
tt_YYY_TEST TYPE TABLE OF ZTYYY_TEST .
CLASS-METHODS GET_DATA
IMPORTING
VALUE(p_MATNR) TYPE MATNR
VALUE(p_WERKS) TYPE WERKS_D
EXPORTING
VALUE(et_DATA) TYPE tt_YYY_TEST.
protected section.
private section.
ENDCLASS.
CLASS ZCL_AMDP_YYYY_DEMO1 IMPLEMENTATION.
METHOD GET_DATA BY DATABASE PROCEDURE
FOR HDB LANGUAGE SQLSCRIPT "hana脚本语言
OPTIONS READ-ONLY " 只读
"用到的表
USING ZTYYY_TEST .
et_DATA = select * from ZTYYY_TEST
where mandt = session_context('CLIENT')
AND MATNR = :P_MATNR
AND WERKS = :P_WERKS;
* et_DATA =
* SELECT
* *
* FROM :lt_ZTYYY_TEST
* WHERE mandt = session_context('CLIENT')
* AND MATNR = :P_MATNR
* AND WERKS = :P_WERKS;
ENDMETHOD.
ENDCLASS
创建report 消费amdp
REPORT ZYYY_TEST_001.
PARAMETERS :P_MATNR TYPE MATNR, "
p_werks TYPE char4.
START-OF-SELECTION .
ZCL_AMDP_YYYY_DEMO1=>GET_DATA(
exporting
P_MATNR = P_MATNR
P_WERKS = p_werks
importing
ET_DATA = data(lt_data)
).
CL_DEMO_OUTPUT=>DISPLAY_DATA(
exporting
VALUE = lt_data
* NAME = " Name
).
完成