SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)

时间:2024-03-23 12:50:18

TCODE:SE38

  1. 介绍

由于在某些业务上三代增强并不能满足我们的需求,所以在三代增强的基础上,SAP开发了第四代增强- Enhancement-Point。其实第四代增强是第三代上的加强,一般只有在User Exit与BADI都无法实现时才用到。而Enhancement-Point分为2种,显示增强和隐示增强。显式增强就是手动加入到程序中的Enhancement options,隐式增强就是系统内置的Enhancement options。

  1. 学习的步骤
  1. Enhancement options的创建。

在SE38的程序内点击最上面的编辑->增强操作->创建选项。

SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)

之后会出现如下界面,依次填写后点击打钩。然后会弹出请求号,保存到请求内即可

SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)

创建好后就会出现下面的界面,单这只是一个增强点,还记得BADI吗?这个和BADI的面向对象的思想类似。你先创建了一个增强点还不行,还必须要实例化它。

SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)

选择这个按钮切换到增强的模式,

SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)

 

此时只有增强的代码才可以编写,而原来程序中的代码全部都不能更改了。接下来创建一个实例化

 

SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)

打钩

SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)

然后就可以在实例化的模块内写代码了

SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)

结果展示:(由于在900不知道为什么一直实例化不成功,找了很久一直没发现什么原因,报错也没有,在实例化的程序内点了**增强,在主程序也**了程序,运行后还是没显示实例化内的代码,初步猜测应该是实例化定义为数据定义而不是CODE导致这种情况。无奈只好换了个客户端去做,换了客户端后就没有这个问题了。)

SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)  SAP 增强学习(4):四代增强 隐式增强(Enhancement-Point)

 

学习心得:。从一代二代三代到四代增强可以看出可以使用增强的范围越来越广了,从一代的只能在找到对应INCLUDE里面取写代码,到四代的已经可以在程序里面写增强了。但是一般来说如果业务流程可以通过系统配置完成的话尽量还是不要使用增强,因为增强毕竟是改了系统的程序,可能或多或少会出现BUG,而且当系统升级的时候有些增强是会被系统覆盖的,可能会导致需要这个增强才能完成的业务会做不过去。

 

容易的地方:增强的查找和管理变得比前几代容易和方便多了。而且写代码也和正常SE38                       写程序完全类似

难点:原来是通过找EXIT或者通过函数查找BAPI,四代增强这是需要直接阅读原程序,找到对应的Enhancement-Point去写代码实现功能