ABAP-VA01保存前增强


需求:VA01、VA02、VA03订单保存时,需要做一个check的增强

方法:注意检查的增强用的是USEREXIT_SAVE_DOCUMENT_PREPARE,而不是USEREXIT_SAVE_DOCUMENT(保存检查不通过会跳号)

INCLUDE程序:MV45AFZZ


要注意的是:无论是在SAVE_DOCUMENT_PREPARE或者SAVE_DOCUMENT中,都不会获得销售订单号码(VA01时)

解决方案:包含文件 MV45AFZA里的USEREXIT_REFRESH_DOCUMENT 这个功能。运行到这个的时候,已经保存在地表里了。不过有好多的操作都会运行到这里,比较刚进行订单就点击了后退,所以还要再特殊处理一下,当用户保存的时候就是在 USEREXIT_SAVE_DOCUMENT 这个增强里,放一个标识到程序的缓存里,当最后运行 USEREXIT_REFRESH_DOCUMENT 这个增强时,再把标识读取出来,查看是否要进行自己的操作,不过这个时候内存的数据都被清空了, 我们可以在VEDA这个结构里拿到凭证号,再从底表里读取出来进行相关的操作。或者直接把订单号放到程序的缓存里和标识放在一起,到时再使用也是可以的。import p_matnr_lc = LLSBL from memory id  ‘TPJ1’ 就是用这种方式的。

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/282337.html

(0)
上一篇 2022年8月26日
下一篇 2022年8月26日

相关推荐

发表回复

登录后才能评论