您的位置:首页 > 其它

生产订单收货数量与物料凭证计算总数量不一致

2016-07-18 09:14 316 查看
 先使用如下程序对已出错订单进行修正,然后再实施Note
1094999 - Goods receipt quantity is updated incorrectly
---------------分割线-----------------------------------------
REPORT Z_PPCON_076 .

TABLES: AFKO, AFPO, MSEG, MKPF.

PARAMETERS: TEST_? TYPE C DEFAULT 'X'.

SELECT-OPTIONS: PAORDER FOR AFPO-AUFNR.

DATA: BEGIN OF UPOS_TAB OCCURS 500.
        INCLUDE
STRUCTURE AFPO.
DATA: END OF UPOS_TAB.

DATA: BEGIN OF POS_TAB OCCURS 500.
        INCLUDE
STRUCTURE AFPO.
DATA: END OF POS_TAB.

DATA: BEGIN OF A_TAB OCCURS 500,
        AUFNR
LIKE AFKO-AUFNR,
      END
OF A_TAB.

DATA: BEGIN OF M_TAB OCCURS 500.
        INCLUDE
STRUCTURE MSEG.
DATA: END OF M_TAB.

DATA: NO_WEMNG LIKE AFPO-WEMNG VALUE '0',
      NO_LTRMI
LIKE AFPO-LTRMI VALUE '00000000',
      KUM_WEMNG
LIKE AFPO-WEMNG,
      KUM_WEWRT
LIKE AFPO-WEWRT,
      DIF_QUAN
LIKE AFPO-IAMNG,
      DIF_WERT
LIKE AFPO-WEWRT,
      U_FLAG
TYPE C.

IF NOT TEST_? IS INITIAL.
  WRITE:
'        !!!!!    TEST    !!!!!!'.
  SKIP
1.
ENDIF.

SELECT * FROM AFPO INTO TABLE POS_TAB
         WHERE
AUFNR IN PAORDER.

* read material documents per order
LOOP AT POS_TAB.
  REFRESH
M_TAB.
  CLEAR:
U_FLAG.
  CLEAR:
KUM_WEMNG.
  CLEAR:
KUM_WEWRT.

  SELECT
* FROM MSEG INTO TABLE M_TAB
              WHERE
MATNR EQ POS_TAB-MATNR
              AND   AUFNR
EQ POS_TAB-AUFNR
              AND   AUFPS
EQ POS_TAB-POSNR.

  LOOP
AT M_TAB.
    CHECK
M_TAB-BWART EQ '101' OR M_TAB-BWART EQ '102'
                               OR
M_TAB-BWART EQ '122'.
*..inward movement
    IF
M_TAB-SHKZG EQ 'S'.
      IF
NOT M_TAB-DMBTR IS INITIAL.
        KUM_WEWRT
= KUM_WEWRT + M_TAB-DMBTR.
      ENDIF.
      IF
NOT M_TAB-BSTMG IS INITIAL.
        KUM_WEMNG
= KUM_WEMNG + M_TAB-BSTMG.
      ELSE.
        IF
M_TAB-ERFME EQ POS_TAB-AMEIN.
          KUM_WEWRT
= KUM_WEWRT + M_TAB-DMBTR.
        ELSE.
          IF
M_TAB-MEINS EQ POS_TAB-AMEIN.
            KUM_WEMNG
= KUM_WEMNG + M_TAB-MENGE.
     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: