天天看點

VA01 銷售訂單 審批 狀态 增強

需求: 在使用事務代碼VA01建立銷售訂單時,在點選儲存按鈕後,根據銷售組織(VBAK-VKORG)及訂單類型(VBAK-AUART)讀取自定義表,如果自定義表有值且“自動審批”辨別為“X”則自動将該訂單擡頭-狀态中的參數設定為40審批通過。

前台位置:

VA01 銷售訂單 審批 狀态 增強
VA01 銷售訂單 審批 狀态 增強

spro配置的地方:

VA01 銷售訂單 審批 狀态 增強
VA01 銷售訂單 審批 狀态 增強
VA01 銷售訂單 審批 狀态 增強
VA01 銷售訂單 審批 狀态 增強

看看具體的表:

VA01 銷售訂單 審批 狀态 增強
VA01 銷售訂單 審批 狀态 增強
VA01 銷售訂單 審批 狀态 增強

找到增強點:

VA01 銷售訂單 審批 狀态 增強
VA01 銷售訂單 審批 狀态 增強

可以看看英文的描述:

VA01 銷售訂單 審批 狀态 增強

好就是這個位置了,做隐士增強即可

大緻參考代碼如下:(最好别直接加在裡面,封裝在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

具體可以在項目裡測試下看看哪個能達到效果