SAP BTE业务交易事件总结(我的)

对于SAP增强的总结

SAP增强类似于其他语言的事件(如其他程序的EVENT),由系统定义好一些空的接口,我们可以使用这些接口进行配置,使其调用自定义函数,实现标准系统功能外的增强功能。

那么系统标准程序的运行时,就会自动调用到的某些接口,然后触发自定义函数的运作,实现中间功能,而不需要更改系统标准程序。

好处是接口可以传输当前程序相关的参数和数据内存表,方便我们应对程序目前状态进行功能扩展,在自定义程序中我们可以引用接口传输过来的数据进行开发(对于每个事件接口,都可以在找到对应的空函数,记录了接口传递的参数,我们可以直接copy使用),略有不足的是相关接口的查找比较费功夫,另外自定义开发函数可能会存在效率问题,而且如果接口没有传递我们需要的参数,增强就没法通过事件接口来做。但是总体上来讲,增强接口的存在基本上满足了所有的,原基础上功能增加的需求,是SAP亮点,目前国内ERP软件如金蝶用友在05年才开始向这种体系架构靠拢,但是做得远远不如SAP成熟,原因是SAP从架构搭建时就使用了这种体系,而国内中低端ERP软件的架构搭建时是没有考虑的,但是用友金蝶的高端系统基本上使用了这种体系,如U9、NC、EAS。

SAP增强我们普遍使用的是CMOD、SMOD、FIBF这几个事务码来做。增强出口的查找是个比较麻烦的事,有一下几种方法:

1、            输入事务码SPRO,点击SAP参考IMG按钮,在出来的结构树中查找相关增强,或者直接查找“增强”搜索所有增强,然后点击前面的图档图标show出说明,得到相关的增强出口,点执行图标就会自动调用cmod建立项目,后续就可以进行出口的增强自定义函数操作。如下:

找到出口

帮助找对应增强出口号

Cmod建立项目

找到组件出口函数

自定义函数

2、            使用SAP发布的出口查找程序,输入对应事务码,找到其调用到的出口,再使用cmod建立项目,然后对其进行分析,调试,得到对应接口,必须要有需要的输入参数才有用。如:

该程序由SAP发布的增强出口查询代码生成

运行后的样子,输入检测的事务码

使用到的接口

进入cmod,创建项目

点击enhancement

填入对应的增强接口号

也可选

点击组件,查到对应的出口函数,双击可以进入,对立面的include函数双击生成新的自定义函数即可。

3、            使用fibf事务(参考《业务交易事件BTE》),这个比较费劲。

事务码FIBF,回车再输入Bf24,回车,这里列出所有的业务交易事件,可以新增条目,输入产品和描述,保存

              输入BF34,新增条目,选产品,选择事件,很多的,找描述接近的,然后把事件号码放到se37中模糊搜索,一般会找到对应sample程序,然后把函数名放到函数模块中,保存,激活,断点,然后运行需要增强的程序,看看是否会触发该接口函数,有则是,没有就要再重复的找别的出口,直到找到为止。

一切搞好后,在自定义函数上设置断点,程序执行时就会在断点处停住,即确认并进行后续程序修改。

以上三种方式,前两种好用,第三种,相对困难(找接口),是不同时期的SAP产物,还有目前最新的NetWeaver 的badi,使用类对象 interface方式,目前我还没有用过

猜你喜欢

转载自blog.csdn.net/kuangben1/article/details/7084207
SAP