美文网首页SAP Technical
带有参数的AMDP的创建

带有参数的AMDP的创建

作者: df6e4e8a0635 | 来源:发表于2018-12-14 12:32 被阅读66次

欢迎关注微信公众号:SAP Technical

什么是AMDP ......

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

AMDP流程的优势

该方法的主要优点是只有AMDP类必须使用ABAP传输机制进行传输。

此过程中不需要HANA交付或HANA传输系统。

开发人员只需要ABAP开发工具来构建和管理CDS视图。无需其他HANA开发工具。

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

为嵌入式SQLScript提供静态检查代码语法着色

用户可以设置背景颜色,以便在类中更好地查看AMDP方法。

用户可以在AMDP方法中访问其他AMDP方法ABAP字典视图ABAP表

像其他常规ABAP方法一样调用AMDP方法。

用户可以在事务ST22中的运行时期间执行各种错误的详细分析

用户可以对常规ABAP类进行修改或增强

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 IMPLEMENTATIONMETHODS process// Write ABAP source code here//…ENDMETHODMETHOD 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_methodimporting value(im_matnr) type mara-matnrexporting value(et_mara) type tt_mara.ENDCLASS.CLASS ztestk IMPLEMENTATION.method my_method by database procedure for HDBlanguage 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_matnrIMPORTING et_mara    = et_mara ).TRY.CALL METHOD cl_salv_table=>factoryIMPORTINGr_salv_table  = r_salvCHANGINGt_table        = et_mara.CATCH cx_salv_msg .ENDTRY.r_salv->display( ).

执行结果

相关文章

  • 带有参数的AMDP的创建

    欢迎关注微信公众号:SAP Technical 什么是AMDP ...... ABAP托管数据库过程是AS ABA...

  • mysql-存储过程

    创建无参数的存储过程 调用无参数存储过程 删除存储过程 创建带有IN类型的存储过程 修改结束标识符为// 调用带有...

  • MySQL存储过程

    存储过程 创建存储过程 执行存储过程 参数: 带有输入参数的存储过程 -- 需求:传入一个员工的id,查询员工信息...

  • linux常用命令注意事项

    如果参数中带有空格,那么需要将该参数用引号引起,否则会被当作两个参数 exp: 如果要创建一个铭文program ...

  • 4.Thread线程对象相关的方法和说明

    1. 线程的创建  我们在创建一个线程的时候都是这么做的  直接使用的带有Runnable接口作为参数的构造器。直...

  • 模板中使用带有参数的函数

    模板中使用带有参数的函数,首先这个函数就有参数,所以在视图函数中定义一个带有参数的函数 路由中表现出带有参数。 模...

  • ios中Block的深入学习-1

    浅谈block,类中带有Block参数的方法和Block的setting方法的先后顺序和区别 block创建后都在...

  • 创建带有属性的节点

    接着,创建一个人物节点 create 是创建操作, Person 是标签,代表节点的类型。{}是节点的属性。 创建...

  • scala 方法

    定义语法: 带有列表参数的方法: 无参数方法

  • 9.MySQL自定义函数

    自定义函数 自定义函数的两个必要条件 参数 返回值 创建自定义函数 函数体 例子 带有参数的自定义函数 删除函数 ...

网友评论

    本文标题:带有参数的AMDP的创建

    本文链接:https://www.haomeiwen.com/subject/bczwhqtx.html