交货冲销增强

交货冲销增强

  (2013-07-04 11:15:17)

转载▼

标签: 

sd

 

enhancement

分类: SAP_SD

交货单冲销一个小小的增强:  

 

先看需求: 在使用VL09进行交货单冲销的时候,判断冲销日期与实际发货过账的日期是否为同一天,如果不是同一天则报错。为什么要这么做,是因为为了限制客户在当期做上期的交货冲销时,避免冲减当期的成本。如果上个月的的财务账和物料帐都关了,怎么办?不好意思了,只能按退货处理。人家财务不可能为了冲一笔货,把账期给你打开。。那为什么不限制在当月,为什么要限制在发货日期当天呢? 这个问题我也问过.不是不可以啊。改下代码就OK了。

 程序出口: EXIT_SAPMM07M_001 "SAPMM07M :  货物移动的模块池



在include里面添加代码

首先看下函数里面的参数:



这样就清楚I_MKPF和I_mseg是那儿来的了。

 

 DATA i_bldat LIKE i_mkpf-bldat  .
DATA i_matnr LIKE i_mseg-matnr.
DATA wa TYPE zsd07.

" zsd07是什么?

这个是自建表,看下就明白了。




data message(60) type c.

SELECT SINGLE * FROM zsd07 INTO wa WHERE werks = i_mseg-werks  .
IF sy-subrc = 0 AND wa-flag = 'X'.
*602、654、656、658、Z04 ,
  IF  i_mseg-bwart = '602' OR i_mseg-bwart = '654'
    OR i_mseg-bwart = '656' OR i_mseg-bwart = '658'  OR i_mseg-bwart = 'Z04' "当然要限定一下Movement type了
     .
    SELECT SINGLE budat   FROM mkpf INTO i_bldat
     WHERE  mblnr = i_mseg-mblnr AND mjahr = i_mseg-mjahr .
    IF i_bldat(8) <> i_mkpf-budat(8).
      CONCATENATE '交货单号' i_mkpf-XBLNR ',取消日期与原单记帐日期不一致请检查。' INTO message.
      MESSAGE message TYPE 'E'.
    ENDIF.
  ENDIF.
  CLEAR: wa,message.
ENDIF.

 

posted @ 2018-12-18 08:32  shigs-smile  阅读(526)  评论(0)    收藏  举报