无意中发现有个程序用IMPORT mdtbx FROM DATABASE mdtc(ar) ID mdkp-dtnum取MRP清单的时候,发现如果一个工厂对应多种MRP区域的时候,取不到另外MRP区域的数据,

但是用函数MD_STOCK_REQUIREMENTS_LIST_API可以取到,经深入分析得知这两种取法的区别:

用语句IMPORT mdtbx FROM DATABASE mdtc(ar) ID mdkp-dtnum取的是上一次MRP运行过后的结果,这个是静态的结果(也就是事物码MD05的结果)。

用函数MD_STOCK_REQUIREMENTS_LIST_API取得是实时的MRP的结果,这个是动态的结果(也就是事物码MD04的结果),此种方法可以区别MRP区域,如果不输入MRP区域

的话,就是默认为一个工厂所有MRP区域所有的结果,如果想取静态的其他MRP区域的结果的话,可以使用下面的代码:

REPORT ZMRPTABLE.

TABLES: MDKP,  "Header Data for MRP Document
        MDTB,  "MRP table
        MDTC,  "Aggregated MRP table items
        T457T. "Description of MRP elements

DATA: BEGIN OF MDTBX OCCURS 0.
        INCLUDE STRUCTURE MDTB.
DATA: END   OF MDTBX.

SELECT-OPTIONS: PLANT FOR MDKP-PLWRK OBLIGATORY,
                MATNR FOR MDKP-MATNR OBLIGATORY.
* 默认工厂和MRP区域一样的情况
CLEAR: MDKP, MDTB.
SELECT * FROM MDKP WHERE DTART EQ 'MD'
                     AND MATNR IN MATNR
                     AND PLWRK IN PLANT.
    WRITE:/ MDKP-MATNR, MDKP-PLWRK.
    IF MDKP-CFLAG EQ 'X'.
       CLEAR MDTBX. REFRESH MDTBX.
       IMPORT MDTBX FROM DATABASE MDTC(AR) ID MDKP-DTNUM.
       LOOP AT MDTBX.
         MOVE MDTBX TO MDTB.

SELECT SINGLE * FROM T457T WHERE SPRAS = 'E'
                                      AND DELKZ = MDTB-DELKZ.

IF MDTB-PLUMI = '-'. MULTIPLY MDTB-MNG01 BY -1. ENDIF.

WRITE:/ MDTB-DAT00, T457T-DELB1, MDTB-VSTAT,
                                          MDTB-MNG01, MDTB-LGORT.
       ENDLOOP.
    ELSE.
       SELECT * FROM MDTB
                     WHERE DTNUM EQ MDKP-DTNUM
                     ORDER BY PRIMARY KEY.
         SELECT SINGLE * FROM T457T WHERE SPRAS = 'E'
                                      AND DELKZ = MDTB-DELKZ.

IF MDTB-PLUMI = '-'. MULTIPLY MDTB-MNG01 BY -1. ENDIF.

WRITE:/ MDTB-DAT00, T457T-DELB1, MDTB-VSTAT,
                                          MDTB-MNG01, MDTB-LGORT.
       ENDSELECT.
    ENDIF.
ENDSELECT.

* 默认工厂和MRP区域不一样的情况

CLEAR: MDKPDB, MDTB.
SELECT * FROM MDKPDB WHERE DTART EQ 'MD'
                     AND MATNR IN MATNR
                     AND PLWRK IN PLANT.
    WRITE:/ MDKPDB-MATNR, MDKPDB-PLWRK.
    IF MDKP-CFLAG EQ 'X'.
       CLEAR MDTBX. REFRESH MDTBX.
       IMPORT MDTBX FROM DATABASE MDTC(AR) ID MDKPDB-DTNUM.
       LOOP AT MDTBX.
         MOVE MDTBX TO MDTB.

SELECT SINGLE * FROM T457T WHERE SPRAS = 'E'
                                      AND DELKZ = MDTB-DELKZ.

IF MDTB-PLUMI = '-'. MULTIPLY MDTB-MNG01 BY -1. ENDIF.

WRITE:/ MDTB-DAT00, T457T-DELB1, MDTB-VSTAT,
                                          MDTB-MNG01, MDTB-LGORT.
       ENDLOOP.
    ELSE.
       SELECT * FROM MDTB
                     WHERE DTNUM EQ MDKPDB-DTNUM
                     ORDER BY PRIMARY KEY.
         SELECT SINGLE * FROM T457T WHERE SPRAS = 'E'
                                      AND DELKZ = MDTB-DELKZ.

IF MDTB-PLUMI = '-'. MULTIPLY MDTB-MNG01 BY -1. ENDIF.

