对于工序外协的采购订单,一般不会涉及到库存管理,收货也只是一笔费用,然而对于工序外协的采购订单收货后,一般都需要质检。质检会对合格数量进行确认。我们比较理想的情况就是确认合格数量的时候其对应的采购订单自动入库。基本配置及流程如下:

1.定义控制码:用于质检和外协

2.该物料维护03的检验类型,下达生产订单自动产生检验批。

3.调度员打印工序外协派工单,供应商按照工序外协派工单进行送货

4,质检对供应商送的货物进行判定,使用QE51N,记录检验结果,确认合格数量

5.业务员按照供应商开具的发票进行发票校验

在增强CONFPP05-PP定单确认:储存时的客户特殊增强中添加如下代码:

DATA: L_WERKS LIKE CAUFVD_TAB-WERKS, "工厂
        L_AUFNR LIKE CAUFVD_TAB-AUFNR, "生产订单
        L_AUFPL LIKE CAUFVD_TAB-AUFPL, "工艺路线号
        L_LMNGA LIKE AFRUD_TAB-LMNGA,  "报工数量
        L_VORNR LIKE AFRUD_TAB-VORNR.  "工序号

DATA: L_FRGKZ LIKE EBAN-FRGKZ, "采购申请批准标识
        L_STEUS LIKE AFVC-STEUS,
        L_BANFN LIKE AFVC-BANFN,  "采购申请号
        L_BNFPO LIKE AFVC-BNFPO.  "采购申请行项目

DATA: BEGIN OF T_EKPO OCCURS 0,
      MATNR LIKE EKPO-MATNR,
      WERKS LIKE EKPO-WERKS,
      EBELN LIKE EKPO-EBELN,
      EBELP LIKE EKPO-EBELP,
      BANFN LIKE EKPO-BANFN,
      BNFPO LIKE EKPO-BNFPO,  "采购申请行项目
      MENGE LIKE EKPO-MENGE,
      WEMNG LIKE EKET-WEMNG,
      END OF T_EKPO.

DATA: BEGIN OF T_EKET OCCURS 0,
      EBELN LIKE EKET-EBELN,
      EBELP LIKE EKET-EBELP,
      WEMNG LIKE EKET-WEMNG,
      END OF T_EKET.

IF sy-tcode = 'QE51N'.

LOOP AT CAUFVD_TAB.
      L_WERKS = CAUFVD_TAB-WERKS.
      L_AUFNR = CAUFVD_TAB-AUFNR.
      L_AUFPL = CAUFVD_TAB-AUFPL.
    ENDLOOP.
    LOOP AT AFRUD_TAB.
      L_LMNGA = AFRUD_TAB-LMNGA.
      L_VORNR = AFRUD_TAB-VORNR.
    ENDLOOP.

SELECT SINGLE STEUS BANFN BNFPO
      INTO (L_STEUS,L_BANFN,L_BNFPO)
      FROM AFVC
      WHERE AUFPL = L_AUFPL
      AND VORNR = L_VORNR.

IF L_WERKS = '5000'.
      IF L_STEUS = 'ZP02' OR L_STEUS = 'ZP05' .

SELECT SINGLE FRGKZ
          INTO L_FRGKZ
          FROM EBAN
          WHERE BANFN = L_BANFN
          AND BNFPO = L_BNFPO.

IF L_FRGKZ = '2'.

SELECT *
              INTO CORRESPONDING FIELDS OF TABLE T_EKPO
              FROM EKPO
              WHERE BANFN = L_BANFN
              AND BNFPO = L_BNFPO.

IF T_EKPO[] IS NOT INITIAL."+++采购订单+++

SELECT *
                INTO CORRESPONDING FIELDS OF TABLE T_EKET
                FROM EKET
                FOR ALL ENTRIES IN T_EKPO
                WHERE EBELN = T_EKPO-EBELN
                AND EBELP = T_EKPO-EBELP.

LOOP AT T_EKPO.
                READ TABLE T_EKET WITH KEY EBELN = T_EKPO-EBELN EBELP = T_EKPO-EBELP.
                IF SY-SUBRC = 0.
                   T_EKPO-WEMNG = T_EKET-WEMNG.
                  MODIFY T_EKPO.
                ENDIF.
              ENDLOOP.

