前言:項目上遇到個需求:與供應商簽訂的采購合同價為含稅價,SAP系統標准功能采購價格為不含稅價,為避免采購訂單價格產生尾差,采購訂單輸入價格與采購合同價格保持一致輸入價格為含稅價,通過定價例程將含稅價及稅率計算出不含稅價作為收貨成本或服務確認成本。
大概的意思就是說:采購訂單輸入的價格為含稅價,系統通過增強程序計算出不含稅價作為交貨成本。
而我們需要做的就是自定義一個例程來計算不含稅加的值,ok,廢話少說,上貨。
增強步驟:
1.事務碼:VOFM
VOFM-公式->定價值
自定義例程編號和描述以及應用范圍
雙擊例程編號,會創建RV64A{編號}程序,我們就是在這里計算不含稅價的
*根據稅碼自動在條件頁簽中生成稅率
DATA: L_KNUMH TYPE KONP-KNUMH,
L_KBETR TYPE KONP-KBETR,
L_KBETR_I TYPE KONP-KBETR.
DATA : LV_NETWR TYPE KOMP-NETWR .
CLEAR: L_KNUMH,L_KBETR,LV_NETWR.
*"查詢稅碼對應的稅率
SELECT SINGLE KNUMH
INTO L_KNUMH
FROM A003
WHERE KAPPL = 'TX'
AND KSCHL = 'MWVS'
AND ALAND = 'CN'
AND MWSKZ = KOMP-MWSKZ.
CHECK NOT L_KNUMH IS INITIAL.
SELECT SINGLE KBETR
INTO L_KBETR
FROM KONP
WHERE KNUMH = L_KNUMH.
L_KBETR_I = 100000 + L_KBETR.
*寫入稅額
XKWERT = 0 - ( XKOMV-KAWRT * L_KBETR / L_KBETR_I ).
*寫入稅率
XKOMV-KBETR = 0 - L_KBETR.
*S/4系統將凈價賦值NETWR
LV_NETWR = XKOMV-KAWRT + XKWERT .
KOMP-NETWR = LV_NETWR .
程序寫好后,要返回例程界面激活
還剩下一步,非常重要,請求傳輸后,在 目標系統 使用SE38運行程序 RV80HGEN ,如果漏了這一步,上面是不會生效的。
該程序的作用是根據表TFRM,TFRMT在 RV61ANNN 等程序中增加 INCLUDE RV61A901 這樣的代碼,這樣我們自定義的例程才會生效。
文章參考: