增强开发

出口、badi、 隐式增强

出口:两个事物代码:cmod、smod

一般项目里都会开发一个查找增强出口的程序。

例子:MM01里有两个出口,我们可以在做出口的函数里写代码。如:通过出口实现判断,当物料组为0003时不能修改物料描述,如果修改物料描述了给出错误的消息提示,否则正常保存。

单击保存的时候会自动检查屏幕输入和保存,也可以尝试先点击检查来检查屏幕输入。

1.我们找到出口后,可以先根据后面的描述先判断应该用哪一个出口函数。

2.还可以在所有找到的出口函数里都打上端口,debug看看是在哪个函数里写增强代码。

 

哦之前没说一下,上面的操作都是在SMOD里面操作的,我们写好的增强还要维护到CMOD里面,因为便于规范管理,在这里激活了才能起作用,也有反激活,反激活就是增强没有效果。

第二种查找增强出口的方式是这样的:

在程序里/h后  在一个特点的语句下面打断点。

在call customer-function  出口都是这个关键语句   把关于这个关键语句全部打上断点,然后执行到这些点都会停下来,这些都是出口函数的位置,比如我们会看到

all customer-function ‘001’注意这个函数并没有函数名但是 在系统是以后面的这个001编号调用的。但是怎么能知道这个函数名呢,它有一个拼接规则的,出口函数都是以exit_开头的,后面加一个主程序名称,左上角上会有主程序名字如SAPLMGMU_   后面再加上一个001编号,就变成了exit_SAPLMGMU_001那么这个就是该函数,但是我们在使用的时候都是在smod下面使用该函数的,怎么办呢, 怎么才能找到对应的组件名称呢,答案是我们可以在se37里面查找该函数,在属性下面找到该函数的package,由package在smod里面按照该开发类去找所有对应该开发类下面的组件,一一单击进去找到有该函数的组件就可以在里面写增强代码了,但是还有一个方法比较简单就是在数据字典表modsap里面根据该函数去查找,因为该表里存的是函数和增强的对应关系,还有一个表是cmod和smod对应关系表modact,还有一个是modattr据说存的都是激活的增强组件,但是没有验证过(待考证),还有其他的mod开头的表都是跟增强有关的,以后可以研究看看。

 

隐式增强和BADI 以后再更新,先提示一下BADI的两个事物代码是SE18  和 SE19 ,查找BADI函数的时候也是要在调试的时候查找,在带有关键句是 call badi句都打上断点,一般做增强还是出口用的多。

转载于:https://www.cnblogs.com/caizjian/archive/2013/05/03/3055748.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值