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

前言部分
大家可以关注我的公众号,公众号里的排版更好,阅读更舒适。
正文部分
什么是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的创建的更多相关文章
- 【ABAP系列】ABAP CL_ABAP_CONV_IN_CE
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]ABAP CL_ABAP_CON ...
- 【ABAP系列】SAP ABAP 开发中的SMARTFORMS 参数
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 开发中的SMA ...
- 【ABAP系列】SAP abap dialog screen屏幕参数简介
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP abap dialog ...
- 【ABAP系列】SAP ABAP 给初学者-解读function函数的export和import等参数
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 给初学者-解读 ...
- 【ABAP系列】SAP ABAP中将字符格式的金额转换为数值的函数
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP中将字符格式的金 ...
- 【ABAP系列】SAP ABAP 为表维护生成器创建事务代码
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 为表维护生成器 ...
- 【ABAP系列】SAP ABAP DATA - COMMON PART
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP DATA - ...
- 【ABAP系列】SAP 使用特殊的技术更新数据库(ABAP)
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 使用特殊的技术更新数据库 ...
- 【ABAP系列】SAP 使用事务码DBCO实现SAP链接外部数据库以及读取例程
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 使用事务码DBCO实现S ...
随机推荐
- strace分析启动流程
strace -ttt /usr/local/mysql/bin/mysqld 2>&1 |tee 1.log vi 1.log 1 1530183737.761709 execve(& ...
- MySQL中主键的选择与磁盘性能
偶然看到了“Fotolog: Scaling the World\'s Largest Photo Blogging Community”,才发现很多数据库的优化其实道理都很简单,至高境界是当你面对问 ...
- php类知识 self $this都只能在当前类中使用
$this是当前对象的指针,self是当前类的指针 $this只能用在成员方法中,不能存在于静态方法 self 静态方法和成员方法中都能使用 self可以访问类常量,静态属性,静态方法,成员方法--- ...
- VC:检测网络连接的方法
方法一: #include "stdafx.h" #include "windows.h" #include <Sensapi.h> #includ ...
- Java根据余弦定理计算文本相似度
项目中需要算2个字符串的相似度,是根据余弦相似性算的,下面具体介绍一下: 余弦相似度计算 余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小.余弦值越接近1,就表明夹角越接近0度, ...
- Python 简易Cmd控制
Cmd控制 昨天看到了别的组的部署方案,使用python来控制的,我们是用shell 今天尝试了一下 code import os import sys from cmd import Cmd cla ...
- vue 钩子函数的使用
1.什么是自定义指令,有哪些钩子函数及自定义指令的使用场景 ①自定义指令是什么?以及自定义指令的使用场景 在Vue中,有很多内置指令,但是这些指令只能满足我们最基础的使用,当我们在实际项目中遇到了必须 ...
- 批量修改谷歌浏览器(Chrome)地址栏保存的历史记录及导出功能探索研究
内网IP调整引发的Chrome历史记录修改及ShadowRoot的学习 由于IP经常变动, 导致本地项目的那些存在地址栏的历史记录就都失效了, 突然脑洞大开, 有没有办法修改本地历史记录的方法? 想法 ...
- leetcode题目2.两数相加(中等)
题目描述: 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字. 如果,我们将这两个数相加起来,则会返回一个新的链表来 ...
- Linux TCP自连接问题
[参考文章]:net.ipv4.ip_local_port_range 的值究竟影响了啥 [参考文章]:Linux内核参数优化 最近卸载MySQL服务偶尔会遇到MySQL端口自连接问题.导致MySQL ...