公众号: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. 检验注解@Validated 和@valid说明

  2. 集合(五) TreeMap

    4.TreeMap SortedMap接口继承Map接口,是排序键值对的接口,实现排序的的方法是Comparator.而NavigableMap接口继承于SortedMap,新增了一些导航方法.而Tr ...

  3. 题解 比赛 match

    比赛 match Description 有 N 支队伍打比赛.已知有如下条件: • 每支队伍恰好打了 4 场比赛 • 对于一场比赛,如果是平局,双方各得 1 分:否则胜者得 3 分,负者不得分 给定 ...

  4. Subarray Sorting (线段树)

    题意:给你两个长度为 n 的序列 a 和 b , 可以对 a 进行 操作: 选择一段区间[ l, r ] ,使得序列a 在这段区间里 按升序排序. 可以对a 进行任意多次操作,问 a是否有可能变成b序 ...

  5. vue 项目实战之小坑坑

    1. Vue 多个元素动画 ,需要使用 transition-group 标签,并且需要赋值 唯一 key 值. 2. 用ajax 获取到数据赋值给data 后 ,再手动向data里添加的属性无效. ...

  6. TensorFlow使用记录 (八): 梯度修剪 和 Max-Norm Regularization

    梯度修剪 梯度修剪主要避免训练梯度爆炸的问题,一般来说使用了 Batch Normalization 就不必要使用梯度修剪了,但还是有必要理解下实现的 In TensorFlow, the optim ...

  7. Android_(控件)使用AlertDialog实现点击Button显示出多选框

    单击"更多"按钮,显示出多选框 运行截图: 程序结构 (本想通过Button中android:background使用drawable资源下的图片作为按钮背景,设计太丑就去掉了Σ( ...

  8. 关于mysql创建数据库,基字符集 和 数据库排序规则 的对比选择

    1.一般选择utf8.下面介绍一下utf8与utfmb4的区别. utf8mb4兼容utf8,且比utf8能表示更多的字符.至于什么时候用,看你的做什么项目了,unicode编码区从1 - 126就属 ...

  9. 【面试】Redis

    1.如果在setnx之后执行expire之前进程意外crash或者要重启维护了,那会怎么样? set指令有非常复杂的参数,这个应该是可以同时setnx和expire合成一条指令来用的! 2.使用过Re ...

  10. Java多线程-程序运行堆栈分析

    class文件内容 class文件包含JAVA程序执行的字节码:数据严格按照格式紧凑排列在class文件中的二进制流,中间无任何分隔符:文件开头有一个0xcafebabe(16进制)特殊的一个标志. ...