ABAP--如何实现交货单的任何一item库位发生人工修改时系统自动更新所有items(感谢天元提供)
1、找到出口
用se38打开程序SAPMV50A,在子过程列表找出USEREXIT_SAVE_DOCUMENT_PREPARE。
2、在USEREXIT_SAVE_DOCUMENT_PREPARE写入下列代码
FORM USEREXIT_SAVE_DOCUMENT_PREPARE.
DATA: XLIPS_C LIKE LIPSVB OCCURS 0 WITH HEADER LINE.
DATA: I_LIPS LIKE LIPSVB OCCURS 0 WITH HEADER LINE.
IF XLIKP-VKORG <> 'CN04'.
EXIT.
ENDIF.
if lips is not initial.
**物料号对应的库位
* LOOP AT XLIPS WHERE UEPOS = '000000' AND CHARG <> ''.
* MOVE-CORRESPONDING XLIPS TO I_LIPS.
* APPEND I_LIPS.
* CLEAR I_LIPS.
* ENDLOOP.
xlips_c[] = xlips[].
loop at xlips where uepos <> '000000'.
read table xlips_c with key posnr = xlips-uepos
matnr = lips-matnr.
if sy-subrc = 0.
xlips-lgort = lips-lgort.
*U 表示该纪录被修改,需要更新,D表示删除,I表示新增
xlips-updkz = 'U'.
endif.
modify xlips.
clear xlips.
endloop.
endif.
*ylips[] = xlips[].
ENDFORM.
备注:其实这个增强可以根据需要进行修改,以达到其他的特需的用户需求。