由于SAP系统的委外倒冲,有时候会多冲(1PCS),造成MRP运算后异常,如图:

分析原因:

由于委外申请或委外订单所对应的预留单(表RESB)中提货数量大于需求数量造成的。

处理方法:

(1)当委外申请对应的预留单中提货数量大于需求数量时。

把委外申请单的结算标识勾选并保存即可,如图:

通过程序批量处理(示意代码):

“找出所有有问题的采购申请

SELECT
        eban~werks  "工厂
        eban~matnr  "物料
        eban~txz01  "物料描述
        eban~banfn  "采购申请
        eban~bnfpo  "行项目
        eban~bsart  "凭证类型
        eban~bstyp  "项目类别
        eban~loekz  "删除标识
        eban~frgkz  "审批状态
        eban~ekgrp  "采购组
        eban~badat  "采购申请创建日期
        eban~lfdat  "采购申请交货日期
        eban~frgdt  "采购申请批准日期
        eban~menge  "采购申请数量
        eban~lgort  "库位
      INTO CORRESPONDING FIELDS OF TABLE gt_itab
      FROM eban
      INNER JOIN RESB on eban~BANFN = RESB~BANFN AND eban~BNFPO = RESB~BNFPO
      WHERE eban~werks IN s_werks
        AND eban~matnr IN s_matnr
        AND eban~banfn IN s_banfn
        AND eban~bnfpo IN s_bnfpo
        AND RESB~matnr IN s_matnr1
        AND Pstyp = '3'  "项目类别
        AND loekz NE 'X' "删除标识
        AND ebakz NE 'X' "结算标识
        AND RESB~ENMNG > RESB~BDMNG "提货数量大于需求单

”循环处理有问题的委外采购申请

DATA:lt_return TYPE STANDARD TABLE OF bapireturn,
     ls_return TYPE bapireturn.

FIELD-SYMBOLS : <FS_PR>    TYPE BAPIMEREQITEM .
       DATA : I_RETURN           TYPE  TABLE  OF BAPIRET2 ,
            K_PRITEMX          LIKE BAPIMEREQITEM ,
            I_PRITEM_GET       TYPE  TABLE  OF BAPIMEREQITEM ,
            I_PRITEM_GET_LINE  LIKE  LINE  OF I_PRITEM_GET ,
            I_PRITEMX          TYPE BAPIMEREQITEMX   OCCURS  0 ,
            IS_PRITEMX         TYPE BAPIMEREQITEMX ,
            I_PRITEM           TYPE  TABLE  OF BAPIMEREQITEMIMP ,
            I_PRITEM_LINE      LIKE  LINE  OF I_PRITEM ,
            I_SERVICES         TYPE  TABLE  OF BAPI_SRV_SERVICE_LINE ,
            I_SERVICES_LINE    LIKE  LINE  OF I_SERVICES ,
            I_SERVICESX        TYPE  TABLE  OF BAPI_SRV_SERVICE_LINEX ,
            I_SERVICESX_LINE   LIKE  LINE  OF I_SERVICESX ,
            K_RETURN           LIKE  LINE  OF I_RETURN,
*            LV_TABIX           LIKE SY-TABIX

lv_number  LIKE  bapimereqheader-preq_no ,"Pr 单号
            l_flag TYPE c
             .

LOOP AT gt_itab INTO gs_itab WHERE mark = 'X'.

"获取PR 明细 并更新结算状态
           lv_number = gs_itab-banfn.
           CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
           EXPORTING
             input         = lv_number
           IMPORTING
             output        = lv_number.

CALL  FUNCTION  'BAPI_PR_GETDETAIL' "获取明细
            EXPORTING
              NUMBER        =  lv_number
             SERVICES      =  'X'
            TABLES
              RETURN        = I_RETURN
             PRITEM        = I_PRITEM_GET
             SERVICELINES  = I_SERVICES .

IF SY-SUBRC  =  0 .
               LOOP  AT I_PRITEM_GET  INTO I_PRITEM_GET_LINE .
                  I_PRITEM_GET_LINE-CLOSED  =  'X' .
                  I_PRITEM_GET_LINE-REQ_BLOCKED  =  '1' .
                  I_PRITEM_GET_LINE-REASON_BLOCKING  =  '尾量不需执行' .
