1 park document的item輸入時檢查利潤中心和成本中心不可空白。
2 park document save時,借貸要相等。
需求1本想用validation做,一試之下發現不行。
退而求其次,改用BTE event 2213,試了之後檢查是可行的,但有個缺點只能在save時檢查,並且一旦檢查出錯誤時,就Exit,失敗!
想來想去差點就無解了,突然想到一個幾乎失傳的技術(RWIN_CHECK),我最早看到是在R/3 4.0有人這麼做過。
考慮利潤中心和成本中心是在item的coding block,所以就copy標準的function FI_COBL_CHECK到ZFI_COBL_CHECK。
在裡面加入以下park doc的檢查code:
IF I_COBL-VORGN = 'RFBV'. * BREAK IBM_KEN.
CASE I_COBL-HKONT(3).
WHEN '006' OR '007'.
IF I_COBL-KOSTL = ''.
SUBRC = 12.
ENDIF.
ENDCASE.
SELECT SINGLE FSTAG INTO FSTAG FROM SKB1
WHERE BUKRS = I_COBL-BUKRS
AND SAKNR = I_COBL-HKONT
AND FSTAG = 'G005'.
IF SY-SUBRC = 0 AND I_COBL-PRCTR = ''.
SUBRC = 13.
ENDIF.
ENDIF.
之後再補上message
WHEN 12.
MESSAGE E888(SABAPDOCU) WITH '成本中心欄位不可空白!!'.
WHEN 13.
MESSAGE E888(SABAPDOCU) WITH '利潤中心欄位不可空白!!'.
完成之後要將table TRWPR補上ZFI_COBL_CHECK設定。
park document save可用失敗的BTE來做,但一樣會Exit,解法下篇再說。
沒有留言:
張貼留言