"调用BAPI自动报工
             IF L_LMNGA > 0. "+++判断报工数量+++

DATA: BEGIN OF T_HEADER.
                      INCLUDE STRUCTURE BAPI2017_GM_HEAD_01.
              DATA: END OF T_HEADER.

DATA: BEGIN OF T_CODE.
                      INCLUDE STRUCTURE BAPI2017_GM_CODE.
              DATA: END OF T_CODE.

DATA: MATERIALDOCUMENT TYPE BAPI2017_GM_HEAD_RET-MAT_DOC,
                    T_ITEM   TYPE TABLE OF BAPI2017_GM_ITEM_CREATE WITH HEADER LINE,
                    T_RETURN TYPE TABLE OF BAPIRET2 WITH HEADER LINE.

DATA: L_MENGE LIKE EKPO-MENGE.

T_HEADER-PSTNG_DATE = sy-datum.
              T_HEADER-DOC_DATE = sy-datum.
              T_HEADER-PR_UNAME = sy-uname.
              T_HEADER-HEADER_TXT = '外协工序质检报工后自动收货'.

T_CODE-GM_CODE = '01'.

LOOP AT T_EKPO.
                L_MENGE = T_EKPO-MENGE - T_EKPO-WEMNG.
                IF L_LMNGA >= L_MENGE.
                  T_ITEM-ENTRY_QNT = L_MENGE.
                  L_LMNGA = L_LMNGA - L_MENGE.
                ELSE.
                  T_ITEM-ENTRY_QNT = L_LMNGA.
                ENDIF.

*                T_ITEM-MATERIAL = T_EKPO-MATNR.
                T_ITEM-PLANT = T_EKPO-WERKS.
*                T_ITEM-STGE_LOC = T_EKPO-LGORT.
                T_ITEM-MOVE_TYPE = 'X01'.
                T_ITEM-MVT_IND = 'B'.
*                T_ITEM-MOVE_PLANT = '1000'.
*                T_ITEM-MOVE_STLOC = zblko-lgort_s.

T_ITEM-PO_NUMBER = T_EKPO-EBELN.
                T_ITEM-PO_ITEM = T_EKPO-EBELP.

APPEND T_ITEM.

ENDLOOP.

CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
                EXPORTING
                  GOODSMVT_HEADER               = T_HEADER
                  GOODSMVT_CODE                 = T_CODE
*                 TESTRUN                       = ' '
*                 GOODSMVT_REF_EWM              =
               IMPORTING
*                 GOODSMVT_HEADRET              =
                 MATERIALDOCUMENT              = MATERIALDOCUMENT
*                 MATDOCUMENTYEAR               =
                TABLES
                  GOODSMVT_ITEM                 = T_ITEM
*                 GOODSMVT_SERIALNUMBER         =
                  RETURN                        = T_RETURN
*                 GOODSMVT_SERV_PART_DATA       =
*                 EXTENSIONIN                   =
                        .

IF MATERIALDOCUMENT IS NOT INITIAL.
                CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
*                  EXPORTING
*                    WAIT           =
*                  IMPORTING
*                    RETURN         =
                           .
              ELSE.

*                 MESSAGE '自动入库不成功,请通知库房收货!' TYPE 'I'.

*               处理BAPI错误  "消息类型: S 成功,E 错误,W 警告,I 信息,A 中断
                LOOP AT T_RETURN.
                  IF T_RETURN-TYPE = 'E'.
                    MESSAGE T_RETURN-MESSAGE TYPE 'E'.
                  ENDIF.
                ENDLOOP.
              ENDIF.

ELSE.
              MESSAGE '您输入的报工数量为0!' TYPE 'W'.

ENDIF.  "+++判断报工数量+++

ELSE.

MESSAGE '此工序对应的采购申请未转采购订单,该工序无法质检报工!' TYPE 'E'.

ENDIF. "+++判断采购订单+++

ELSE.
        MESSAGE '此工序对应的采购申请未审批,该工序无法质检报工!' TYPE 'E'.

ENDIF. "+++判断采购申请是否审批通过+++

ENDIF. "+++判断控制码+++

