BTE全称是Business Transaction Event,业务交易事件,它不同于我们常用的CMOD或者BADI's,BTE提供了RFC调用其它产品的可能。它的步骤分为以下3步:
第一步:建立附加产品(Tcode:BF24),产品的名字是自己随便建立的,一定要记得激活
第二步:连接事件到产品(Tcode:BF34).在这一步,要选中一个事件,根据自己不同的需求选中不同的事件,例如事件00001250就是在物料主数据保存检查的时候触发的。然后为此事件输入一个函数名,当然要Z或者Y开头的
第三步:建立检查函数(Tcode:SE37).
举例:通过BTE移除FB50的“PARK”按钮
需求:
不显示FB50的“PARK”按钮,但是不想用权限实现。
采用BTE的Event:1140实现。
步骤:
(1)T-Code BF24 :建立Product 并选择激活。
(2)T-code BF34 : 分配
(3)T-Code SE37 :建立Function module
从标准的SAMPLE_INTERFACE_00001140复制
Sample Code:
FUNCTION z_interface_00001140.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(I_PARKED) TYPE XFELD OPTIONAL
*" TABLES
*" T_BKPF STRUCTURE BKPF
*" T_BSEG STRUCTURE BSEG
*" T_EXCTAB STRUCTURE EXCLTAB_LINE
*"----------------------------------------------------------------------
LOOP AT t_bkpf.
IF t_bkpf-bukrs = '1000'.
IF sy-tcode = 'FB50' OR
sy-tcode = 'FB60' OR
sy-tcode = 'FB70'.
CLEAR t_exctab.
REFRESH t_exctab.
t_exctab-okcod = 'BP'.
APPEND t_exctab.
ENDIF.
ELSE.
CONTINUE.
ENDIF.
ENDLOOP.
ENDFUNCTION.