第一代增强(增强嵌入标准程序中)
第一代增强(基于源代码的增强)是sap提供一个空代码的子过程,在这个子过程中用户可以添加自己的代码,控制自己的需求。这类增强都需要修改sap的标准代码,它们在发布的时候都是空的,集中在一些文件名倒数第二个字符为Z的包含程序中,由于在标准程序中,所以所有程序的全局数据都可以使用,但同时系统升级时会被新版本覆盖;这种源代码增强和屏幕增强的说明可以从事务码 spro 后台配置中相关模块的路径里面找到;一般是以UserExit_打头的子模块。这类增强事先要到 service marketplace 申请对象键(ACCESS KEY),然后才能修改这些子程序。
第二代增强(SMOD、CMOD)
第二代增强(基于函数模块的增强),用事务SMOD和CMOD来维护;在SAP发布的早期版本中,Call Function ’EXIT_主程序_XXX’来调用函数模块,而在较新的版本中使用Call Customer-Function ’XXX’调用函数模块的。第二代增强函数名构成:Exit_主程序名_’XXX(3 digital number)’,这样你就可以找到对应的增强函数模块了,它们在发布的时候只有一句代码Include ’ZXXXXXXX’,修改时无需像第一代增强一样需要Access Key,直接双击回车就可以了,但同时这种增强以及后面几代的增强都不能像第一代一样随便使用程序的全局数据,只能使用接口中传递进来的参数。
简单地说,增强就是ERP系统中标准程序的出口,在该出口中由用户根据企业实际需求编写客户化逻辑代码。增强是ERP系统设计时考虑到企业实际的流程有可能和系统默认标准流程不同,在标准流程框架下专门留的接口,每个接口对应一个客户化函数,这些出口函数有标准处理程序传入的参数和输出参数,用户可根据系统输入参数做条件编写适合本企业流程的逻辑,然后通过输出参数传输回。
2. 用户增强的分类
1) 按照增强用途分类
Enhancement exits,即通常所谓的用户出口(User_exit)。用户出口也叫功能出口(Function Exit)。使用Tcode:SE37搜索EXIT*,找到的函数大都是做系统预留的出口函数,前面说过,用户出口是标准程序留给用户的接口,标准程序通常不允许用户任意修改,如果修改需要申请Access Key,而且修改标准程序可能导致的错误erp公司通常是不负责的。在SAP中,自定义的程序通常以保留字Y或Z开头,因此,出口函数中都预包含了一个Z开头的程序。
GUI接口(Gui Codes)。菜单增强就属于这类增强。
屏幕增强(Screen Exit)。比如,在建立采购订单,工单和固定资产主数据时,系统都预留屏幕增强,也就是说允许用户自定义用户输入界面并编写相应的输入输出处理程序。
在各类增强中,可能还用户自己定义结构或表格,系统对应类型T类。比如增强MM06E005允许用户建立两个结构CI_EKKODB和CI_EKPODB。
2) 按照增强发展分类
第一代增强(基于源代码的增强)是sap提供一个空代码的子过程,在这个子过程中用户可以添加自己的代码,控制自己的需求。这类增强都需要修改sap的标准代码,它们在发布的时候都是空的,集中在一些文件名倒数第二个字符为Z的包含程序中,由于在标准程序中,所以所有程序的全局数据都可以使用,但同时系统升级时会被新版本覆盖;这种源代码增强和屏幕增强的说明可以从事务码 spro 后台配置中相关模块的路径里面找到;一般是以UserExit_打头的子模块。这类增强事先要到 service marketplace 申请对象键(ACCESS KEY),然后才能修改这些子程序。
第二代增强(基于函数模块的增强),用事务SMOD和CMOD来维护;在SAP发布的早期版本中,Call Function ’EXIT_主程序_XXX’来调用函数模块,而在较新的版本中使用Call Customer-Function ’XXX’调用函数模块的。第二代增强函数名构成:Exit_主程序名_’XXX(3 digital number)’,这样你就可以找到对应的增强函数模块了,它们在发布的时候只有一句代码Include ’ZXXXXXXX’,修改时无需像第一代增强一样需要Access Key,直接双击回车就可以了,但同时这种增强以及后面几代的增强都不能像第一代一样随便使用程序的全局数据,只能使用接口中传递进来的参数。
第三代增强(基于面向对象概念的增强BADI(business add-in)),源代码发布以接口的方式,通过接口的方法调用来实现使用的。用户增强实际上是实现一个或多个基于这个接口的实现类,因为接口类实际上是一个抽象类,所以对同一个增强会出现不同的源代码,这些不同的源代码是通过过滤器(adapter)来区别用于不同的业务场景的。这种增强是用事务SE18和SE19来实现的。
第四代其实是第三代的加强switch Framework。当sap进入newweaver 7.0以后推出的新增强体系,主要包含四个方面:
Implicit enhancement option 隐式增强
Explicit enhancement option 显式增强
SAP增强Enhancement point和Enhancement section
SAP New Enhancement Framework代码增强
3) 其他相关增强
sap增强进阶(七)- 验证和替代
VOFM例程开发实现定价增强
XK01标准屏幕字段文本描述更改增强