公众号:SAP Technical
本文作者:matinal
 

前言部分

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

正文部分

什么是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 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 ‘’. 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( ). ​

【ABAP系列】SAP ABAP 带有参数的AMDP的创建的更多相关文章

  1. 【ABAP系列】ABAP CL_ABAP_CONV_IN_CE

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]ABAP CL_ABAP_CON ...

  2. 【ABAP系列】SAP ABAP 开发中的SMARTFORMS 参数

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 开发中的SMA ...

  3. 【ABAP系列】SAP abap dialog screen屏幕参数简介

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP abap dialog ...

  4. 【ABAP系列】SAP ABAP 给初学者-解读function函数的export和import等参数

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 给初学者-解读 ...

  5. 【ABAP系列】SAP ABAP中将字符格式的金额转换为数值的函数

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP中将字符格式的金 ...

  6. 【ABAP系列】SAP ABAP 为表维护生成器创建事务代码

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 为表维护生成器 ...

  7. 【ABAP系列】SAP ABAP DATA - COMMON PART

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP DATA - ...

  8. 【ABAP系列】SAP 使用特殊的技术更新数据库(ABAP)

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 使用特殊的技术更新数据库 ...

  9. 【ABAP系列】SAP 使用事务码DBCO实现SAP链接外部数据库以及读取例程

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 使用事务码DBCO实现S ...

随机推荐

  1. shell进阶--流程

    由于条件判断和循环跟其他语言都大同小异,学过编程的话很好理解,这里只贴出格式,不具体写用法了.(select菜单会详细讲一下) 条件判断 if条件判断 普通if条件判断: 嵌套if条件判断: 循环 f ...

  2. 搭建私有CA

    一.实验目的 搭建私有CA并使其可以实现公司内部的的签名服务. 二.实验环境: 系统架构:Centos7(服务器).Centos6(需要申请证书的服务器)需要的软件包:openssl.openssl- ...

  3. .npy文件怎么打开

    import numpy as np test = np.load(r'C:\Users\SAM\PycharmProjects\TEAMWORK\Preprocess_3D\muchdata-50- ...

  4. BBS-添加文章及文章中图片

    目录 BBS项目中的添加文章 BBS项目中的添加文章中的图片 BBS项目中的添加文章 1.添加文章的时候,我们需要特别注意的是这个地方需要利用到到BeautifulSoup这个模块,因为我们在inpu ...

  5. 201871010126 王亚涛 《面向对象程序设计 (Java)》第十七周学习总结

    内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/12 ...

  6. 【Winfrom-Button】 重写Button,去掉获取焦点时的边框

    Winfrom Button 去掉获取焦点时的边框: 自定义一个Button,重写ShowFocusCues方法 /// <summary> /// 去掉获取焦点的边框 /// </ ...

  7. input框输入手机号码分隔显示

    在input框输入手机号码时,自动加入空格按照3,4,4位显示,如: 实现方法如下: <label>手机号码</label><input type="text& ...

  8. [Linux]ubuntu16.04 nginx彻底删除与重新安装

    nginx彻底删除与重新安装 查看nginx正在运行的进程,如果有就kill掉 sudo netstat -ntlp | grep nginx sudo kill -9 进程id 删除nginx,pu ...

  9. 简单的尝试下angr

    0x00:前言 之前接触到了符号执行,可以用于程序的自动化分析,感觉还是比较神奇,工业上的具体用法不是很清楚,不过在CTF中这个东西慢慢在流行...从defcon 2016就可以看出(有很多人解re用 ...

  10. MessagePack Java 0.6.X 多种类型变量的序列化和反序列化(serialization/deserialization)

    类 Packer/Unpacker 允许序列化和反序列化多种类型的变量,如后续程序所示.这个类启用序列化和反序列化多种类型的变量和序列化主要类型变量以及包装类,String 对象,byte[] 对象, ...