ENDIF."+++判断工厂+++

ENDIF. "+++判断事物代码+++

SAP 生产订单工序外协对应的工序报工后,对应的采购订单自动入库相关推荐

  1. 【PP系列】SAP 取消报工后修改日期

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[PP系列]SAP 取消报工后修改日期 前言部分 ...

  2. SAP 取消报工后修改日期

    前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 一般情况,取消报工后,过账日期是不允许修改的 取消报工,日期会默认为当时的报工日期 月结结束,会影响报表的准确性 如果出现 ...

  3. SAP生产订单预留(下)

    订单发料对预留的影响 Fixed Qty:固定数量,不会随主件数量的变化而变化!!! Net Indic:net标识,忽略主件组装报废率,只考虑BOM报废和工序报废. 这两个标识都是从BOM带过来的, ...

  4. SAP ABAP APO PPDS 计划(生产)订单报工事件

    转载至:SAP Help Portal APO模块,整车工厂报工点传入去改变计划订单报工状态是通过一个 /SAPAPO/MF "业务对象". 对该对象,传入事件类型:TPOINT_ ...

  5. java如何开发生产派工报工_派工工序报工

    派工工序报工 应用场景及介绍:用户使用终端设备扫描工序任务快速定位进行报工: HMI操作 [HMI主控台]->[派工工序报工] 操作说明: 条码扫描:默认为空,按照扫描输入的条码,查找工序计划分 ...

  6. SAP MM初阶之包含有Service item的服务采购订单

    SAP MM初阶之包含有Service item的服务采购订单 1, 执行事务代码ME21N创建了如下的服务采购订单. 该服务采购订单的item detail里Services Tab里,维护了三个s ...

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

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

  8. sap采购申请自动转采购订单_SAP财务常用的MM模块事务代码清单

    SAP是财务业务一体化的软件,各模块信息高度集成.财务人员不仅需要掌握财务模块的操作和原理,还要能够从SAP中查询相关数据,如采购量.销售量.产量等等.本文详细列举了物料管理(MM)模块常用的信息查询 ...

  9. sap采购申请自动转采购订单_SAP idoc功能够强大: 采购订单修改自动触发销售订单修改...

    笔者在上一篇文章 SAP idoc功能够强大: 采购订单下达自动触发销售订单创建 中详细说明了如何通过IDOC来实现当公司A下达向公司B的采购订单自动在公司B中创建对公司A的销售订单,且传回订单确认信 ...

最新文章

  1. 新技术、新思维开创公共安全管理新模式
  2. boost asio resolver
  3. FXML:使用BuilderFactory的自定义组件
  4. 生信宝典,生物信息学习资源
  5. java多线程 文件夹_Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合
  6. Python之 range()函数✅
  7. 可拖动jquery插件
  8. 使用 Java API 操作 HBase
  9. java基础篇---网络编程(TCP程序设计)
  10. Postgresql源码(33)Btree索引读——整体流程_bt_first
  11. 识别连笔字的软件_3个最实用的字体识别的在线工具
  12. VBA编程_Selection总结
  13. Docker容器Exited(137)解决方案
  14. 来电转接点击选择联系人按钮-没有出现联系人
  15. bmp图片灰度化和二值化
  16. 光头探长正在连接服务器,光头探长全关卡攻略汇总 全关卡通关详解
  17. 如何评测光源的好坏?
  18. 微信内置浏览器不支持打开网页或下载APP怎么办,微信跳转浏览器原理
  19. Windows中怎么下载桌面便签小工具 便签小工具简单使用教程
  20. 企业的应用架构演变之路

热门文章

  1. httpPrinter--vue--打印
  2. 求伯君—金山电脑公司总裁
  3. android调起QQ聊天,QQ个人资料,QQ群资料
  4. 什么是 Merkle Pollard
  5. Wireshark lua 插件简介
  6. 【狂神说Java】Git最新教程通俗易懂
  7. 成龙在北大的演讲:值得每一个中国人看[精品]
  8. 将Windows系统移到另一个硬盘
  9. 2021年中国社会客货运输量及周转量情况分析[图]
  10. Excel中VBA编程学习笔记(七)--窗口应用(WINDOW)