ABAP:BTE的查找及使用

最近做的一个需求是将ML81N采购服务订单确认产生的会计凭证抬头文本替换为特定格式,试了几种方案,都不成功。原先不成功的方案有:

方案一:

ML81N写个四代增强,实现的是物料凭证抬头文本替换为特定格式,产生的会计凭证抬头文本将自动与物料凭证抬头文本一致。

此方案对ML81N前台操作可行,对于BAPI:BAPI_ENTRYSHEET_CREATE 却不成功。

方案二:

在OBBH/GGB1中写替代。此方法也未成功。

最后采用大名鼎鼎的BTE 1120增强实现了。

现将小编对BTE增强的浅显理解做以下梳理,说的不对和考虑不全的地方,欢迎在下方一起讨论。

BTEs(Business Transaction Events),是SAP的一种增强方式,它主要有两种类型的接口:Publish and Subscribe Interface(P/S接口、消息)、Process Interface(处理接口)。

这两种类型的接口区别小编理解不深,在网上查相关资料,如下

  • Publish and Subscribe Interface(P/S接口)

用于告诉外部软件在SAP标准应用中触发了某些事件,并且把产生的数据提供给它们。外部软件不能给SAP系统返回任何数据。例如可以用在以下地方:

  • 主数据被创建、修改或锁定

  • 凭证被输入、预制、修改或冲销

  • 项目被清除或重置

也可以在附加的开发中基于此事件和数据产生附加的处理:

  • 启动工作流

  • 产生或修改附加数据

  • 请求通信

  • Process Interface(处理接口)

  • 用于控制与标准系统处理方法不同的业务流程,也就是用process  interface替换标准处理。它们干预标准流程,并返回数据给SAP应用。

(参考资料来源:https://blog.csdn.net/wbin9752/article/details/7954663?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-1-7954663.nonecase&utm_term=abap%20%E5%9B%9B%E4%BB%A3%E5%A2%9E%E5%BC%BA)

如果不知道ML81N中会用到哪些BTE,可在函数:BF_FUNCTIONS_FIND 和PC_FUNCTION_FIND 中打断点或者在程序中搜索字符串“OPEN_FI_PERFORM_” (函数前缀)。分别查看I_EVENT 、I_PROCS这两个变量的值,分别对应Publish and Subscribe Interface(P/S接口)、和Process Interface(处理接口)。可以找到此程序中的所有用到的BTE。如果同时有多个断点进入,可根据具体的需求和 bte函数的参数确定使用哪个。

1.  运行事务码:FIBF。因为此需求要干预标准流程,因此要查找的是“信息系统(处理)(N)”。选择菜单“环境->信息系统(处理)(N)->F8运行程序”,根据事件描述和事件文档对事件的详细描述逐个筛查,找出最符合要求的1120事件(与会计凭证相关的需求首先考虑1120事件)。

2. 在函数:PC_FUNCTION_FIND 中打断点,查看I_PROCS是否有1120。发现调用此事件。说明1120可用。

3.将样本函数复制并创建到自定义函数组和函数中。

4. 创建产品

5. 配置事件、产品和函数的对应关系

此处要注意!!!如果是“信息系统(处理)(N)”的事件要配置在“处理模块(R)”->“一个客户的”中,如果是“信息系统(P/S)(I)”的事件要配置在“发布/订阅模块” ->“一个客户的”中,配置错误将不进入增强点,增强失败。

有时在BTE中打断点,却没进断点。原因是事件在更新函数中被调用。

这时需在debug界面打开“系统调试”和“更新调试”,同时要确保界面充足,不超过6个,否则无界面展示无法进入断点。

END

往期推荐

ABAP调试器的一些高级用法

GRIR重分类(上)

GRIR重分类(下)

批次管理(上)

批次管理(下)

屏幕变式设置(方式一)

因增强导致BDC录屏执行异常的梗

序列号Serial Number管理

外币评估精选

字串拼接“空格”的使用

Select-options restrict

ERP 本地client copy

STRANS高效导出数据到WORD/EXCEL

关注公众号,加入SAP顾问讨论群!

扫描二维码

获取更多精彩

菜鸟家园

点点在看行不行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值