其他分享
首页 > 其他分享> > 【ABAP系列】SAP ABAP 带有参数的AMDP的创建

【ABAP系列】SAP ABAP 带有参数的AMDP的创建

作者:互联网

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:【ABAP系列】SAP ABAP 带有参数的AMDP的创建  

 

前言部分

大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。

正文部分

什么是AMDP ......

ABAP托管数据库过程是AS ABAP中的一项新功能,允许开发人员直接在ABAP中编写数据库过程。您可以将数据库过程视为在数据库中存储和执行的函数。实现语言因数据库系统而异。在SAP HANA中,它是SQL脚本。使用AMDP允许开发人员使用ABAP方法和ABAP数据类型在ABAP环境中创建和执行这些数据库过程。

AMDP流程的优势

ABAP托管数据库过程(AMDP)的功能

AMDP类定义的示例

CLASS CL_AMBP_EXAMPLE定义。

公共部分。
INTERFACES IF_AMDP_MARKER_HDB。// HANA DB的标记界面//

METHODS过程//只能使用ABAP代码//
IMPORTING it_param TYPE type1 
EXPORTING et_param TYPE type2。

方法执行//可以使用SQLScript或ABAP代码// 
IMPORTING VALUE(it_param)TYPE type1 
EXPORTING VALUE(et_param)TYPE type2。//需要特定的参数接口//
CHANGING VALUE(ch_param)TYPE type3

ENDCLASS。

AMDP类的实现

​
CLASS CL_AMDP_EXAMPLE IMPLEMENTATION
METHODS process
// Write ABAP source code here//
…
ENDMETHOD
METHOD execute BY DATABASE PROCEDURE //AMDP method marker//
FOR HDB //Database platform//
LANGUAGE SQLScript //Database language//
[OPTIONS READ-ONLY] //Database-specific options//
USING name1 name2 etc… //List of used DDIC entities and AMDPs//
//Write here the SQLScript coding// 
select * from dummy;
…
ENDMETHOD.
ENDCLASS.

​

让我们举一个例子:用输入,输出参数创建AMDP

首先转到HANA Studio中的ABAP建模透视图

Windows-> Perspective-> Open Perspective-> ABAP

创建ABAP类:

​
CLASS ztestk DEFINITION public.

PUBLIC SECTION.

types : tt_mara type table of mara.

interfaces : if_amdp_marker_hdb.

methods : my_method

importing value(im_matnr) type mara-matnr

exporting value(et_mara) type tt_mara.

ENDCLASS.

CLASS ztestk IMPLEMENTATION.

method my_method by database procedure for HDB

language sqlscript options read-only using MARA.

et_mara=SELECT * from MARA where MATNR= IM_MATNR;

endmethod.

ENDCLASS.

​

保存(Control + S)

打开SAP GUI

输入TCODE:SE24(要查看是否创建了您的类)

我们也可以看到我们的方法和代码。

单击“显示”

输入TCODE:SE38(创建报告)

在Report中我们调用class(创建对象的类)

点击创建

在这里输入你的代码来调用类

​
REPORT ZTESTK_REP.
PARAMETERS : p_matnr TYPE matnr DEFAULT ‘000000000000001109’.

DATA : r_amdp TYPE REF TO ztestk,
et_mara TYPE TABLE OF mara,
r_salv TYPE REF TO cl_salv_table.

CREATE OBJECT r_amdp.

r_amdp->my_method( EXPORTING im_matnr  = p_matnr
IMPORTING et_mara    = et_mara ).

TRY.
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table   = r_salv
CHANGING
t_table        = et_mara
.
CATCH cx_salv_msg .
ENDTRY.

r_salv->display( ).

​

 

标签:mara,ABAP,salv,et,SAP,TYPE,AMDP
来源: https://www.cnblogs.com/SAPmatinal/p/11184763.html