1, BTE介绍
BTE英文全称Business Transaction Event,业务交易事件,我们知道一般的增强(Tcode:SMOD|CMOD)依旧使用ABAP,BTE则可提供了RFC调用其它产品的可能(Tcode:FIBF)。BTE的设计思路还是比较简单,和BADI有点类似。在标准程序中留有OPEN_FI的出口(以函数OPEN_FI_PERFORM_eventid_type的形式存在),然后提供一个可配置的TABLE,可以在里面针对某个特定的Event维护自己定义的出口函数,标准程序走到这里,如果查出用户定义了出口函数,则会调用,达到增强的目的。
BTE增强有2种类型,类似于会计凭证验证和替代。
Publish and Subscribe Interface:只提供SAP数据源,可以供外部程序使用或者达到数据检查的目的。
Process Interface:是达到数据修改的目的,用来增强标准的业务流程。
2, 查找BTE增强
通常有两种方法查找BTE增强
1,在标准程序中查找String ‘OPEN_FI_PERFORM’,找到的函数如果最后是’_E’,则说明这是Publishand Subscribe Interface:,如果是’_P’,则是ProcessInterface。
2,Tcode:FIBF,菜单 Environment->Info System (P/S ),或者直接BERE for Publishand Subscribe Interface BERP for Process Interface。
3, BTE实现
tcode:FIBF, 菜单 Environment->Info System (P/S )
选择需要实现的BTE,如下:
双击 ‘Sample function moudle’按钮,copy 例子FM(需要先创建function group)
编辑新创建的FM,加入自己的代码
FIBF,创建一个客户的产品
别忘了勾上激活checkbox,保存需要生成TR
下一步,tcode FIBF,将刚才创建的FM和EVENT通过产品连接起来,如下:
然后保存激活,大功告成。