想要实时将各种主数据传输给外部系统,肯定是需要在创建和修改主数据后,保存时触发增强,然后调用接口,但是问题就在于基本一二三代增强都很少预留这种增强,在这里用到了第四代增强。
为了保证所有的检查点都已经过了,我们的思路是在标准代码里面找到跟新数据库的语句COMMIT WORK,在更新完成数据库表之后,但是退出前做增强。这里以生产订单为例。
1.根据前台创建生产订单,一步一步跟踪,找到更新数据库语句(这一步是最耗时间的,也可以用代码扫描搜索COMMIT以及查看程序名称来快速定位),也可以设置断点查找位置

我找到的生产订单更新数据库语句的代码如下图

2.寻找更新后,退出前的隐式增强点


然后这些有箭头的地方就都可以实施隐式增强了

然后鼠标指针点击有小箭头的行按照下图做实施就可以了,这样就保证了所有的标准检查都过了,只要查表就能拿到数据了
**********
另外分享一些其他主数据更新表的地方
采购订单

供应商主数据

物料主数据

创建客户主数据

最后讲一讲隐式增强点会在哪些位置出现
除了可以使用enhance - point和enhance - section显式创建的增强选项外,ABAP程序中的以下地方还存在隐式增强选项:
•在可执行程序、函数组、模块池、子例程池和包含程序的源代码的最后一行之后。
•在过程实现的第一行之前和最后一行之后(在介绍性语句之后和END语句之前)
•在源代码插件的第一行之前和最后一行之后(在ENHANCEMENT之后和ENDENHANCEMENT之前)
•在局部类声明部分的可见性区域的末尾
•在局部方法声明处同名形参列表的末尾
•在结构定义中,BEGIN OF和END OF在带有END OF加法的语句之前
隐式增强功能极其强大,但是使用难度也是最大的,它需要开发人员对源代码理解非常到位才能使用
本文详细讲述了如何在ABAP程序中通过查找COMMIT语句定位生产订单更新数据库的代码,利用隐式增强功能确保在更新后进行增强操作,包括采购订单、供应商和物料主数据的更新流程。讲解了隐式增强点的常见位置和其重要性。

1093

被折叠的 条评论
为什么被折叠?



