发布时间: 2026-06-24
浏览次数: 13
次 
[前言]
迪森深耕SAP领域20+年,深受众多客户好评夸赞。为了能够更好地帮助客户实施数字化项目,「迪森专家专栏」完全免费开源,向马斯克开源精神致敬!
本文根据迪森众多拥有20+年SAP经验的专家级顾问团队的资深能力,并结合迪森1000+个成功项目案例,总结并发表企业在推行ERP项目实施中的相应研究心得与建议,持续为企业的SAP实施与交付保驾护航。
[需求描述]
生产车间工单投料时,采用BACKFLUSH方式倒扣料,即:按报工数量*BOM标准用量,来自动投料到生产订单,但是期末盘点时,将出现盘点差异,这些差异数量和差异金额需要按当月投入到生产订单的数量来分配。这样处理的好处是,材料用量、材料费金额,更真实地计入了生产订单(真实还原:料工费等成本组件、材料投入产出损耗)。
为此,SAP功能DUV (Distribution of Usage Variances),专门处理分摊这个差异。注意:只是生产现场盘点差异适用于这样处理,对于生产消耗无关的:成品仓库的盘点溢缺、非生产性物资 MRO (Maintenance, Repair & Operations) 盘点溢缺,不适用于DUV。

[系统配置]
注意:DUV功能虽然是为实际成本核算服务,是否激活物料分类账,不影响DUV功能的使用。
1. 基础功能激活 事务码
早期的SAP (SAP_FIN 730以前版本),需要激活 EA-FIN 。后续版本中默认激活。

ENTERPRISE_EXTENSIONS->EA-FIN

2. 按”工厂+库位”指定激活DUV 事务码 SM30 视图 CKMLDUVN001L


配置说明:
分配有效:指是否激活DUV功能
缺省分配标识:创建盘点凭证时,盘点点凭证行项目中是否默认启用DUV
绑定分配标识:给盘点凭证行项目中的默认启用DUV或不启用DUV绑定,不允许手工修改
附:盘点凭证行项目,缺省分配标识=1时,差异分配=X,缺省分配标识=空时,差异分配=空

3. 移动类型相关配置
(1) 添加移动类型配置中的事务码 事务SM30视图 V_158_ALL(后续版本中,SAP默认给加上了)

(2) 指定DUV分摊的基础移动类型,事务码SM30视图 TDUVN156
在这里你可以指定收集的差异按哪些基础收发移动类型分析。


通常情况下,盘点差异按工单投料 261/262的投料数量来分摊差异。
(3) 创建差异分摊移动类型 事务码 OMJJ

注:为了考虑WM(Warehouse Management system)盘点,Z29复制711,而不复制701。
对于盘盈,通过Z29移动类型将损耗负数转出:701, 703, 707, 712, 714, 716, 718 -> Z29
对于盘亏,通过Z30移动类型将损耗正数转出:702, 704, 708, 711, 713, 715, 717 -> Z30
对于Z29损耗负数,通过Z72移动类型投入到工单 :Z29 -> Z72 (or 262)
对于Z30损耗正数,通过Z71移动类型投入到工单 :Z30 -> Z71 (or 261)
A. 创建移动类型 Z29 复制711移动 后,注意按以下红框内容修改:

其中:取消勾选 “生成实际盘点凭证” ,此移动类型不能用于创建盘点凭证;
其中:勾选 “反向移动类型标识” ,此移动类型按 701,711负数处理;

按上图,增加两个事务码:CKMDUVMAT MIGO。
CKMDUVMAT 表示,通过 CKMDUVMAT事务码来处理 Z29分摊转出过账。
MIGO 表示,通过 MIGO事务码来处理 冲销 Z29分摊转出过账。

如上图:Z29 DUV对应 Z72 分摊到工单 ,Z29冲销对应过账为 Z30。
B. 创建移动类型 Z30 复制712移动 后,注意按以下红框内容修改:

其中:取消勾选 “生成实际盘点凭证” ,此移动类型不能用于创建盘点凭证;
其中:勾选 “反向移动类型标识” ,此移动类型按 702,712负数处理;


如上图:Z30 DUV对应 Z71 分摊到工单 ,Z30冲销对应过账为 Z29。
C. 创建移动类型 Z71 复制261移动 后,注意按以下红框内容修改:

按上图,增加两个事务码:CKMDUVMAT MIGO。
CKMDUVMAT 表示,通过 CKMDUVMAT事务码来处理 Z71分摊转入工单过账。
MIGO 表示,通过 MIGO事务码来处理 冲销 Z71分摊转入工单过账。

