原文链接:https://www.591sap.com/thread-953-1-1.html

SAP交货单交货数量在lips中直接读取,但是拣配数量lfimg,只存在vbfa中,且如果基本计量单位和销售单位不一样,那么需要数量的转换

一、部分代码:

      SELECT SUM( rfmng ) INTO lv_rfmng
      FROM vbfa
      WHERE vbelv = lt_lips-vbeln
        AND posnv = lt_lips-posnr
        AND vbtyp_n = 'Q'.
      IF sy-subrc = .
        CALL FUNCTION 'MATERIAL_UNIT_CONVERSION'  "基本计量单位-->销售单位
          EXPORTING
            input                = lv_rfmng
*           KZMEINH              = ' '
            matnr                = lt_lips-matnr
            meinh                = lt_lips-vrkme  "销售单位
            meins                = lt_lips-meins  "基本计量单位
          IMPORTING
            output               = t_item-pikmg
          EXCEPTIONS
            conversion_not_found =
            input_invalid        =
            material_not_found   =
            meinh_not_found      =
            meins_missing        =
            no_meinh             =
            output_invalid       =
            overflow             =
            OTHERS               = .
      ENDIF.
      t_item-vrkme = lt_lips-vrkme.

二、调用标准函数直接取拣配数量:WB2_GET_PICK_QUANTITY

DATA:e_pikmg TYPE pikmg.

CALL FUNCTION 'WB2_GET_PICK_QUANTITY'
  EXPORTING
    i_vbeln             = i_head-vbeln
    i_posnr             = t_item-posnr
*   I_MODE              = ' '
  IMPORTING
    e_pikmg             = e_pikmg
  EXCEPTIONS
    document_read_error =
    OTHERS              = .

三、交货单拣配发货过账时,拣配数量的控制1、增强MV50AFZ1拣配数量XLIPS-PIKMG

FORM USEREXIT_SAVE_DOCUMENT_PREPARE.
*{   INSERT         SGDK905697                                        1
*发货过账时拣配数量为0 检查
DATA:lv_wbstk TYPE vbuk-wbstk. CHECK likp-lfart = 'ZLF1' AND vbuk-wbstk = 'C'."VBUK-WBSTK check post goods issue SELECT SINGLE  wbstk INTO lv_wbstk FROM vbuk WHERE vbeln = vbuk-vbeln AND wbstk = 'C'.
IF sy-subrc <> .
  LOOP AT xlips WHERE updkz NE 'D' AND pikmg IS INITIAL.
    READ TABLE xlips TRANSPORTING NO FIELDS WITH KEY uecha = xlips-posnr.
    IF sy-subrc = .
      CONTINUE.
    ELSE.
      MESSAGE '拣配数量不能为0!' TYPE 'E'.
    ENDIF.
  ENDLOOP.
ENDIF. *}   INSERT
ENDFORM.

但FORM USEREXIT_SAVE_DOCUMENT_PREPARE中报错,会在某些场景触发系统报错:Risk of posting several mat.documents for one delivery->long text

2、交货单不完整性检查配置
交货单中 交货数量=0,拣配数量=0,不允许过账,可以通过交货单不完整性检查配置来解决,但是这里有个致命的问题,不支持交货单物料的批次拆分,所以该配置又局限性,不适用。

注意,将“检查数量0”设置为B,即可实现避免交货单0拣配数量问题

原文链接:https://www.591sap.com/thread-953-1-1.html

