1、用于管理数据库的存储过程,有效的整合ABAP Programing language,development tools,and ABAP Lifecycle Management(ABAP生命周期管理)。
2、主要通过ABAP里面的ABAP Class和ABAP interface来实现,而其中的数据库存储过程和参数是通过ABAP Methods来实现的。
3、处理逻辑则是通过SQLScript来实现的,会生成到底层的hana数据库的存储过程。
1、存储过程的开发环境,一般也就是ABAP的开发用户就可以了,并不需要HAHA数据的用户,然后AMDP的框架负责去与底层数据去做相应的连接和处理,他可以自动去创建相应的数据库的存储过程。同时里面的方法也有相应的语法的检查,然后里面的定义的参数可以使用ABAP里面的类型,也可以使用DDIC里面的数据类型。
2、集成进了ABAP的一个生命周期,他可以和其他的ABAP对象很容易的做一个同步已经传输相应的对象到其他系统里面。也可以做一些增强,可以在相应的类里面需要使用相应的接口(if_amdp_marker_hdb),说明这个类是基于AMDP的一个类。
3、它支持的VULUE、IMPORTING、EXPORTING、CHANGING等相应的参数。在写方法时,还需要使用一个特定的关键词,如BY DATABASE PROCEDURE FOR HDB LANGUAGE SQLSCRIPT.如果在方法中使用READ-ONLY告诉我们这个方法只用去读取数据。
4、在相应的AMDP方法被执行的时候,如果相应的语法或者数据问题等,会有相应的错误,错误的类如下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pjeyHO0l-1678933781346)(D:\学习计划笔记\AMDP和CDS\IMAGE\image-20211221141225932.png)]](https://img-blog.csdnimg.cn/494ef1ee0624433fbf21342f0644d9f7.png)
5、处理逻辑在METHOD和ENDMETHOD之间写对应的逻辑,在ABAP中定义和使用的方法入下
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nOTcshdX-1678933781347)(D:\学习计划笔记\AMDP和CDS\IMAGE\image-20211221141357963.png)]](https://img-blog.csdnimg.cn/880192b31963408db244a57f64caa2df.png)
6、注意咋AMDP中的SQL需要写集团这个参数,因为在AMDP中不会自动做集团的区分。同时在调用这个类方法时需要使用try… catch…endtry来捕获这个的异常。在AMDP中也可以做debug来测试数据。
7、在AMDP中一个特定的方法,用于处理选择屏幕上的select-options,有一个CL_SHDB_SELTAB=>COMBINE_SELTABS将这个添加生成一个字符串,然后用在sql中用在where条件中
8、在AMDP中的BADI不支持filters,同时在使用AMDP的时候一定要勾上BADI的选项