SAP enhancement
最近项目中有不少增强需求 ,所以又把做增强的方法总结了一下,加上一些搜索到的内容整理一下,算是给增强开发做一个方法总结。
增强是SAP为满足一些客户的需求,而在系统中预留的一些功能定义。
sap的用户出口分为三代:
1、第一代
sap提供一个空代码的子过程,在这个子过程中用户可以添加自己的代码,控制自己的需求。这类增强都需要修改sap的标准代码。
示例:USEREXIT.. in SAPMV45A
2、第二代
sap提供的是CUSTOMER-FUNCTION,它是通过SMOD和CMOD完成实现。SMOD中可以修改系统为用户预留的一些增强,如果这些增强无法满足需求,只有通过第三方软件来实现。
3、第三代
sap提供的第三代的用户出口就是BADI
BADI的流程为:先在SE18里 查找BADI Name,然后到SE19里看有无实现,如果有,直接修改implement ,否则 create 一个即可。
对于第一代增强,可以用以下方法查找增强:
打开欲增强的程序,点击工具栏上的“Display Object List”按钮,选择Subroutines,查找以“UserExit”开头的子程序,根据子程序前面的注释文档来查找用户出口
对于第二代增强,可以用以下方法查找增强
用户增强通常包括下面3类,顾名思义,就是增强SAP的可能没有提供的功能(通过后台配置也不能实现).
1.E Enhancement exits :就是常说User_exit (用户出口)
使用SE37搜索EXIT*的函数大都是做exit用的,通常里面预包含了一个Z开头
的程序. SE16查询TFDIR(函数表)输入EXIT*也可.
2.C GUI codes( GUI接口增强)
3. S Subscreens (屏幕增强)
另外 ,也有一种通过程序去寻找用户出口的 。