1. 什么是AMDP(ABAP-Managed Database Procedure)

  • AMDP - ABAP管理数据库程序,是一种程序,我们可以使用SQLSCRIPT在AMDP内部编写代码,SQLSCRIPT是一种与SQL脚本相同的数据库语言,这种语言易于理解和编码。 将AMDP方法内的逻辑编码后,可以在ABAP报表中使用,也可以在CDS Table Function中使用AMDP方法。
  • 使用AMDP,可以将ABAP Application编写的代码通过HANA的新特性(代码下推技术),将逻辑在数据库层执行。

2. AMDP的弊端

  • AMDP还不能在Eclipse、HANA Studio上进行Debug操作
  • 不能使用mseg表,但可以使用 MATDOC的代理对象 NSDM_V_MSEG 代替
  • 数据类型必须是表或者标准类型(INT CHAR …)
  • 对于传入的Select-option,必须先在ABAP中用方法 cl_shdb_seltab=>combine_seltabs处理后在传入AMDP;然后在AMDP中用 APPLY_FILTER
  • AMDP不能自动处理Client信息,使用时必须传入SY-MANDT;否则取出来的数据是所有Client的全部数据

3. 实现简单的AMDP Functions for AMDP Methods

  • 在Eclipse或者HANA Studio新建一个ABAP Class

  • 实现Class,必须注明实施的Interface:IF_AMDP_MARKER_HDB(目前只支持HDB,若未来支持其他DB;接口名称则为:IF_AMDP_MARKER_<DB_NAME>)
    • By database Procedure: 实现一个数据库过程。使用此方法,AMDP方法将自动在HANA系统中创建一个过程
    • FOR HDB: 指定数据库类型为 HANA database
    • LANGUAGE SQLSCRIPT: 指定用于实现AMDP的数据库特定语言为 SQLSCRIPT
    • OPTION READ-ONLY: 设置只能在数据库过程中读取
    • USING <table_name/view_name>: 设置使用的数据库表或视图

      CLASS zamdp_demo_01 DEFINITIONPUBLICFINALCREATE PUBLIC .PUBLIC SECTION.interfaces:IF_AMDP_MARKER_HDB.class-methods:get_data_go_back importing value(ip_mandt) type spfli-mandtexporting value(et_spfli) type SPFLI_TAB.PROTECTED SECTION.PRIVATE SECTION.
      ENDCLASS.CLASS zamdp_demo_01 IMPLEMENTATION.method get_data_go_back by database procedurefor hdb language sqlscriptoptions read-onlyusing spfli sflight.
      * GET DATA GO BACKet_spfli =selectt1.MANDT,t2.CARRID,t2.CONNID,t1.COUNTRYFR,t1.CITYFROM,t1.AIRPFROM,t1.COUNTRYTO,t1.CITYTO,t1.AIRPTO,t1.FLTIME,t1.DEPTIME,t1.ARRTIME,t1.DISTANCE,t1.DISTID,t1.FLTYPE,t1.PERIODfrom spfli as T1left outer join sflight as t2ON t1.CARRID = t2.CARRIDand t1.CONNID = t2.CONNIDwhere t1.mandt = :ip_mandt;endmethod.
      ENDCLASS.
      

4. 在ABAP中调用AMDP


