读取交货单拣配数量PIKMG(转)
原文链接: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(转)的更多相关文章
- 在LIPS表追加拣配数量PIKMG字段(转)
原文地址:https://blog.csdn.net/zhongguomao/article/details/43451127 最近比较忙,此方案出后测试了很多种情况都存在问题,只能留待以后处理了.. ...
- 20160621-BAPI 更改外向DN&更改拣配
参考代码转自:http://blog.sina.com.cn/s/blog_4c66402b01012lgr.html 感谢. 测试一把,再做总结. 1.更改外向交货单: 2.更改内向交货单. htt ...
- C#ZIP根据路径读取压缩包内文件数量
/// <summary> /// 根据压缩包路径读取此压缩包内文件个数 /// </summary> /// <param name="strAimPath& ...
- BAPI
MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...
- SAP 各模块常用的BAPI
MM模块 1. BAPI_MATERIAL_SAVEDATA 创建物料主数据 注意参数EXTENSIONIN的使用,可以创建自定义字段 例如:WA_BAPI_TE_MARA-MATERIAL = IT ...
- 销售订单、外向交货单、交货 bapi
转自[http://www.cnblogs.com/elegantok/archive/2009/10/18/1585398.html]***********SALES ORDER INPUT CRE ...
- 常用tcode
SAP常用TCODE 1 MMBE 查询库存 2 CO01 生产订单创建 3 ME2N-按采购订单编号 ME2B/ME2M/ME2C/ME2W 采购订单查询 清单范围ALV 4 MB51 物料凭证清单 ...
- SAP S4HANA里委外加工采购功能的变化
SAP S4HANA里委外加工采购功能的变化 [Part 1:主要变化点] 1.1,采购订单界面上的变化, 1.2, 新的事务代码: ME2ON (Subcontracting Cockpit), 1 ...
- YHLMR009 交货单查询
*********************************************************************** * Title : YHLMR009 * * Appli ...
随机推荐
- 系统盘(c盘)空间清理方法总结(转)
我们一般会把系统安装在C盘,但是使用一段时间后会发现C盘的空间越来越少.尤其我们做开发的,会在电脑中装上很多软件的.比如我的机器上C盘空间15G,平时安装软件时只要可以选择我都会把它装到其他盘的, ...
- Python之路-Python常用模块-time模块
一.time模块 常用的一种获取当前时间以及时间格式化的模块,模块名称:time time模块在Python原生安装中就存在所以不需要进行任何安装操作,直接使用即可. 导入方式: import tim ...
- CentOS7搭建Hadoop2.8.0集群及基础操作与测试
环境说明 示例环境 主机名 IP 角色 系统版本 数据目录 Hadoop版本 master 192.168.174.200 nameNode CentOS Linux release 7.4.1708 ...
- 升级docker至最新版本
升级docker至最新版本 1.查找主机上关于Docker的软件包 [root@pre1 ~]# rpm -qa | grep docker docker-1.13.1-88.git07f3374.e ...
- sqli(7)
前言 第7关 导出文件GET字符型注入 步骤OK,但是就是不能写入文件,不知是文件夹的问题还是自己操作的问题.但是确实,没有导入成功. 1. 查看闭合,看源码,发现闭合是((‘ ’)): 2.查看所在 ...
- 04.Linux-CentOS系统sudo权限配置
visudo权限配置普通用户的使用权限范围配置文件: (请根据自己公司需求配置) [root@localhost ~]# visudo ## Allow root to run any command ...
- group_by
1.按照一个列或者多个列对数据分组 2.对每个组进行聚合操作 3. 对聚合后的结果进行判断 1. select avg(score) as score from teacher 2. select ...
- java并发学习--第三章 线程安全问题
线程的安全问题一直是我们在开发过程中重要关注的地方,出现线程安全问题的必须满足两个条件:存在着两个或者两个以上的线程:多个线程共享着共同的一个资源, 而且操作资源的代码有多句.接下来我们来根据JDK自 ...
- Synchronized锁升级
Synchronized锁升级 锁的4中状态:无锁状态.偏向锁状态.轻量级锁状态.重量级锁状态(级别从低到高) 为什么要引入偏向锁? 因为经过HotSpot的作者大量的研究发现,大多数时候是不存在锁竞 ...
- rocketmq启动broker内存占用过大的问题
解决方法: 修改broker启动脚本runbroker.sh里面的jvm参数 JAVA_OPT="${JAVA_OPT} -server -Xms8g -Xmx8g -Xmn4g" ...