貌似用PP生产入库的增强更好(区别在那个操作动作检查)
SE19
METHOD if_ex_mb_migo_badi~post_document.
DATA: xx TYPE mkpf-mblnr .
**
* EXPORT p1 from gv_mblnr to MEMORY id 'dd' .
IMPORT p1 TO xx FROM MEMORY ID 'dd' .
DATA: lv_budat TYPE mkpf-budat . "原单的过账日期
DATA: lv_budat2 TYPE mkpf-budat .
SELECT SINGLE budat
INTO lv_budat
FROM mkpf
WHERE vgart = 'WE' "采购订单据收货
AND mblnr = xx .
lv_budat2 = is_mkpf-budat ."当前单据的物料过账日期
DATA: lv_bwart TYPE mseg-bwart .
DATA: is_mseg TYPE mseg.
DATA: lv_elikz TYPE ekpo-elikz .
DATA: lv_msg TYPE c LENGTH 100 .
LOOP AT it_mseg INTO is_mseg .
IF is_mseg-bwart EQ '122'.
lv_bwart = '122' .
ENDIF .
IF is_mseg-bwart EQ '101'.
CLEAR:lv_elikz ,lv_msg .
SELECT SINGLE elikz INTO lv_elikz
FROM ekpo
WHERE ebeln = is_mseg-ebeln
AND ebelp = is_mseg-ebelp .
IF lv_elikz EQ 'X'.
CONCATENATE is_mseg-ebeln '-' is_mseg-ebelp '交货已完成,请联系采购员' INTO lv_msg .
MESSAGE lv_msg TYPE 'E'.
ENDIF .
ENDIF .
ENDLOOP .
IF lv_budat IS NOT INITIAL AND lv_bwart EQ '122' .
IF lv_budat2+0(6) > lv_budat+0(6) .
MESSAGE '单据跨月退货,请联系采购员' TYPE 'E'.
ENDIF .
ENDIF .
FREE MEMORY ID 'dd' .
ENDMETHOD.