读取交货单拣配数量PIKMG(转)的更多相关文章

  1. 在LIPS表追加拣配数量PIKMG字段(转)

    原文地址:https://blog.csdn.net/zhongguomao/article/details/43451127 最近比较忙,此方案出后测试了很多种情况都存在问题,只能留待以后处理了.. ...

  2. 20160621-BAPI 更改外向DN&更改拣配

    参考代码转自:http://blog.sina.com.cn/s/blog_4c66402b01012lgr.html 感谢. 测试一把,再做总结. 1.更改外向交货单: 2.更改内向交货单. htt ...

  3. C#ZIP根据路径读取压缩包内文件数量

    /// <summary> /// 根据压缩包路径读取此压缩包内文件个数 /// </summary> /// <param name="strAimPath& ...

  4. BAPI

    MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...

  5. SAP 各模块常用的BAPI

    MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...

  6. 销售订单、外向交货单、交货 bapi

    转自[http://www.cnblogs.com/elegantok/archive/2009/10/18/1585398.html]***********SALES ORDER INPUT CRE ...

  7. 常用tcode

    SAP常用TCODE 1 MMBE 查询库存 2 CO01 生产订单创建 3 ME2N-按采购订单编号 ME2B/ME2M/ME2C/ME2W 采购订单查询 清单范围ALV 4 MB51 物料凭证清单 ...

  8. SAP S4HANA里委外加工采购功能的变化

    SAP S4HANA里委外加工采购功能的变化 [Part 1:主要变化点] 1.1,采购订单界面上的变化, 1.2, 新的事务代码: ME2ON (Subcontracting Cockpit), 1 ...

  9. YHLMR009 交货单查询

    *********************************************************************** * Title : YHLMR009 * * Appli ...

随机推荐

  1. jquery 在页面上根据ID定位(jQuery锚点跳转及相关操作)

    JQuery下锚点的平滑跳转 对于锚点的平滑跳转,在一般的商业性质的网站上,权衡来说,要谨慎使用. 例如:让页面平滑滚动到一个id为box的元素处,则JQuery代码只要一句话,关键位置 如下: $( ...

  2. Linux系统性能测试工具(一)——内存带宽测试工具mbw

    本文介绍关于Linux系统(适用于centos/ubuntu等)的内存带宽测试工具-mbw.内存性能测试工具包括: 内存带宽测试工具——mbw: 内存压力测试工具——memtester: 内存综合性能 ...

  3. 从1到n整数中1出现的次数(整数中1出现的次数)

    题目 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1.10.11.12.13因此共出现6次,但是对于后面问题他就没辙了.AC ...

  4. 使用GDB调试时attach ID不被允许

    在进入gdb后,直接使用attach ID,出现下面的情况: Could not attach to process.  If your uid matches the uid of the targ ...

  5. 解决nginx proxy_pass反向代理cookie,session丢失的问题

    参考地址:https://www.jianshu.com/p/34abe7eb6f0b 为什么cookie 会丢失? 比如说一个没有经过代理的地址 : http://127.0.0.1/project ...

  6. python语句执行

    python文件中的语句,按顺序执行,执行import时,原文件会入栈,等import文件执行完成后,才会出栈执行. load/const.py --- import os DB_ADDRESS = ...

  7. Test 6.29 T2 染色

    问题描述 于是 CJK 轻轻松松就切了第一题."好,那么来看看第二题吧." JesseLiu 大手一挥,CJK 眼前立刻出现了一棵有 n 个节点的树."现在,你将要为这颗 ...

  8. linux运维、架构之路-linux磁盘管理

    一.企业中磁盘选购: 1.线上的业务,用SAS磁盘 2.线下的业务,用SATA磁盘,磁带库 3.线上高并发.小容量(多人浏览力图片)的业务,SSD磁盘 4.根据数据的访问热度,智能分析分层存储,SAT ...

  9. 170821-关于SpringMVC的知识点

    1.SpringMVC 概述以及优势 SpringMVC和Spring的关系:  软件开发的三层架构: web层[表示层.表现层]---->Service层---->Dao[DataBas ...

  10. JavaScript 获取随机整数

    Math.random()方法会返回介于 0(包含) ~ 1(不包含) 之间的一个随机数 假如想要拿到0-10之间的数,只需要将该方法的值*10 即Math.random()*10: 假如想要拿到0- ...