生产订单收货数量与物料凭证计算总数量不一致
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.
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.
相关文章推荐
- 搜索引擎研究---网络蜘蛛程序算法相关资料 Part II (共5部分)
- Android模版化编程系列(二)
- oracle之order by
- 【安卓面试题】简述一下Android系统的架构?
- svg
- 一步步开发自己的博客 .NET版(11、Web.config文件的读取和修改)
- POI实现超大数据的Excel的读写操作,支持Excel最大行数。
- ContextLoaderListener理解
- 一句代码,更加优雅的调用KVO和通知
- python读取oracle函数返回值
- 搜索引擎研究---网络蜘蛛程序算法相关资料 Part I (共5部分)
- mvp架构解析
- H5学习笔记
- google guava使用介绍
- 服务器推技术comet的pushlet实现
- Linux C编程实战——第六章 文件操作
- Javascript对象继承
- Android IOS WebRTC 音视频开发总结(七六)-- 探讨直播低延迟低流量的粉丝连麦技术
- Java中IO字符流FileReader,FileWriter,缓冲流BufferedReader,BufferedWriter流,随机流
- Java集成kettle