需求: 在使用事務代碼VA01建立銷售訂單時,在點選儲存按鈕後,根據銷售組織(VBAK-VKORG)及訂單類型(VBAK-AUART)讀取自定義表,如果自定義表有值且“自動審批”辨別為“X”則自動将該訂單擡頭-狀态中的參數設定為40審批通過。
前台位置:
spro配置的地方:
看看具體的表:
找到增強點:
可以看看英文的描述:
好就是這個位置了,做隐士增強即可
大緻參考代碼如下:(最好别直接加在裡面,封裝在fm裡,友善以後修改維護) IF sy-tcode = 'VA01' OR sy-tcode = 'VA02'. SELECT SINGLE spbz FROM zsdtlh91070 INTO lv_spbz_flag WHERE vkorg = is_vbak-vkorg "銷售組織 AND auart = is_vbak-auart. "單據類型
IF sy-subrc = 0. user_status = 'E0004'. CALL FUNCTION 'STATUS_CHANGE_EXTERN' EXPORTING objnr = is_vbak-objnr user_status = user_status EXCEPTIONS object_not_found = 1 status_inconsistent = 2 status_not_allowed = 3 OTHERS = 4. IF sy-subrc <> 0. * Implement suitable error handling here ELSE. RETURN. "如果審批通過,不再發送 ENDIF.
ENDIF. "endif subrc
ENDIF. "endif tcode
有時候修改狀态,都是先讀取 ,用STATUS_READ ,或者修改:STATUS_CHANGE 但是建立的時候,其實庫表裡是沒有的, 是以使用STATUS_CHANGE_EXTERN
具體可以在項目裡測試下看看哪個能達到效果