一.ABAP环境配置:
使用AMDP需要配置eclipse环境,使用eclipse软件才能编写类与数据定义语言源。
点击跳转: https://jingyan.baidu.com/article/67508eb471dd5c9ccb1ce458.html
eclipse添加ABAP插件时候,去这里https://tools.hana.ondemand.com/ 查看对应eclipse的对应版本插件链接,如图

二.数据源
ABAP托管数据库过程(ABAP-Managed Database Procedure,以下简称AMDP)是在APAP on SAP HANA开发中的一种优化模式。AMDP使用数据库语言书写,比如Native SQL或者是SQL Script,并且在AMDP类的AMDP方法内实现。因此用它开发数据库过程就有点类似于编辑ABAP类。

简而言之,AMDP允许开发者直接在ABAP中写数据库过程。
数据源可以把它当作一个SAP底表使用,它的优势在于多个数据处理在数据库层,没有占用应用层的内存,提升系统效率;

AMDP还能提供以下好处:

SQL Script的静态代码检查
语法高亮(支持pretty printer格式优化器) 
在AMDP内访问其它AMDP方法、ABAP字典的视图和表 
可以像普通的ABAP方法一样调用(不包括AMDP function)  
使用ST22进行运行时错误的详细分析

AMDP数据源有两部分组成:数据定义语言源+类

  1. 创建一个: data definition(数据定义)输入名称之后点击完成;
    


  1. 修改其中的代码
    

上代码直接拷贝:

@EndUserText.label: 'LMF_TEST'
define table function ZTB_LMF_TEST
with parameters @Environment.systemField: #CLIENTp_clnt   : abap.clnt
returns
{mandt   : abap.clnt;EBELN   : ebeln;EBELP   : ebelp;ERNAM   : ernam ;MATNR   : matnr ;LIFNR   : lifnr ;  }
implemented by method zlmf_test=>get_mm_ekpo;
  1. 创建一个类:填写Z开头类名称,填写描述之后,点击完成。

  2. 写好取数逻辑和返回参数。

上文本代码:

CLASS zlmf_test DEFINITIONPUBLICFINALCREATE PUBLIC .PUBLIC SECTION.INTERFACES: if_amdp_marker_hdb.   "固定写法CLASS-METHODS:get_mm_ekpo for table FUNCTION ztb_lmf_test.PROTECTED SECTION.PRIVATE SECTION.
ENDCLASS.CLASS zlmf_test IMPLEMENTATION.METHOD get_mm_ekpo BY DATABASEFUNCTION FOR HDB LANGUAGESQLSCRIPT  OPTIONS READ-ONLYUSING EKKO EKPO .LT_YSL =SELECT DISTINCTA.mandt,a.EBELN,b.EBELP,a.ERNAM ,b.MATNR,a.LIFNRfrom ekko AS aleft join ekpo as b on a.mandt = b.mandt and a.ebeln = b.ebelnwhere  A.ERNAM = 'LIMF'AND  a.MANDT = P_CLNT;RETURNSELECTmandt,EBELN,EBELP,ERNAM ,MATNR,LIFNRFROM:LT_YSL;ENDMETHOD .
ENDCLASS.
  1. 把数据定义和类同时激活,完成简单数据源

在SAP代码中调取数据源:

参考链接:
详细AMDP解释和实现—>

ABAP AMDP数据库存储过程(数据源)相关推荐

  1. SAP AMDP数据库存储过程,AMDP语法实例

    目录 AMDP介绍 AMDP语法 DECLARE变量声明 CURSOR循环(FOR) 数组的使用 IF...ELSE 内表读取 方法嵌套调用 AMDP function,AMDP函数实现 AMDP p ...

  2. ABAP AMDP编写

    ECLIPSE 登录 创建class类 CLASS ZCL_GET_MATERIAL_DEMO_09 DEFINITIONPUBLICFINALCREATE PUBLIC .PUBLIC SECTIO ...

  3. mysql过程异常处理_mysql数据库存储过程异常处理

    14.1.4  定义条件和处理程序 定义条件和处理程序是事先定义程序执行过程中可能遇到的问题.并且可以在处理程序中定义解决这些问题的办法.这种方式可以提前预测可能出现的问题, 并提出解决办法.这样可以 ...

  4. oracle数据库存储过程中NO_DATA_FOUND不起作用解决

    oracle数据库存储过程中NO_DATA_FOUND不起作用 1.首先创建一个表lengzijiantest,表中只有一个字段f_id ? 1 2 3 4 5 [cpp] CREATE TABLE ...

  5. JDBC对MySQL数据库存储过程的调用

    一.MySQL数据库存储过程: 1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完毕特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中.用 ...

  6. 使用shell脚本调用mysql数据库存储过程,并设置定时任务

    本来是要mysql数据库中创建事件任务来,定时执行存储过程,做数据传输的...后来由于种种原因,就使用crontab来定时执行,调用存储过程. 实现这个数据传输分为两步: 第一步:编写shell脚本调 ...

  7. mysql数据库存储过程及调用方法

    mysql数据库存储过程及调用方法 mysql5.0以后就支持存储过程了,目前mysql的6.0Alpha版也已经推出.6.0不仅支持大型数据库如oracle等的绝大部分功 能,如存储过程.视图.触发 ...

  8. 数据库:存储过程_数据科学过程:摘要

    数据库:存储过程 Once you begin studying data science, you will hear something called 'data science process' ...

  9. jdbc存储过程mysql_JDBC对MySQL数据库存储过程的调用

    1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完成特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中,用户通过指定存储过程的名字并给出参 ...

最新文章

  1. CentOS上编译安装Nginx
  2. Integer装箱和拆箱 以及扔玻璃球的题目
  3. 构造函数与析构函数到底做了啥?
  4. Android 获取存储卡路径和空间使用情况
  5. Python 技术篇 - pip下载、安装慢解决方法,更改pip数据源实现秒速下载,配置阿里云国内镜像实例演示
  6. 你会先写PRD,还是先画原型?
  7. mysql键太长_数据库,主键为何不宜太长长长长长长长长?(转)
  8. Redis主从复制配置(原理剖析)
  9. Gym 100553J Jokewithpermutation(dfs)
  10. python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)
  11. Cache之组相连映射
  12. php 一键wifi,Mac wifi 自动控制脚本
  13. 【路径规划】基于matlab改进的蚁群算法路径规划【含Matlab源码 335期】
  14. Response.End方法
  15. 利用XML文件的一个写日志的类!!!!!
  16. mysql java驱动 ibm_转!!各种数据库的jdbc驱动下载及连接方式
  17. DirectSHOW中的视频捕捉 (乱七八糟整理)
  18. HTML+CSS淘宝首页[web课设代码+模块说明+效果图]
  19. 知识点滴 - 什么是YAML文件
  20. 关于OSGI中的Felix热插拔技术

热门文章

  1. matlab中的ica工具箱怎么使用吧,ica工具箱matlab
  2. Java利用while求一等比数列_UPC-6760 Problem H九连环【重庆OI2018】等比数列求和JAVA高精度...
  3. 【吴恩达深度学习week4编程作业】
  4. 在Unity中制作逼真的建筑场景
  5. 智商捉急人士求金融数学与matlab相关指导
  6. Linux 给文件夹里面的所有文件授权
  7. element---组件--form
  8. xshell怎么远程linux系统,Xshell怎么远程桌面连接Linux系统?
  9. pandas库随笔——更改Series与DataFrame的列标签
  10. ShareSDK Android端分享与授权示例代码