Java教程

ABAP-VA01保存前增强

本文主要是介绍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’ 就是用这种方式的。

 

这篇关于ABAP-VA01保存前增强的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!