用户要求:MIR7供应商付款时,若应商付款条件与主数据上的付款条件不同时不可付款。
三代增强增强点:MRM_HEADER_CHECK 方法:HEADERDATA_CHECK
代码如下,此处使用W警告信息而非E错误的原因是如果检查报错了,E类型会导致无法修改错误的数据,所以此处用W警告,但是还是可以保存成功,所以需要加第二个增强。当TCODE为MIR4显示时不提示错误,免得用户操作麻烦
IF SY-TCODE <> 'MIR4'.
SELECT SINGLE ZTERM FROM LFB1 INTO @DATA(LV_ZTERM) WHERE BUKRS = @i_rbkpv-BUKRS AND LIFNR = @i_rbkpv-LIFNR.
IF LV_ZTERM <> i_rbkpv-ZTERM.
DATA(LV_CHAR) = '付款條件' && i_rbkpv-ZTERM && '與FI供應商主檔付款條件' && LV_ZTERM && '不符,請檢查'.
message LV_CHAR type 'W' .
ENDIF.
ENDIF.
第二个增强,三代增强: INVOICE_UPDATE 方法 CHANGE_BEFORE_UPDATE
代码如下,如果上面的警告信息用户没有修改错误,强行保存,那就报错让他退出此程序。
SELECT SINGLE ZTERM FROM LFB1 INTO @DATA(LV_ZTERM) WHERE BUKRS = @S_RBKP_NEW-BUKRS AND LIFNR = @S_RBKP_NEW-LIFNR.
IF LV_ZTERM <> S_RBKP_NEW-ZTERM.
DATA(LV_CHAR) = '付款條件' && S_RBKP_NEW-ZTERM && '與FI供應商主檔付款條件' && LV_ZTERM && '不符,請檢查'.
message LV_CHAR type 'E' .
ENDIF.