*               If pr is locked clear deletion indicator to unlock it.
                   MOVE-CORRESPONDING I_PRITEM_GET_LINE  TO I_PRITEM_LINE .
                   IF I_PRITEM_LINE-DELETE_IND  =  'L' .
                     CLEAR  I_PRITEM_LINE-DELETE_IND .
                   ENDIF .
                  IS_PRITEMX-PREQ_ITEM  = I_PRITEM_LINE-PREQ_ITEM .
*                k_pritemx-delete_ind = 'X'.
                  IS_PRITEMX-PREQ_ITEMX  =  'X' .
                  IS_PRITEMX-CLOSED  =  'X' .
                  IS_PRITEMX-REQ_BLOCKED  =  'X' .
                  IS_PRITEMX-REASON_BLOCKING  =   'X' .
                   APPEND IS_PRITEMX  TO I_PRITEMX .
                   CLEAR  K_PRITEMX .
                   APPEND I_PRITEM_LINE  TO I_PRITEM .
                   CLEAR  I_PRITEM_LINE .
              ENDLOOP .
              CLEAR I_RETURN .

CALL  FUNCTION  'BAPI_PR_CHANGE' "更新状态
              EXPORTING
                number         =  lv_number
              TABLES
                return         = I_RETURN
                pritem         = I_PRITEM
                pritemx        = I_PRITEMX
*               pritemtext = lt_pritemtext
               .
               IF Sy-subrc = 0.
                   CALL  FUNCTION  'BAPI_TRANSACTION_COMMIT'
                   EXPORTING
                   WAIT  =  'X' .
               ENDIF.

LOOP AT I_RETURN INTO ls_return WHERE type = 'A'
                                           OR type = 'E'
                                           OR type = 'X'.

ENDLOOP.

IF sy-subrc = 0.
                  CONCATENATE gs_itab-MESSAGE '结算标识错误:' ls_return-message  INTO gs_itab-MESSAGE.
                  gs_itab-light = '@0A@'.
                  MODIFY gt_itab FROM gs_itab.
               ELSE.
                 gs_itab-light = '@08@'.
                 MODIFY gt_itab FROM gs_itab.
               ENDIF.

Free : I_RETURN,I_PRITEM,I_PRITEMX.

ENDIF.

CLEAR gs_itab.
    CLEAR : lv_number.

ENDLOOP.

(2)委外订单对应的预留单中提货数量大于需求数量时。

把相应的委外订单中“交货已完成”勾选(个别S4 Hana 有时间重复操作,即选取消勾选,保存,然后再勾选,再保存)

通过程序批量找到相应的委外采购订单并处理

SELECT
            EKKO~LIFNR  "供应商编号
            EKPO~matnr  "物料
            EKPO~txz01  "物料描述
            EKKO~BEDAT  "凭证日期
            EKKO~EBELN  "采购申请
            EKPO~EBELP  "行项目号
            EKKO~FRGKE  "审批标识
            EKPO~menge  "采购数量
            EKPO~MEINS   "采购单位
            EKPO~ELIKZ  "交货已经完成
            EKPO~werks  "交货工厂
            RESB~RSNUM   "预留单号
            RESB~RSPOS   "预留项目号
            RESB~BDMNG   "需求量
            RESB~ENMNG   "提货数量
            RESB~matnr  as matnr1 "预留物料
          INTO CORRESPONDING FIELDS OF TABLE gt_itab
          FROM EKKO
          INNER JOIN EKPO ON EKKO~EBELN = EKPO~EBELN
          INNER JOIN RESB on EKPO~EBELN = RESB~EBELN AND EKPO~EBELP = RESB~EBELP
          WHERE EKPO~werks IN s_werks
            AND EKPO~matnr IN s_matnr
            AND EKKO~EBELN IN s_EBELN
            AND EKPO~EBELP IN s_EBELP
            AND RESB~matnr IN s_matnr1
            AND EKPO~PSTYP = '3'  "项目类别
            AND EKPO~LOEKZ NE 'X' "删除标识
            AND EKPO~ELIKZ NE 'X'
            AND RESB~ENMNG > RESB~BDMNG "提货数量大于需求单

全部查询出来之后,可以手工处理,也可通写程序处理,还可以通过事务码MASS批理处理。

最后,就可以看到效果如下:

