想要实时将各种主数据传输给外部系统,肯定是需要在创建和修改主数据后,保存时触发增强,然后调用接口,但是问题就在于基本一二三代增强都很少预留这种增强,在这里用到了第四代增强。
为了保证所有的检查点都已经过了,我们的思路是在标准代码里面找到跟新数据库的语句COMMIT WORK,在更新完成数据库表之后,但是退出前做增强。这里以生产订单为例。
1.根据前台创建生产订单,一步一步跟踪,找到更新数据库语句(这一步是最耗时间的,也可以用代码扫描搜索COMMIT以及查看程序名称来快速定位),也可以设置断点查找位置
我找到的生产订单更新数据库语句的代码如下图
2.寻找更新后,退出前的隐式增强点
然后这些有箭头的地方就都可以实施隐式增强了
然后鼠标指针点击有小箭头的行按照下图做实施就可以了,这样就保证了所有的标准检查都过了,只要查表就能拿到数据了
**********
另外分享一些其他主数据更新表的地方
采购订单
供应商主数据
物料主数据
创建客户主数据
最后讲一讲隐式增强点会在哪些位置出现
除了可以使用enhance - point和enhance - section显式创建的增强选项外,ABAP程序中的以下地方还存在隐式增强选项:
•在可执行程序、函数组、模块池、子例程池和包含程序的源代码的最后一行之后。
•在过程实现的第一行之前和最后一行之后(在介绍性语句之后和END语句之前)
•在源代码插件的第一行之前和最后一行之后(在ENHANCEMENT之后和ENDENHANCEMENT之前)
•在局部类声明部分的可见性区域的末尾
•在局部方法声明处同名形参列表的末尾
•在结构定义中,BEGIN OF和END OF在带有END OF加法的语句之前
隐式增强功能极其强大,但是使用难度也是最大的,它需要开发人员对源代码理解非常到位才能使用