*SMOD包含具体的增强,而CMOD是包含一组SMOD编写的增强.
*sap增强存在MODSAP表内
*MODTYP 类型:
*E : 功能退出
*S : 屏幕
*T : 表
*C : GUI代码
*增强步骤:
*1、先用SMOD建立一个SAP增强
*1.1、选择一个增强,如:IEQM0003,点击查看;
*1.2、点击"组件"按钮;
*1.3、双击模块名,如:EXIT_SAPMIEQ0_001;
*1.4、双击函数模块的include单元,进入include单元加入自定义代码并激活保存;
*
*2、使用CMOD建立增强项目
*2.1、输入自定义的项目名,如:ZIEQM0003,点击"创建";
*2.2、进入增强项目,选择"配置增强",进入增强配置屏幕;
*2.3、输入增强名如:IEQM0003
*2.4、保存,并退出;
*
*3、使用CMOD将增强项目激活,便大工告成。
*-- 判断是否存在相应增强的定义(SMOD) --*
tables: mod0, tadir,modsap.
select single name from modsapa into mod0-name where name = 'PPCO0002'.
*或:
select single * from tadir
where pgmid = 'R3TR'
and object = 'SMOD'
and obj_name = 'PPCO0002'.
*-- 判断是否存在相应增强项目的实现(CMOD) --*
select single name from modattr into mod0-name where name = 'PPCO0002'.
*if sy-subrc = 0.
* write 'ok'.
*endif.
*-- 提取增强的定义的组件 (可以用此反查增强定义) --*
select * from modsap where name = 'F180A001'.
endselect.
*-- 判断该增强是否移植到BADI实现,不懂。。 --*
*Enhancement & has already been migrated in Business Add-In definition
data: migrated like modsapa-migrated,
exit_name like modsapa-badi_def.
select single migrated badi_def into (migrated, exit_name) from modsapa where name = 'MBCF0002'.
if sy-subrc = 0 .
endif.
*-- 获得function的信息 --*
tables: tftit.
select single * from tftit where spras = '1' and funcname = 'EXIT_SAPLCORE_001'.
*值得学习的函数
*获取增强组件的参见函数MOD_SAP_MEMBER_TEXT
*MOD_KUN_ACTIVATE(会操作相关报表)
评论