简介:供应商寄售是SAP物料管理(MM)模块中的一种供应链协作模式,供应商将货物存放在企业仓库,待实际消耗后才进行结算,是降低库存资金占用的常用方案。这份SAP供应商寄售实操详解围绕“寄售库存不计成本、领用后按信息记录结算”的核心原理,面向SAP顾问、MM模块运维人员及初学者,系统梳理了从物料主数据维护(采购类型F、特殊采购类别10)、供应商与信息记录建立,到采购申请/订单创建(项目类别K)、101收货、411库存转移及MRKO发票结算的完整链路,并逐一标注了XK01、ME11、ME51N等关键事务代码,同时点明101收料暂无会计凭证、411移库才产生财务凭证等易错环节。资源包内仅有1个doc文档,压缩包大小约123KB,内容紧凑、步骤清晰,既适合按步骤跟做学习,也可以作为日常配置与排错的手册。目前已有556人浏览学习,说明这份资料对处理寄售类业务具有实际参考价值。文档还针对发票校验中常见的系统报错给出了412K冲销后再执行结算的排查思路,能有效帮助读者规避寄售流程中的典型陷阱,提升实操效率。
1. 供应商寄售:先领料后结算,为什么你的库存账总是对不上
提到 SAP 供应商寄售,大部分 MM 顾问的第一反应是“特殊库存类型 K”,但这个回答太浅了。做寄售的真正难点不在配置,而在库存所有权与结算时点——物料明明躺在你仓库里,但 ERP 里它既不算你的资产,也不能直接参与 MRP 运算,直到你把它从寄售库存转入自有库存的那一刻,财务才开始记账。这个“先领用、后付款、物权不转移”的模式,天然就是库存差异和财务对账的重灾区。
如果你所在的工厂有这种场景:供应商把原料放在你仓库,你按实际消耗量月结付款,或者客户要求你先把货备到他指定的中转仓、用了再开票,那你就需要把供应商寄售这一整套流程吃透。这篇文章从一个实施顾问的视角,把配置、日常操作、结算对账和那些没人写在 PPT 里的坑一次讲清楚,适合正在做 MM 模块实施或供应链优化的人直接照着落地。
2. 从零搭建寄售库存:主数据、信息记录与采购订单的联动逻辑
2.1 寄售模式的本质:特殊库存 K 与所有权转移时点
标准采购订单是“收货即产生负债”,而寄售采购订单是“收货只增加库存数量,不产生财务凭证”。在 SAP 里,寄售库存用特殊库存类型 K 标识,它挂在供应商名下而不是公司自有库存下。这意味着你在 MB52 / MMBE 里看到的库存数量,实际是“代管库存”,系统不会把它当成你的资产去核算。
配置层面的前置条件:工厂级别需要激活“寄售库存”相关的字段状态,这通常在 OMJJ(收货移动类型)和 OMB2(库存过账配置)里确认。而最关键的一点是,寄售采购订单的“项目类别”必须是 K,否则后续的收货、领用、结算都会走成普通采购流程。
寄售 vs 普通采购的核心区别,按我的经验可以压缩成一张对比表:
| 维度 | 普通采购 | 供应商寄售 |
|---|---|---|
| 物权归属 | 收货即归我方 | 始终归供应商 |
| 付款时点 | 收货/发票校验后 | 领用消耗后 |
| 库存类型 | 非限制使用库存 | 特殊库存 K |
| MRP 参与 | 直接参与 | 可控制是否参与 |
| 发票校验 | MIRO 立即产生负债 | MRKO 按消耗结算 |
这个表解释了为什么寄售模式下需要一套独立的结算流程——你把一批货领到产线上,供应商那边其实还没开出这笔货的发票,只有等 MRKO 跑完结算,会计科目才会挂上应付账款。
2.2 供应商主数据、物料主数据与货源清单的配置套路
我做寄售项目时,第一步永远是检查供应商主数据的“采购”视图,确认“寄售供应商”标识。路径是 XK01 / XK02,进入采购数据屏幕,勾选“寄售供应商”这个 checkbox。没有这个勾,后面给这个供应商做寄售采购订单时,系统会直接报错“供应商不是寄售供应商”。
第二步是物料主数据的“采购”视图。寄售物料需要维护“特殊采购类型”字段,取值可以是空(默认标准采购),也可以指定为 K 强制走寄售,同时在“MRP 2”视图里决定是否允许该物料以寄售方式采购。这个字段不维护好,ME11 创建寄售信息记录时会被系统拦下来。
第三步就是 ME11 创建寄售信息记录,关键字段:
- 信息记录类别:寄售,即 Category = 2,不能选标准
ME11 初始界面:信息记录类别 = 寄售(Consignment) 采购组织 = 1000 供应商 = 4000001234 物料 = 100005678- 条件类型:寄售场景默认使用 PB00(寄售价格)。我一般会配置一个独立的条件类型,比如 PBXX,专门用于寄售结算,避免和普通采购价格混在一起。
条件类型 = PBXX(自定义) 有效期 = 2024.01.01 - 9999.12.31 金额 = 12.50 / 每千克价格维护完成后,ME03 查看寄售信息记录时,能看到一个独立的“寄售”页签,里面是供应商的寄售结算价格。
第四步是 ME01 创建货源清单,把信息记录和供应商绑定到物料上,同时维护好“配额安排”的话,后续 MRP 跑出来的采购建议会优先落到寄售供应商头上。货源清单不建,采购员手工创建寄售 PO 也没问题,但 MRP 自动转采购订单时就会跳过这个供应商。
2.3 寄售采购订单:ME21N 里三个关键字段的准确设置
ME21N 创建寄售采购订单时,有三个字段我建议每次都核对一遍,因为它们决定着你后面对账时的数据口径:
采购订单类别。项目里“订单类别”必须显示为 K,这代表这是一个寄售订单行。如果显示的是标准订单,说明信息记录选错了。
“寄售”标识。在项目细节的“发票”页签里,有一个“寄售”标识,默认勾选。如果你发现这个勾是灰的,检查前两步的配置有没有漏。
物料编号与工厂组合。一个寄售 PO 可以包含多个行项目,每一行对应一个物料和工厂。这里的工厂决定了库存挂到哪个 location,后续 MIGO 收货时不能跨工厂收。
创建完 PO 后,ME28 审批(如果有审批策略的话)通过,才能做 MIGO 收货。这一步很多人会漏掉审批策略,导致寄售 PO 一创建就被采购员直接收货,财务月结对账时才发现凭证缺失。我的习惯是给寄售 PO 单独设一套审批策略,金额阈值设低一点,比如超过 5 万就必须经过采购经理审批。
3. 日常业务流:收货、领用、退料与库存转移的过账操作
3.1 MIGO 收货:101 / 561 K 过账差异与特殊库存标识
寄售收货的标准移动类型是 101,但收货时库存类型不同,所以 MIGO 界面的“库存类型”要选“寄售库存”。如果信息记录和 PO 都正确,系统会自动带出库存类型 K。
MIGO 事务码,选择“采购订单”参照 PO 号码 = 4500012345 移动类型 = 101 库存类型 = 寄售(K) 过账后 MMBE 查看:库存类型 K,数量 = 收到的数量这里有个新手容易踩的坑:如果你用 501 收货入库(无采购订单收货),系统不会自动带出寄售标识,这货就变成了自有库存,后续结算流程就走不下去了。遇到这种情况,唯一的后悔药是反向过账 502,再改成 101 重新收一遍。
561 K 期初导入:上线切换时,如果现场已经有供应商放在仓库里的货,需要做期初库存导入。事务码 MIGO,移动类型 561,库存类型选 K,按工厂 + 存储地点逐行导入。导入数量必须和实物盘点结果一致,否则后面 MRKO 结算时金额会凭空多出来,财务那边非常不好收场。
MIGO > 其他 > 收货 > 其他 移动类型 = 561 库存类型 = 寄售(K) 工厂 = 1000 存储地点 = 0001 数量 = 实际盘点数量批量导入的办法:LSMW 录制 MIGO 561 K 的过账流程,或者用 BDC 调用 BAPI_GOODSMVT_CREATE,物料凭证的移动类型填 561,特殊库存标识填 K。用 BAPI 时注意必须传“COMMIT”参数,否则凭证不会落库。
3.2 领用过账 411 K:从寄售库存转自有库存的核心凭证
寄售库存的“消耗”在实际业务里不是直接出库,而是走 411 K 移动类型,把寄售库存转成自有非限制库存。这一步做完,SAP 才算把这批货“卖”给了你。
MIGO > 转移过账 > 物料到物料 移动类型 = 411 发出物料 = 100005678 发出库存类型 = K(寄售) 接收库存类型 = 空(自有库存) 数量 = 实际领用数量过账后系统自动生成的物料凭证里,能看到两个库存维度:发出方是寄售库存 K,接收方是非限制使用库存。这意味着从这一刻起,这批货的所有权才算转移到你公司。
发料过账不一定要走 MIGO。如果车间是通过 261 工单发料领用,那么需要先做 411 K 转自有库存,再按工单发料。但更高效的做法是配置 BAdI 或者在移动类型上做增强,让 261 发料时同时检查寄售库存,自动触发 411 K。这个增强属于 MM 模块的常规开发范围,前两年在 CSDN 上讨论过很多实现方案,但核心逻辑没变:通过 MB_MIGO_BADI 或者 MB_DOCUMENT_BADI 捕获移动类型 261,检查物料是否有寄售库存,如果有就自动先过账 411 K。
3.3 退料返回值:退货给供应商的移动类型与结算冲销
寄售库存退回供应商,用的移动类型是 122,这个操作和普通采购退货的本质区别在于:普通退货 122 会同时冲销收货的会计凭证,而寄售 122 不产生任何财务凭证,它只是减少寄售库存的数量。
MIGO > 采购订单退货 PO 号码 = 4500012345 移动类型 = 122 库存类型 = 寄售(K) 数量 = 退货数量(≤ 待退数量)假如这批货已经被 411 K 转过自有库存,就需要先做反向转移 412 K(冲销 411 K),把库存转回寄售,再做 122 退给供应商。顺序不能反,否则库存数量会先在自有库存里少一笔,又在寄售库存里退一笔,两边对不上。
特别注意:寄售退料的收货方是供应商,不经过发货过账,所以 WM 模块如果有仓库管理,必须同步做转储单,否则实物和账面的 WM 层面对不上。我这边的做法是上线前梳理一张“寄售库存退料检查清单”,逐项核对 WM、MM、财务三层的凭证状态。
4. 结算与对账:MRKO 的完整配置和实际结算参数
4.1 MRKO 结算原理:为什么寄售结算不经过 MIRO
寄售结算不走 MIRO,而是走 MRKO(供应商寄售结算)事务码。原因是 MIRO 基于采购订单的收货数量做发票校验,而寄售结算基于“消耗数量”做结算——消耗指的就是 411 K 过账的数量。
MRKO 的结算逻辑是:系统把所有已过账 411 K 但没有生成结算凭证的物料凭证汇总起来,按寄售信息记录里的价格计算应付金额,一次性生成结算凭证。这个凭证包含了两个关键内容:
- 物料凭证:记录消耗了多少寄售库存
- 会计凭证:生成应付账款,同时把“寄售消耗”科目记账
MRKO 界面有三个核心参数,我每次执行前都会确认:
MRKO 事务码 供应商 = 4000001234(指定供应商则只结算该供应商) 采购组织 = 1000(一定要选对,不同采购组织的寄售池是独立的) 结算日期 = 2024.12.31(系统生成该时点前所有未结算的消耗)执行后系统会列出所有符合结算范围的物料凭证行。勾选需要结算的行,点“结算”即可。
4.2 消耗金额的组成:价格来源与汇率转换逻辑
寄售结算金额不是简单地用“数量 × 当前采购价格”,而是取“过账日”对应的寄售信息记录条件类型的有效价格。这意味着如果供应商在月中间涨价了,那 411 K 过账之前和之后的消耗会走两个价格。
在系统里,MRKO 结算时按下列逻辑取价:
- 找到物料对应的寄售信息记录
- 取结算日期当天的有效条件记录(价格)
- 如果汇率变了,按结算日的汇率换算成本币金额
- 如果有税收条件,自动带出
这里我建议设置一个“价格日期检查”的定期任务。比如每周跑一次 ZP_CHECK_PRICE,对比当前生效价格和上周末生效价格,差异超过 3% 的物料列出清单,发给采购员去和供应商确认。否则供应商月底丢过来一个高得离谱的结算价,你根本不知道是哪天开始涨的。
4.3 余额与差异处理:GR/IR 余额监控和未结算消耗清单
寄售模式下的 GR/IR(货物收据/发票收据差异)科目余额,和普通采购不太一样。普通采购的 GR/IR 是收货和发票两条腿,寄售模式下没有发票环节,所以 GR/IR 只反映“已收货未消耗”的寄售库存金额。
我通常在月底执行以下操作来监控寄售平衡状态:
- 事务码 FBL3N,科目 = 191000(寄售 GR/IR),查看余额
- 事务码 ME2M,按采购订单查看已收货寄售数量和已消耗数量
- 事务码 MRKO 直接查询未结算寄售消耗
如果 GR/IR 余额持续增长,说明收货速度大于消耗速度,库存积压了。这时候要么通知采购减少寄售到货频次,要么和供应商谈把冗余库存退回。
常见做法是:在 MRKO 结算前,先跑一张 ZP_CONSIGNMENT_OPEN 报表,字段包括供应商、物料、消耗日期、消耗数量、价格、结算状态、差异标志。这张表出来后,让财务针对“差异标志”为 Y 的行人工复核。这能避免 MRKO 一次性把有问题的凭证也结了,后续冲销更麻烦。
5. 寄售流程的 5 个高频踩坑点:翻车场景与排错记录
5.1 MRKO 结算后金额为 0,但不报错
现象:MRKO 结算操作显示“已结算”,但生成的凭证金额是 0,供应商那边不认账。
原因:寄售信息记录里的条件类型“金额”字段为空,或者条件记录已被删除。系统在结算时不报错,默认按 0 金额生成凭证,这是 SAP 比较坑的一个点。
解决:执行 MRKO 前,先用 ME03 检查寄售信息记录的价格有效性,确认条件类型 PB00 / PBXX 有生效记录。如果发现历史条件记录被删,用 ME11 补一条有效期覆盖到结算日的新记录。对于已经生成 0 金额凭证的部分,用 MRKO 里的“撤销结算”功能先冲销,再补好价格重新结算。跨月的话就涉及会计凭证冲销权限,需要财务配合。
5.2 411 K 过账报错“没有可以过账的库存”
现象:MIGO 做 411 K 时,系统提示库存不足或没有可用的寄售库存。
原因:最常见的两种——一种是 MMBE 里该供应商的寄售库存已经为 0,但产线还在领料;另一种是物料不在寄售库存池里,而是在“供应商分包库存”(特殊库存类型 O)里,移动类型用错了。
解决:先跑 MMBE 看“特殊库存”字段,确认是 K 还是 O。如果是 K 为 0,就联系采购要补货到仓;如果是 O,要先用 541 把分包库存收货到自有库存,再走 411 K。我遇到过几次产线等着料、库存账面有数但就是过不了账,最后发现是物料存在不同的存储地点,加上 MIGO 默认的存储地点不对,把存储地点改成正确的就过了。
5.3 寄售 PO 收货时无法选择“寄售库存”标识
现象:MIGO 参照 PO 收货时,“库存类型”下拉框是灰的,只能选“非限制使用库存储”。
原因:PO 行的“项目类别”不是 K,或者订单里的“寄售”标识没有勾上。通常是因为 ME21N 建单时供应商的“寄售供应商”标识未激活,系统不让建 K 类行项目。
解决:回 XK02 检查供应商采购视图勾选状态,然后去 ME22N 修改 PO,把项目类别改成 K,或者干脆重做订单。如果供应商那边需要加寄售标识,改完主数据后还要重新维护寄售信息记录,不然 PO 仍然建不出来。
5.4 寄售库存参与了 MRP 运算,导致重复采购
现象:MRP 跑出来的采购建议把寄售库存的供应量重复计算,产线明明还有一大堆寄售库存,采购员又订了一批。
原因:物料主数据 MRP 2 视图里的“批量大小”和“安全库存”字段虽然有值,但真正的原因是物料主数据里没有设置“寄售库存不参与 MRP”。SAP 标准的 MRP 运行是包含寄售库存数量的,如果要排除,必须设置“MRP 组”里对应的“特殊获取类型”或“排除特殊库存”标识。
解决:MM02 > MRP 2 视图,把“寄售”字段设置成“2(排除)”,或者在 OPPQ1 配置 MRP 组时设置“不计算寄售库存”。改完后 MD04 查看物料供应/需求列表,确认寄售库存数量不再参与净需求计算。这个改动要谨慎,排除了寄售库存可能导致自有库存的安全库存阈值变高,建议先模拟 MRP 一次看结果。
5.5 寄售退料导致物料的“期间状态”异常
现象:124 / 122 退料后,MMBE 里的库存数量变了,但会计期间状态显示“上期间关闭”,财务月结无法继续。
原因:跨月退料时,SAP 的物料账期间和财务期间不一致。特别是物料分类账激活的情况下,退料过账如果落到上个月,系统会要求先冲销物料分类账的相关凭证。
解决:遇到跨月退料,优先在当月做 412 K 先转回寄售,再在当月做 122 退货,避免直接对上月已结算的寄售消耗做冲销。如果已经发生了,找 CO 顾问用 MR11 或者物料分类账调整功能处理差异。这个坑我在年终盘点时踩过一次,之后所有寄售退料必须经过计划员确认期间,而不是让仓管员自己 MIGO 乱退。
6. 寄售数据分析与批量提速:用 LSMW 和自定义报表减少月结时间
6.1 用 LSMW 批量维护寄售主数据,节省 80% 配置时间
供应商寄售上线时,几百颗物料的信息记录和货源清单手工维护几乎没有可行性。我一般用 LSMW 录屏批量导入,核心步骤:
* 录制 ME11 创建寄售信息记录事务 * 屏幕字段:信息记录类别、供应商、物料、采购组织 * 条件记录:条件类型 PBXX、金额、有效期 * 保存后系统生成记录,再录制 ME01 建货源清单实际操作时,我会先把 Excel 整理成固定格式,使用 LSMW 的“Batch Input Recording”方式,而不是“BDC”方式。录屏方式对字段顺序要求更严格,但是更稳定。关键字段映射如下:
| Excel 列 | LSMW 字段名 | 说明 |
|---|---|---|
| 供应商 | LIFNR | 必须是寄售供应商 |
| 物料 | MATNR | 必须勾了特殊采购类型 K |
| 采购组织 | EKORG | 不同采购组织需要单独维护 |
| 条件类型 | KONFT | 常用 PB00 / PBXX |
| 金额 | KONDT | 结算单价 |
| 有效期 | DATBI | 建议设置到 9999.12.31 |
跑批后,用 ME03 抽查 3-5 颗物料的价格记录是否完整。如果发现某些行没建上,优先查 Excel 里是不是有重复行或者空格字符,这俩是 LSMW 翻车的最高频原因。
6.2 自定义报表:追踪寄售库存周转与呆滞物料
标准报表 MMBE / MB51 只能看数量和凭证,但寄售库存的“价值”和“周转天数”需要自定义报表才能算清楚。我做的寄售库存分析报表一般按如下字段走:
SELECT KONKTIVSBESTAND.MATNR, 物料名称, 供应商, SUM(寄售库存数量) AS QTY, SUM(寄售库存数量 * 当前条件记录金额) AS VALUE, 平均日消耗量, (寄售库存数量 / 平均日消耗量) AS COVERAGE_DAYS FROM 寄售库存表 JOIN 信息记录条件表 ON 物料 = 物料 WHERE 工厂 = 指定工厂 GROUP BY 物料, 供应商 ORDER BY COVERAGE_DAYS ASC这个报表的价值在于:它把“库存数量”和“消耗速度”关联起来,能够直接暴露哪些寄售物料已经在仓库躺了三个月以上。我在项目里给采购团队定了规则:覆盖天数超过 45 天的物料,必须发邮件给供应商确认退货或延迟发货;覆盖天数低于 5 天的物料,自动触发催货清单。
6.3 寄售库存的月度循环盘点与差异处理机制
寄售库存的盘点不能和自有库存混在一起做。我强烈建议给寄售库存单独设置一个盘点的存储地点或盘点范围,比如物理上同一个仓,但盘点范围分两个,用特殊库存标识 K 区分。
盘点差异处理逻辑如下:
- 实盘数量 > 账面寄售数量:先做 MIGO 561 K 补录差异数量,再做 411 K 转自有
- 实盘数量 < 账面寄售数量:先做 122 退货冲减,再做 412 K 冲销自有部分
- 差异超过 5%:必须停止 MRKO 结算,先查清楚原因再处理
每月结账日前两天,我会把寄售库存的“未结算消耗清单”发给财务。财务据此在 MRKO 里戳结算,之后核对总账科目的寄售 GR/IR 余额是不是归零。如果零不了,就按差异金额去查具体凭证。这套机制跑三个周期后,月底对账基本就是顺手的事。
最后说个个人建议:别只看 MMBE 的余额就判断寄售库存健康,一定要看覆盖天数和周转率这两个衍生指标。库存数量正常但消耗停滞,恰恰意味着资金被供应商的货占着。做寄售项目这几年,最能体现顾问水平的时刻其实不在上线当天,而在三个月后仓库和财务不再因为库存差异互相甩锅的时候。希望这些落地细节帮到你。
本文还有配套的精品资源,点击获取