1.简要介绍增强情况1.1SMOD包括具体的增强CMOD是包含一组SMOD编写的增强.1.2 User exits (Function module exits)是sap其命名规则如下:EXIT_<program name><3 digit suffix>示例:sd的VA01事务,对应的程序是SAPMV45A ,您将在程序中找到(使用)CALL CUSTOMER-FUNCTION字符串)以下代码:CALL CUSTOMER-FUNCTION '003' exporting xvbak = vbak xvbuk = vbuk xkomk = tkomk importing lvf_subrc = lvf_subrc tables xvbfa = xvbfa xvbap = xvbap xvbup = xvbup.则exit calls function module名称为: EXIT_SAPMV45A_003
2、先试用SMOD建立一个SAP增强2.1.选择一种增强:SDVFX001,点击修改,进入sap加强屏幕维护;2.点击组件按钮进入组件维护屏;2.将光标转移到功能模块名,输入模块名,如:EXIT_SAPLV60B_001;2.选择代码修改按钮进入函数模块;2.5.双击函数模块的包含单元,进入包含单元添加自定义代码并激活保存;
3、使用CMOD建立增强项目3.输入自定义项目名,点击创建;3.2.进入增强项目,选择配置增强,进入增强屏;3.3.输入增强名称如下:SDVFX0013.四、保存,退出;
4、使用CMOD将加强项目激活,便大工告成。
如何查找*判断是否有相应增强的定义(SMOD) select single name from modsapa into mod0-name where name = 'PPCO0002'. if sy-subrc = 0. endif. select single * from tadir into ps_tadir_db where pgmid = 'R3TR' and object = 'SMOD' and obj_name = 'PPCO0002'.
*判断是否有相应增强项目的定义(CMOD) SELECT SINGLE name FROM MODATTR into mod0-name WHERE NAME = 'PPCO0002'..
*提取增强定义的组件 (可用此反查增强定义) select * from modsap where name = 'PPCO0002'.*判断增强是否移植到BADI实现*Enhancement & has already been migrated in Business Add-In definition select single migrated badi_def into (migrated, exit_name) from modsapa where name = modname. if sy-subrc = 0 and migrated = seex_true. message s621 with modname exit_name. check mode ne 'CHAM'. endif.
MODTYP 类型:E : 功能退出S : 屏幕T : 表C : GUI代码sap增强存在MODSAP表内
*获取增强组件的参见函数MOD_SAP_MEMBER_TEXT*获取退出功能模块的信息 select single * from tftit where "SPRAS" = '1' AND "FUNCNAME" = 'EXIT_SAPLCORE_001' if sy-subrc = 0. endif.
*值得学习的函数MOD_KUN_ACTIVATE(操作相关报表)