如上图:Z71冲销对应过账为 Z72。
D. 创建移动类型 Z72 复制262移动 后,注意按以下红框内容修改:

按上图,增加两个事务码:CKMDUVMAT MIGO

E. 给移动类型指定后续处理:701, 703, 707, 712, 714, 716, 718 -> Z29

F. 给移动类型指定后续处理:701, 703, 707, 712, 714, 716, 718 -> Z29

[场景测试]
1. 创建盘点凭证并过账,参考以下事务码:

MI09 = MI01 + MI04
MI08 = MI04 + MI07
MI10 = MI01 + MI04 + MI07
测试盘点两个过账凭证如下:

2. 数据过账后,数据表记录如下:

系统除了在 IKPF ISEG表记录外,等待分摊的盘点差异,还在数据表CKMLDUVN 记录。

3. 执行盘点差异分摊,事务码:CKMDUVMAT


选择全部行项目,点:分配到订单。

如上图,可以看到盘点差异状态已经变为:分配已创建。

如上图:系统默认按261/262投料量分摊到生产订单,同时允许手工调整,还可以增加行,允许分配到其他生产订单。处理后,需要点保存按钮。

如上图执行过账,过账后,系统显示过账凭证号,可以通过MIGO查看凭证行项目:


查看CKM3N 可以看到,系统补做了Z30 来转出分摊 702 盘亏差异,如下:

同时,分摊转入生产消耗,如下:

补充说明:如果当前物料701、702盘点差异,无相应的 261、262生产投料,手工补充一行。

手工补充后,点过账,程序DUMP 读取 ct_imseg。


程序:LCKMLDUVMATF06 读取基础分摊移动凭证时,出错。
4. 查询盘点差异分摊记录,事务码:CKMDUVSHOW


5. 思考问题:如果盘点直接使用MIGO处理702、701,能否使用DUV分摊差异。
理论上可以。
(1) 事务码MIGO ,直接处理702、701 盘点差异。

(2) 开发程序,补充IKPF/ISEG/CKMLDUVN表记录



(3) 事务码CKMLDUVN 分摊盘点差异。


(4) 事务码CKM3N查看物料分类账结果。
可以看到盘亏有两笔:一笔通过MI*系列事务码处理,一笔直接通过MIGO事务码处理,都通过事务码CKMLDUVN 分摊成功!


总结:
A. 如果通过MIGO直接做盘点差异701/702过账,则需要补充IKPF/ISEG/CKMLDUVN,补充后可以使用DUV功能来分摊差异。
注意:补充IKPF/ISEG表记录盘点凭证号是,需要通过系统函数拿 MATBELEG 对象编号,不要任意写盘点凭证编号!!!
B. 当月待分摊的盘点差异,必须有相应的261/262投料作料基础,否则程序运行DUMP。
附:
1. 事务码CKMDUVMAT 默认处理和查看未过账的数据,时间段为:月初到当前指定日期。
如果查看已过账的,则勾选以下选项:

2. 事务码CKMDUVMAT 创建分配前,需要指定日期段,即:取哪一个期间的261/262过账数据。

3. 事务码CKMDUVSHOW 查询DUV分摊结果时,数据画面有中功能处理按钮,其中:过账和冲销过账,系统处理不了,因为 OMJJ事务码中,没的允许 CKMDUVSHOW事务码处理。

事务码 OMJJ中,Z29/Z30移动只允许 CKMDUVMAT 处理,不允许CKMDUVSHOW 处理,如果允许了, CKMDUVSHOW 就不只是查看功能了。

相关数据表:
CKMLDUVN001L 消耗差异的分配:激活控制
CKMLDUVN 使用差异的分配 (每个ISEG条目的状态)
CKMLDUVNCO 每个科目分配对象使用的差异
参考NOTES:
1369514 - DUV INFO: Activation steps
645739 - Transaction types for DUV
939881 - Missing DUV documents- materials with serial number profile
2776096 - INFO: Error KI 153 during CKMDUVACT posting
问题一:
物料W911002 工厂 6011,当月只有盘亏,没有261、262生产投料,则CKMDUVMAT一直显示未分摊,如何处理?

事务码CKMDUVMAT一直显示未分摊。

处理开发功能,将ISEG-XDISPATCH 字段清空。

CKMLDUVN-STATUS 状态修改为 70。

【服务指南】
如需了解更多SAP课程资讯、项目咨询运维,请拨打迪森官方咨询热线: 400-600-8756

【关于迪森】
全球专业的咨询、技术及培训服务提供商,SAP金牌合作伙伴、SAP软件合作伙伴、SAP实施合作伙伴、SAP官方授权培训中心。二十年品质,值得信赖!