ABAP AMDP数据库存储过程(数据源)
一.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数据源有两部分组成:数据定义语言源+类
创建一个: data definition(数据定义)输入名称之后点击完成;
修改其中的代码
上代码直接拷贝:
@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;
创建一个类:填写Z开头类名称,填写描述之后,点击完成。
写好取数逻辑和返回参数。
上文本代码:
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.
- 把数据定义和类同时激活,完成简单数据源
在SAP代码中调取数据源:
参考链接:
详细AMDP解释和实现—>
ABAP AMDP数据库存储过程(数据源)相关推荐
- SAP AMDP数据库存储过程,AMDP语法实例
目录 AMDP介绍 AMDP语法 DECLARE变量声明 CURSOR循环(FOR) 数组的使用 IF...ELSE 内表读取 方法嵌套调用 AMDP function,AMDP函数实现 AMDP p ...
- ABAP AMDP编写
ECLIPSE 登录 创建class类 CLASS ZCL_GET_MATERIAL_DEMO_09 DEFINITIONPUBLICFINALCREATE PUBLIC .PUBLIC SECTIO ...
- mysql过程异常处理_mysql数据库存储过程异常处理
14.1.4 定义条件和处理程序 定义条件和处理程序是事先定义程序执行过程中可能遇到的问题.并且可以在处理程序中定义解决这些问题的办法.这种方式可以提前预测可能出现的问题, 并提出解决办法.这样可以 ...
- oracle数据库存储过程中NO_DATA_FOUND不起作用解决
oracle数据库存储过程中NO_DATA_FOUND不起作用 1.首先创建一个表lengzijiantest,表中只有一个字段f_id ? 1 2 3 4 5 [cpp] CREATE TABLE ...
- JDBC对MySQL数据库存储过程的调用
一.MySQL数据库存储过程: 1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完毕特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中.用 ...
- 使用shell脚本调用mysql数据库存储过程,并设置定时任务
本来是要mysql数据库中创建事件任务来,定时执行存储过程,做数据传输的...后来由于种种原因,就使用crontab来定时执行,调用存储过程. 实现这个数据传输分为两步: 第一步:编写shell脚本调 ...
- mysql数据库存储过程及调用方法
mysql数据库存储过程及调用方法 mysql5.0以后就支持存储过程了,目前mysql的6.0Alpha版也已经推出.6.0不仅支持大型数据库如oracle等的绝大部分功 能,如存储过程.视图.触发 ...
- 数据库:存储过程_数据科学过程:摘要
数据库:存储过程 Once you begin studying data science, you will hear something called 'data science process' ...
- jdbc存储过程mysql_JDBC对MySQL数据库存储过程的调用
1.什么是存储过程 存储过程(英文:Stored Procedure)是在大型数据库系统中,为了完成特定功能而编写的一组的SQL语句集.存储过程经编译存储在数据库中,用户通过指定存储过程的名字并给出参 ...
最新文章
- CentOS上编译安装Nginx
- Integer装箱和拆箱 以及扔玻璃球的题目
- 构造函数与析构函数到底做了啥?
- Android 获取存储卡路径和空间使用情况
- Python 技术篇 - pip下载、安装慢解决方法,更改pip数据源实现秒速下载,配置阿里云国内镜像实例演示
- 你会先写PRD,还是先画原型?
- mysql键太长_数据库,主键为何不宜太长长长长长长长长?(转)
- Redis主从复制配置(原理剖析)
- Gym 100553J Jokewithpermutation(dfs)
- python操作redis set_Python操作redis学习系列之(集合)set,redis set详解 (六)
- Cache之组相连映射
- php 一键wifi,Mac wifi 自动控制脚本
- 【路径规划】基于matlab改进的蚁群算法路径规划【含Matlab源码 335期】
- Response.End方法
- 利用XML文件的一个写日志的类!!!!!
- mysql java驱动 ibm_转!!各种数据库的jdbc驱动下载及连接方式
- DirectSHOW中的视频捕捉 (乱七八糟整理)
- HTML+CSS淘宝首页[web课设代码+模块说明+效果图]
- 知识点滴 - 什么是YAML文件
- 关于OSGI中的Felix热插拔技术
热门文章
- matlab中的ica工具箱怎么使用吧,ica工具箱matlab
- Java利用while求一等比数列_UPC-6760 Problem H九连环【重庆OI2018】等比数列求和JAVA高精度...
- 【吴恩达深度学习week4编程作业】
- 在Unity中制作逼真的建筑场景
- 智商捉急人士求金融数学与matlab相关指导
- Linux 给文件夹里面的所有文件授权
- element---组件--form
- xshell怎么远程linux系统,Xshell怎么远程桌面连接Linux系统?
- pandas库随笔——更改Series与DataFrame的列标签
- ShareSDK Android端分享与授权示例代码