委外采购申请或委外订单收货完成后,造成的MRP异常处理相关推荐

  1. SAP WM 采购订单收货后LT06报错-Allowed storage unit types not defined for storage type Z03-

    SAP WM 采购订单收货后LT06报错-Allowed storage unit types not defined for storage type Z03- 1,如下的storage type ...

  2. SAP WM 采购订单收货后LT06报错-No bin types have been assigned to storage unit type IP-

    SAP WM 采购订单收货后LT06报错-No bin types have been assigned to storage unit type IP- 1,如下的storage type Z03, ...

  3. SAP QM 采购订单收货时没有Vendor CoA就不让收货过账的实现

    SAP QM 采购订单收货时没有Vendor CoA就不让收货过账的实现 物料号757, 指派了QM Control Key 0005, Certificate Type Z01,没有激活检验类型. ...

  4. SAP WM 针对采购订单收货时候不能自动获取物料主数据里的Special Movement Indicator?

    SAP WM 针对采购订单收货时候不能自动获取物料主数据里的Special Movement Indicator? SAP WM模块里有一个标记叫做Special Movement Indicator ...

  5. SAP MM 标准采购组织的分配对于寄售采购订单收货的影响

    SAP MM 标准采购组织的分配对于寄售采购订单收货的影响 PO 4100004022 是一个寄售的采购订单, 采购组织是CSAS, 工厂代码SZSP.采购信息记录也是有的, MIGO试图对该采购订单 ...

  6. SAP WM 采购订单收货后LT06上架界面弹出的QM Sample小窗口如何不让其出现?

    SAP WM 采购订单收货后LT06上架界面弹出的QM Sample小窗口如何不让其出现? MIGO 101 to do GR against purchase order, Posted, and ...

  7. 采购订单收货后不能修改价格的增强

    采购订单收货后不能修改价格的增强 增强名:MM06E005 出口:EXIT_SAPMM06E_012 IF SY-TCODE <> 'ME22N' AND SY-TCODE  <&g ...

  8. SAP MM 采购订单收货被取消了还是不能增加新的delivery cost!

    SAP MM 采购订单收货被取消了还是不能增加新的delivery cost! PO# 8500015169, we did GR and cancelled GR, there is no IR f ...

  9. SAP中采购订单收货和发票收据选项的控制逻辑分析

    下图截取自采购订单中的收货和发票的相关选项.其明确控制逻辑到底是什么?勾选与否又有什么影响.结合实际应用经验分析梳理一下. 在采购订单中,收货和发票收据可以由后台配置的订单类型做不同定义代入一个默认值 ...

最新文章

  1. 随堂小测app冲刺(六)
  2. msvc/gcc:中用#pragma指令关闭特定警告(warning)
  3. HBase应用快速学习
  4. xtrabackup 恢复单个表【转】
  5. Qt使用MSVC编译器关闭“warning: C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失”警告的方法
  6. python2.7读取csv文件_13.1. csv — CSV 文件读写 — Python 2.7.18 文档
  7. ASP.NET Core 自动检查编译项目组件配置
  8. Machine Learning - XVIII. Application Example Photo OCR应用实例-照片OCR(Week10)
  9. Citrix 桌面云 XenApp_XenDesktop_7.18 部署
  10. 什么是弱密码,如何避免
  11. java调用考勤机_zkteco iface702 中控考勤机java开发步骤一---连接考勤机
  12. 【爬虫】谷歌、必应、百度图片爬取用于深度学习
  13. (转)《蜗居》带给校园男女多少悲喜
  14. 应用排行榜第一名脸萌仅仅是刹那的烟火
  15. 微信小程序--小程序及微信生态圈
  16. 板绘:一支没有墨水的笔的故事
  17. asp.net负载均衡方案[转]
  18. ucosii操作系统和linux,请高手介绍下uCOSII和Linux的差异?
  19. 22岁天才少女加入华为,曾获编程界的奥林匹克世界冠军
  20. 树洞程序php,树洞表白墙程序

热门文章

  1. 如何读写一篇优秀的计算机论文
  2. Java多线程读取文件
  3. 什么是函数指针?(理解及使用)
  4. 网站性能检测尖刀-YUI-Yslow
  5. dubbo面试知识总结
  6. AI笔记: 数学基础之直线、圆和方程
  7. 腾讯短链接生成api
  8. 日常英语---八、REBOOT - What is the difference? -MapleStory
  9. Android 对接 dropbox Chooser
  10. CNN经典网络模型(四):GoogLeNet简介及代码实现(PyTorch超详细注释版)