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’ 就是用这种方式的。
标签:增强,SAVE,USEREXIT,保存,ABAP,DOCUMENT,VA01 来源: https://www.cnblogs.com/ap-ad-java-abap/p/16627817.html