DATA: lt_spfli TYPE spfli_tab.START-OF-SELECTION.IF cl_abap_dbfeatures=>use_features(EXPORTINGrequested_features = VALUE #( ( cl_abap_dbfeatures=>call_amdp_method )( cl_abap_dbfeatures=>amdp_table_function ) ) ).zamdp_demo_01=>get_data_go_back(EXPORTINGip_mandt = sy-mandtIMPORTINGet_spfli = lt_spfli ).cl_demo_output=>display( lt_spfli ).ELSE.cl_demo_output=>display( '警告!当前系统不支持AMDP.' ).ENDIF.

SAP 01-初识AMDP(ABAP-Managed Database Procedure)相关推荐

  1. 什么是SAP HANA Database Procedure(数据库过程)

    SAP HANA数据库给开发人员提供了一种编程方式的选择,能够在数据库层直接编写应用逻辑.这些应用逻辑可以实现在所谓的数据库过程(database procedure)里,实现语言为SAP HANA ...

  2. SAP NetWeaver 7.01 SR1 SP3 ABAP Developer Edition 电驴下载

    最近没有研究什么东西,放个下载吧.SAP NetWeaver 7.01 SR1 SP3 ABAP Developer Edition,SAP 推出的免费系统平台,从官方下载速度太慢,而且不能用下载工具 ...

  3. NoSQL学习笔记之MongoDB-01初识NoSQL

    NoSQL学习笔记之MongoDB-01初识NoSQL 一.什么是NoSQL NoSQL的出现背景: 随着互联网的发展,数据量激增,传统的集中式关系型数据库已经无法满足互联网海量数据的存储及使用需求. ...

  4. 使用 SAP Fiori Tools 部署 SAP UI5 应用到 ABAP 服务器时遇到的各种错误和解决办法

    错误1 (node:28340) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'customMiddleware ...

  5. 关于SAP S/4HANA里ABAP源代码管理功能的增强

    关于SAP S/4HANA里ABAP源代码管理功能的增强 和以前老的ECC里的版本管理功能相比,S/4HANA里增添了两个按钮:Fetch Remote Version和Search: 前者可以直接将 ...

  6. 2019年6月SAP发布的未来ABAP平台的发展方向

    未来ABAP平台将始终是这些产品的技术平台: S/4HANA On-Premises和Cloud将基于一个统一的ABAP codeline: SAP云平台上的ABAP编程环境: 什么是SAP Clou ...

  7. SAP CRM IBASE在ABAP update task中实现update和delete操作

    本文介绍SAP CRM IBASE在ABAP update task中实现update和delete操作的原理. 要获取更多Jerry的原创文章,请关注公众号"汪子熙":

  8. SAP官方发布的ABAP编程规范

    最近有朋友在公众号后台给我留言,"Jerry啊,你最近写的都是一些SAP研究院里面用到的新技术,能不能写点SAP传统的开发技术比如ABAP相关的东西"? 其实Jerry在刚开始写这 ...

  9. day24 01 初识继承

    day24 01 初识继承 面向对象的三大特性:继承,多态,封装 一.继承的概念 继承:是一种创建新类的方式,新建的类可以继承一个或者多个父类,父类又可称基类或超类,新建的类称为派生类或者子类 cla ...

最新文章

  1. Java Setamp;HashSet
  2. 树莓派都能做脑机接口了?实时处理8个电极信号,人人用得起 | 开源
  3. c++语言编辑简单的计算器,c++编写简单的计算器程序
  4. 七、数据库技术基础(一)
  5. 卷积神经网络如何解释和预测图像
  6. cfg桩设备型号_什么是CFG桩?带您看下CFG桩施工工艺及流程,检测项目
  7. 哈维玛德学院 计算机,哈维玛德学院优势多多,令人神往!
  8. DES加密(支持ARC与MRC)
  9. VB中PictureBox控件使用教程
  10. VsCode 配置java环境(详细教程)
  11. Python3.7+RF3.1实现接口自动化
  12. git lfs linux,GIT LFS 使用笔记
  13. 防止cookie 欺骗
  14. 《漫游》之《耽美幻想》
  15. 边境的悍匪—机器学习实战:第十章 Keras人工神经网络简介
  16. 简洁大气的资源网站emlog模板
  17. Activity流程引擎表结构
  18. ElasticSearch之搜索词提示Sug
  19. 虚拟试戴用时尚拉近了粉丝和剧中人的距离
  20. 单独关闭腾讯会议或者钉钉的声音

热门文章

  1. 使用阿里接口查询IP归属地
  2. 小程序源码:老年祝福短视频微信小程序源码下载支持流量主
  3. Webshell文件上传漏洞和文件上传攻击相关梳理
  4. 如何自己撸一个简单的开关组件
  5. Winform自定义一个圆形按钮
  6. 详解C盘Windows文件夹
  7. 产了个品...Axure9的下载、安装、汉化和共享
  8. 简单几步骤查看天猫国际同行大量商品的发布、下架时间
  9. 服务器怎么查看系统密钥,如何查找Power BI本地报表服务器产品密钥
  10. HTML5期末大作业:棋牌游戏网站设计——棋牌游戏(8页) HTML+CSS+JavaScript web大作业 静态网页