价格主数据有效开始日期控制
概述:
为了确定销售订单的价格与价格主数据价格一致,必须保证维护价格主数据时有效开始日期不能小于或者等于今天
增强方案:
增强VK11/VK12,当有效开始日期小于或者等于今天时,给出警告提示
具体实现:
查找增强
获取VK11/VK12程序名
获取程序对应的包
获取包对应的增强
根据描述查找适合自己的增强BADI
SE19增强BADI
增强代码如下:
method IF_EX_SD_COND_SAVE_A~CONDITION_SAVE_EXIT.
TYPE-POOLS trff .
DATA: lh_ct_vake like line of CT_VAKE.
DAta: lh_konp_n like line of CT_KONPDB_NEW.
data: tday type DATUM."创建交货单日期
DATA: SDAY TYPE DATUM.
DATA: days TYPE i."两日期相差多少天。
tday = sy-DATUM.
DATA log_op TYPE trff_type_c_2.
LOOP AT CT_VAKE into lh_ct_vake.
CLEAR lh_konp_n.
CLEAR log_op.
"有删除标记的不做判断
READ TABLE CT_KONPDB_NEW into lh_konp_n with key KNUMH = lh_ct_vake-KNUMH.
if sy-subrc eq 0.
if lh_konp_n-LOEVM_KO eq 'X'.
continue.
ENDIF.
endif.
SDAY = lh_ct_vake-datab.
CALL FUNCTION 'FIMA_DATE_COMPARE'
EXPORTING
* I_FLG_INTRADAY = ' '
i_date = SDAY
* I_TIME = '000000'
* I_SINCL = '0'
* I_SULT = ' '
i_comp_date = tday
* I_COMP_TIME = '000000'
* I_COMP_SINCL = '0'
* I_COMP_SULT = ' '
IMPORTING
E_LOG_OP = log_op .
if log_op <> 'GT' .
MESSAGE '有效开始日期小于今天,您确定要这样做吗?这将影响生效期到现在创建的订单' TYPE 'W'.
"MESSAGE E248(VL).
endif.
ENDLOOP.
endmethod.