Enhancement spot 增强点

ENHANCEMENT-POINT是在程序中直接插入代码,其概念与BADIUSER_EXIT类似,标准程序预留了部分已定义好的增强点可以让ABAP做插入代码来实现这个增强(也可以自定义增强点,但不能自定义增强选项,增强选项一定是系统预留下来的,如果没有增强选项则该处不可做增强),但是不能做屏幕和菜单增强。

其最大的优势在于方便,可以使用程序中已定义的变量,不像BTEUSER_EXIT中只能使用函数接口传过来看参数。

一般增强步骤:

  1. DEBUG标准程序找到需要增强的位置,点EDIT->SHOW IMPLICIT ENHANCEMENT OPTIONS查看是否

有预留增强选项。(标准程序不能自己创建enhancement option ,只能使用系统预留的)

  1. 创建增强点实现

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

简单实例:

 

 

 

进入创建增强选项界面,输入增强点名及增强容器名(以Z开头),确认回车。

注:Enhancement Spot 就是se18中的Enhancement Spot

 

 

随后Editor上会多出一条语句,然后转到增强模式

 

 

 

 

 

执行结果

 

注:

  1. Enhancement Spot相当于一个容器,创建一个增强点的必要条件是要有一个容器。每个增强点(如ZENH_POINT01)都可以创建到这个容器当中,也可以再创建一个容器。删除这个容器的方法:在本地对象或它的包中删除或在SE18中删除,激活程序,退出再进。
  1. 对于ENHANCEMENT-SECTION, 定义和实现的方法与ENHANCEMENT-POINT一样。

两者的区别是:enhancement-point没有代码,只有一个预留点,允许在这个位置插入新代码(implementation).而nhancement-section和end-enhancement-section.之间有代码,implementation之后,替换旧代码,只执行新代码,原来的代码不再执行。

转自:http://blog.csdn.net/iamah/article/details/7941534

posted @ 2014-03-24 20:04  小鱼儿游  阅读(803)  评论(0)    收藏  举报