最近一个同事碰到一个FI的增强,要用BTEs实现,我也是第一次接触到这种增强,所以跟着他一起做了一下。写一个这方面的小节。
BTEs(Business Transaction Events),是SAP的一种增强方式,技术上讲是介于Customer Exits和BAdIs的产物。
它主要有两种类型的接口:
Publish and Subscribe Interface
Process Interface
其比较核心的理念是,使一个接口重复利用,多种实现并且互不干扰。而技术实现的时候,就采用在标准程序中Call固定的一个functioin,然后再用这个function动态调用自己定义的增强function,从而达到预期目的。
这样的接口,在标准程序中常常是以OPEN_FI_PERFORM_或者OUTBOUND_CALL_开头的function。
由于采用这种技术架构,SAP就使这些接口,分为Made by SAP, Made by SAP's Partner, Made by SAP's Customer,三方可以个取所需。
至于Publish and Subscribe Interface和Process Interface的区别,主要还是用途上的。前者,使给外部软件提供信息的,而后者主要用于R/3流程的。不过前者也可以生成或修改一些additional data。
BTEs主要用于总帐,应收应付和销售分销模块。
我做的那个是Process Interface,说来也很简单,就是在billing posting的时候,把Head的text改掉。
下面,我来说一下流程。
- T-code: FIBF 进入BTEs的界面
- Environment->Infosystem(Processes)->运行->Process 00001120->Sample function module, 然后复制这个function到自己的Z或Y程序中->编辑新复制的程序,加入自己的代码
- 回到FIFB界面,Settings->Products->...of customer->New Entries加入自己的product,并激活
- 回到FIFB界面,Settings->Process Modules->... of customer->新建主键是 00001120的Process,并将刚才建立的function module和product写到相应栏位。
之后,运行相应的过账程序,诸如T-CODE VF01或是FB01,生成财务凭证,察看凭证的HEAD TEXT是否被修改。
原代码不方便贴,就放些关键的代码。
LOOP AT T_BKPFSUB.
T_BKPFSUB-BKTXT = 'KEVIN BTEs'.
MODIFY T_BKPFSUB INDEX SY-TABIX.
ENDLOOP.
阅读(1681) | 评论(2) | 转发(0) |