WRITE:/ MDTB-DAT00, T457T-DELB1, MDTB-VSTAT,
                                          MDTB-MNG01, MDTB-LGORT.
       ENDSELECT.
    ENDIF.
ENDSELECT.

MRP清单的动态和静态ABAP的取法相关推荐

  1. SAP ABAP 开发管理 代码内存标记 位置使用清单(Mark of memory id)

    SAP ABAP 开发管理 代码内存标记 位置使用清单(Mark of memory id) 引言: 代码内存标记(Mark of memory id)是我开发中对 ABAP MEMORY ID 使用 ...

  2. 计划订单号码范围用完导致MRP无法运行

    今天碰到一个问题,业务部门反映有一些物料的MRP无法运行,不管是批量MD01还是MD02都无法运行出计划订单,相关需求无法传递. 运行MRP的时候提示没有创建任何的计划订单,且提示MRP清单终止,开始 ...

  3. 【PP操作手册】运行MRP产生计划订单

    菜单路径:SAP 菜单 > 后勤 > 生产 > 资源分配计划 > 报表 > MD04 – 库存/需求清单 事务代码:MD04 双击进入"库存/需求清单:初始屏幕 ...

  4. MRP例外消息处理方法

    组 例外 例外信息   诊断 处理建议 1 02 新, 和过去的未清日期 New, and opening date in the past 在MRP清单里,这个例外信息表明: • 计划订单在最近一次 ...

  5. 主生产计划的功能以及其相关MRP类型参数

    主生产计划实际相当于一个计划调节器,用主生产计划可以合理的调节企业资源配置与需求的矛盾,避免由于需求不稳定造成的产品未能按期交货,产品积压,资源浪费.超负荷运转等现象,提高企业对用户的服务水平. 一般 ...

  6. SAP ABAP程序优化-多线程并行处理

    转载请标明出处:http://blog.csdn.net/wanglei880526/article/details/8949754 实际项目实施过程中,我们会遇到程序性能优化的问题,这里介绍一种方法 ...

  7. 【PP MRP】MRP参数详解

    一.RUN MRP    T-code:MD01 MD02 Processing key(处理代码) : NETCH (净变化计划):即只计划上次计划以后计划相关内容发生变动的物料(注意,某些物料的参 ...

  8. PP实施经验分享(5)——SAP中MD04显示常用函数(读取SAP MRP运行数据)

    PP实施经验分享(5)--SAP中MD04显示常用函数(读取SAP MRP运行数据) SAP实施过程中,经常会遇到用户对于现有MD04标准功能展示有一定的抱怨,不符合我们查看的习惯,经常会提出相关报表 ...

  9. SAP-PP生产计划-MRP运行相关参数

    1. 判断工厂是否运行MRP: ECC需要激活工厂是否运行MRP(S4无需激活):生产-物料需求计划-计划文件条目-激活MRP 2. 判断物料是否运行MRP: ①物料主数据MRP视图1-MRP类型控制 ...

最新文章

  1. JWT(JSON Web Token)简介及实现
  2. 周五晚上看了变形金刚
  3. js如何使浏览器允许脚本异步加载
  4. iOS LaunchScreen和LaunchImage的转换启动图
  5. 地图检索 – 与众不同
  6. Python 技术篇-容易被忽略的尾差问题
  7. 射影几何笔记5:齐次坐标(Homogeneous coordinates)
  8. 关于引用传递的测试题
  9. qtablewidget 选中不改变背景_C4D制作不一样的核壳结构
  10. C#组成考题字符串【C#】
  11. 浙江大学计算机考研408上岸,2016年跨考上岸浙江大学计算机研究生,初试412分经验谈!...
  12. 记录CodeForces第一次比赛经历
  13. [转载] numpy用法(logical_and, nonzero,arange, reshape)
  14. 理解Python的协程机制-Yield
  15. 安装win11,跳过TPM2.0限制
  16. django 数据库配置
  17. 程序员常用的25个技术网站,良心推荐!
  18. 网站服务器到期后 内容释放,服务器到期后多久释放
  19. 美团java后台面经
  20. sqlMap embedded=iSinta.Beiwo.Infrastructure.Mappers.Member.MemberAddress.xml, iSinta.Beiwo.Inf

热门文章

  1. [洛谷P4705]玩游戏
  2. centos 7 密码破解 rm -rf 删除恢复
  3. Centos 6.4 python 2.6 升级到 2.7一起的MySQLdb不能使用的解决问题
  4. 国内代码托管平台(Git)
  5. 转:CMake 使用方法
  6. linux 和 windows 上printf 的不同
  7. 在SQL2005/SQL2008中CTE用法差异
  8. 在虚拟机中安装gentoo简化步骤(基于官方手册)
  9. ucore-lab1-练习6report
  10. window系统JAVA开发环境的搭建