2011年10月31日

MV45AFZZ修改SO ITEM問題

有個需求是希望在SO的ITEM在修改VBKD時,能夠update VBAP某些欄位,進到MV45AFZZ去找到FORM USEREXIT_SAVE_DOCUMENT_PREPARE.直接新增修改邏輯。改完實際去測試會發現,若VBAP相關的欄位沒有修改時,save之後VBAP還是一樣的。

想要在FORM USEREXIT_SAVE_DOCUMENT_PREPARE修改VBAP的值有二個方式:
1 在VA02時就已經有VBAP的修改(解法不佳)
2 在FORM當中指定VBAP要強制修改(可行),做法如下:
在XVBAP[]當中找到要修改的VBAP並指定UPDKZ = 'U',要特別注意UPDKZ若已是'D'時表示這個item save之後會被刪除,千萬不要去修改UPDKZ。另外也要考慮這一筆VBAP若是新增時,不需要指定UPDKZ 。