简介:SAP MM 模块中供应商寄售流程的配置与操作要点整理,面向已具备采购、库存基础、希望打通寄售特殊采购业务的 SAP 顾问与关键用户,帮助理清从主数据到结算的完整链路。文档围绕采购类型 F、特殊采购类 10、寄售信息记录与项目类别 K 等关键标识展开,覆盖 XK01、ME11、OMEV、ME51N、MIGO、MB1B、MRKO 等事务代码,并针对 101 收料无财务凭证、411K 转非限制库存、412K 冲销后再结算等易错点给出提示。压缩包共 1 个 doc 文件,约 123KB,篇幅紧凑,适合作为流程速查手册或培训讲义底稿。已有 570 人学习,可帮助读者快速定位寄售业务的前台操作与后台配置衔接处,减少因信息记录缺失、消息管理设置不当导致的报错与结算阻碍。
1. 仓库里有货、账上没有钱:SAP MM 供应商寄售到底在管什么
仓库里堆着一批料,采购订单三个月前就开了,发票一张没有,财务账上也没这笔存货。第一次碰到这场景的人多半以为系统出问题了。这是 SAP MM 供应商寄售的标准形态:货放在你的仓库里,所有权还在供应商手上,101 收货只写数量不写金额,真正领用(411 K 转移)那一刻才产生会计凭证,月末用 MRKO 统一结算。它解决的问题很实在:原材料批量大、消耗节奏稳定、供应商愿意把货前置到厂内,你不用为堆在货架上的安全库存提前占用资金。反过来,用量零散、供应商不愿意备货、财务要求票货同期的场景,硬套寄售只会把结账做得更乱。下面按我自己配过的一套路子,从主数据四道闸门讲到 MRKO 结算,把每一步的参数和容易出错的地方都讲清楚。
2. 主数据四道闸门:MRP2 的 F/10、XK01、ME11 与 OMEV
寄售这条链路能不能跑通,八成取决于动手做单据之前主数据有没有配全。我见过太多项目在 MIGO 界面上反复试,最后发现是物料主数据里特殊采购类没填。这四道闸门有先后依赖:物料决定单据长什么样,供应商决定结算对象,信息记录决定价格和税,后台开关决定系统要不要强制校验信息记录。
2.1 物料主数据 MRP2:采购类型 F 加特殊采购类 10
进 MM01/MM02 的 MRP2 视图,找到“采购”分组,两个字段必须成对出现:采购类型填F(外部采购),特殊采购类填10(寄售)。单独填 F 只是告诉系统这个物料要外购,加上 10 之后,系统才在收货、库存、MRP 三个环节都按寄售逻辑处理。
| 字段 | 值 | 影响的环节 |
|---|---|---|
| 采购类型 | F | 允许建采购申请/采购订单,参与 MRP 运算 |
| 特殊采购类 | 10 | MIGO 收货自动带出特殊库存标识 K;库存进入 MSKU 而非 MARD;MRP 不把寄售库存算作可用库存 |
| 采购组 | 按组织实际 | 决定采购订单的默认采购组 |
| 物料类型 | ROH 等 | 决定评估类和会计科目 |
特殊采购类 10 有个反直觉的效果经常被当成 bug 报上来:仓库里明明压着几百吨寄售料,MRP 还是继续跑出采购申请。这不是错,寄售库存的所有权不在你这里,MRP 的可用量计算天然要把它排除。如果你希望它参与运算,那说明业务本质不是寄售,应该走普通采购或者带寄售标识的普通库存。
改这个字段要小心存量。一个物料从空改成 10,如果已经有非限制库存挂着,系统不会自动把这些库存迁到寄售库存下,后续 MIGO 收货和 411 转移都会出现数量对不上的情况。常见做法是新建一个物料号专用于寄售,或者先把存量消耗干净再改。
2.2 ME11 寄售信息记录:价格、税码、有效期三件套
用 XK01 把供应商建出来之后(寄售供应商和普通供应商在主数据上没有本质差异,采购视图、公司代码视图该有的都要有,付款条件、统驭科目一个不能少,否则 MRKO 结算时会卡在供应商主数据上),接着进 ME11 建信息记录。
关键在第一步:信息记录类型必须选“寄售”(Consignment)。这一步选错,后面 411 过账时系统找不到寄售价格,物料凭证能过但金额是 0,月末 MRKO 出来一张金额为零的结算单,排查起来很费劲。
输入供应商、物料、采购组织,回车后填工厂层级的数据。要维护的字段不多,但每一个都影响后续:
| 字段 | 建议值 | 说明 |
|---|---|---|
| 净价 | 含税前的采购单价 | 411 K 转移和 MRKO 结算都取这个价 |
| 货币 | 与公司代码本位币一致或按合同 | 跨币种时注意汇率日期取过账日期 |
| 价格单位 | 与采购订单单位对齐 | 单位错位会导致金额差几个数量级 |
| 税码 | 必填,如 J1(进项税) | MRKO 结算时直接取这里的税码,缺了会报税码缺失 |
| 有效期 | 覆盖整个结算周期 | 过期后 411 就找不到价格 |
| 最小订货量/计划交货时间 | 按合同 | 影响 MRP 和采购申请的建议值 |
原文那句“信息记录一定要先寄售”说的就是这个类型选择。很多人习惯性地点默认的“标准”类型,价格填得漂漂亮亮,结果 411 一过账就提示无价值。改的办法是 ME12 进去看类型,类型建错了只能新建一条寄售类型的记录,历史单据上的价格不会追溯更新。
信息记录的层级也要注意。建在采购组织层级还是工厂层级,决定了哪些工厂能用。跨工厂共用寄售料时,我一般会建到工厂层级,避免 A 工厂改了价格 B 工厂跟着变。
2.3 OMEV 开关:为什么必须“用信息记录激活寄售”
后台配置路径是 SPRO → 物料管理 → 采购 → 寄售 → 使用信息记录激活寄售,事务码 OMEV。这个开关本质上是一个强制策略:打开之后,系统在处理寄售收货和 411 转移时,必须找到一条有效的、类型为寄售的信息记录,否则拒绝按有价方式过账。
不开这个开关会怎样?业务流程能走完,101 能收、411 能转,但价格全靠信息记录碰运气。等到 MRKO 结算时才发现某几笔消耗没有价格来源,要么金额为 0,要么直接报错。寄售最怕的就是这种“跑得通但算不清”的状态。
操作步骤很短:进 OMEV,勾选激活标识,保存。但有两件事必须提前说清楚。第一,这是全局开关,激活后影响系统里所有工厂的所有寄售业务,存量流程如果有历史遗留的无信息记录单据,会立刻暴露出来。第二,激活不会补历史数据,已经发生的无价过账需要单独处理,常见做法是补建信息记录后用 MRKO 手工调整或者做后续借记凭证。
我一般会在项目上线前一周就打开这个开关,让所有寄售业务先在测试环境里跑一轮完整的 101 → 411 → MRKO,把缺信息记录、缺税码的问题提前逼出来,而不是等月结当天才发现。
3. 单据链路:K 类项目从 ME51N 走到 101 收料为什么没有 FI 凭证
主数据齐了,接下来是单据。这条链路和普通采购最大的差别不在操作界面上,而在“钱在哪一步进账”。普通采购是收货即入账,寄售是消耗才入账。理解这一点,后面所有“为什么没有会计凭证”“为什么 MIRO 做不了”的疑问都能自己解释。
3.1 ME51N 采购申请:项目类别 K 是寄售的身份证
ME51N 建申请,输入物料、数量、交货日期、工厂、库存地点,回车后到行项目的“采购凭证”页签看项目类别。物料主数据配了特殊采购类 10 的话,这里会自动带出K。
K这个项目类别在 SAP 里的含义就是寄售。它带来一串连带效果:不能做账户分配(没有成本中心、没有内部订单),价格字段不可维护,收货时强制带特殊库存标识 K。如果这里带出来的是空或者标准,别在申请界面硬改,回头查物料主数据的 MRP2 视图,一定是特殊采购类没填或者填了别的值。
申请本身不产生任何 FI 影响,它只是需求载体。真正需要注意的是数量单位——寄售料经常出现采购单位(比如 KG)和基本计量单位(比如 G)不一致的情况,ME51N 里如果单位选错,101 收货和 411 转移的数量会差三个数量级,MMBE 上看起来库存暴增,对账时非常难查。
3.2 ME21N 转采购订单:价格从信息记录来,收货才校验
申请转订单可以走 ME57 集中转换,也可以 ME21N 参照申请创建。订单类型用标准的 NB 就行,行项目类别同样是 K,供应商填寄售供应商。
这里有个和普通采购相反的细节:寄售采购订单在创建时,系统不强制要求存在信息记录。原文里写得很清楚,“寄售的采购订单开立时可以没有信息记录”,因为价格真正生效的时点不在下单,而在收货和转移。普通采购是开 PO 就要有信息记录,寄售是收货时才校验。
这个差异会让习惯普通流程的人误判。看到 PO 上价格为 0 就以为配错了,其实只要 101 收货时信息记录存在且有效,价格会从信息记录带出来。但反过来说,如果信息记录一直没建,PO 也能一路开到收货,问题会推迟到 411 那一步才爆出来。
我的习惯是在 PO 保存前用 ME13 查一眼信息记录的有效期和工厂层级,顺手确认税码不是空的。这一步花三十秒,能省掉月末半天的排查。
3.3 MIGO 101 收料:只有物料凭证、没有会计凭证
收货用 MIGO,操作序列选“收货”→ 参照“采购订单”→ 输入 PO 号 → 勾选行项目 → 检查三件事:移动类型是 101,特殊库存是K,供应商是寄售供应商。三个都对了再过账。
过账结果:生成物料凭证,不生成 FI 凭证。这是寄售最核心的特征,也是最容易被财务质疑的地方。原因在于所有权——这批货还不属于公司资产,不能进存货科目,自然没有借贷分录。系统只在数量层面记一笔,落在特殊库存表 MSKU 里,同时更新采购订单历史。
如果这时候系统弹出了 FI 凭证,基本可以断定特殊库存标识没带 K,货被当成普通库存收进来了。处理办法不是冲销重来那么简单,需要先 MBST 冲销这笔错误的收货,再回头查 PO 行项目类别和物料主数据,改对之后重新收货。已经误入普通库存的部分,还要做 411 之外的转移或者盘点调整把它清出去。
101 之后可以用 MB51 看物料凭证,用 ME23N 看订单历史里的收货数量。数量对上了,再往下走 411。
3.4 MMBE 看账:寄售库存挂在“供应商寄售”下面
MMBE 的显示是分层的:工厂 → 库存地点 → 特殊库存 → 供应商寄售 → 具体供应商。101 收货成功后,数量应该出现在最底层的供应商节点下,而不是“非限制使用库存”那一行。
| 事务码 | 看什么 | 典型用途 |
|---|---|---|
| MMBE | 库存总览,含特殊库存层级 | 确认 101 是否收进了 K 库存 |
| MB52 | 按工厂/库存地点批量看库存金额 | 发现寄售库存金额为 0 是正常的 |
| MB51 | 物料凭证清单 | 查 101/411/412 的历史过账 |
| ME23N | 采购订单历史 | 看订单已收数量和是否已结算 |
MMBE 里看不到寄售库存,无非三种情况:工厂或库存地点选错了,101 收货时特殊库存没带 K,或者货已经被 411 转走了。按这个顺序排查,比在 MIGO 界面反复试要快得多。
4. 411 K 与 412 K:把寄售库存搬进自有库存,再留一颗后悔药
101 只是把货收进来,真正的业务发生在消耗那一刻。411 K 是整个寄售流程里唯一一个“钱动起来”的动作,也是财务最关心的节点。这一步的参数错一个,后面 MRKO 结算和冲销都会跟着乱。
4.1 MB1B 411:一次必须带出会计凭证的转移
用 MB1B 做转移过账,移动类型411,特殊库存标识K,输入供应商、物料、数量、接收的工厂和库存地点。过账后系统做两件事:数量上把寄售库存减掉、把非限制使用库存加上;金额上生成一张会计凭证,借记存货科目,贷记寄售清账科目。
这张 FI 凭证就是“我用了供应商的货、欠他一笔钱”的账面体现。寄售清账科目通常配成一个特殊的 GR/IR 类过渡科目,它的余额在月末应该和未结算的寄售消耗金额对得上。如果这个科目余额长期挂着一堆不清的数,要么是 411 做了没结算,要么是结算了没对上期间。
411 的参数里最容易被忽略的是接收库存地点。不填的话系统会默认到物料主数据的默认库存地点,实际业务里寄售料从收货到上线往往要挪库位,填错位置会导致 MMBE 上数量看着对、实际盘点对不上。
还有一个隐含前提:411 过账时必须有有效的寄售信息记录。这和 101 不一样,101 没有信息记录也能过(只是没价格),411 没有就会陷入无价值过账的坑,下一节细说。
4.2 “Pipeline/consignment movement posted without value”的成因
这条提示是寄售流程里出现频率最高的一条。现象是:411 过账成功,物料凭证生成了,但金额为 0,或者 FI 凭证里借贷都是 0;等到 MRKO 结算,这批消耗算不出钱。
原因几乎只有一个:系统在过账时点找不到可用的寄售价格。拆开来看有五种常见成因:
- 信息记录类型不是寄售,而是标准或者其他类型;
- 信息记录建在采购组织层级,但过账工厂不在覆盖范围内;
- 信息记录的有效期已经过了,过账日期落在有效期之外;
- 净价字段为空或者为 0;
- OMEV 开关没打开,系统没做强制校验,于是静默地按无价值过了。
排查顺序建议从 ME13 开始,先看类型,再看工厂和有效期,最后看价格。确认信息记录没问题之后,处理已经过账的无价值凭证:数量上要做 412 K 退回去,再重新做一次 411,不能直接改物料凭证。
有个细节值得记一下:这条提示在某些系统里是警告(W),过账照常进行但金额为 0;在另一些配置下是错误(E),直接拦住。警告比错误更危险,因为它不拦你,问题会一路带到结算环节。
4.3 412 K 冲销:411 的反向操作与它的边界
412 K 是 411 K 的反向移动,把已经转入自有库存的寄售消耗退回寄售库存。数量反向、金额反向,会计凭证也是反向的。
原文里有一条硬约束:“不能直接冲销凭证,必须将 411 K 通过 412 K 冲销之后再做发票校验。”这条我踩过,血泪经验。用 MBST 直接冲销 411 的物料凭证,数量账能退回去,但金额账的处理和寄售清账科目的关联会断掉,后续 MRKO 按期间取数时会出现数量与金额不匹配,表现为结算单上的数量和 MB51 上查到的消耗数量对不上。
正确顺序是:发现 411 做错了 → 用 MB1B 做 412 K 退回寄售库存 → 确认 MMBE 上数量回到供应商寄售节点 → 修正信息记录或主数据 → 重新做 411 → 再进 MRKO 结算。412 K 同样要求物料凭证的过账期间是打开的,跨月冲销要先确认 MM 期间和 FI 期间。
412 K 也不是万能的。如果这批消耗已经在 MRKO 里结算过并生成了发票,先做 412 会导致寄售清账科目出现贷方余额,需要配合后续的贷项凭证或者调整凭证处理。所以我的习惯是:411 做完当天就核对一遍 MB51,别等到月末结算完再回头找问题。
5. MRKO 结算与五条翻车记录:寄售发票校验为什么绕不开它
寄售的发票校验和普通采购完全是两套逻辑。普通采购用 MIRO,基于收货做三单匹配;寄售因为 101 没有 GR/IR,MIRO 根本对不上,只能用 MRKO 按消耗结算。这一步是整条链路的收口,也是出错最集中的地方。
5.1 MRKO 的取数逻辑:它到底按什么算钱
MRKO 的执行界面字段不多:公司代码、供应商、结算期间、过账日期,加一个“测试运行”勾选框。它背后的取数逻辑是:在指定期间内,找出该供应商所有已过账的 411 K 消耗,按当时信息记录里的净价和税码计算金额,汇总生成一张寄售结算发票。
生成的凭证类型通常是寄售结算专用的发票凭证,会计上借记寄售清账科目(把 411 时挂的负债冲掉),贷记应付账款和进项税。这张凭证可以用 MIR4/MIR6 查看,和普通发票一样参与付款流程。
几个必须提前确认的前置条件:
| 条件 | 检查方式 | 不满足的后果 |
|---|---|---|
| 信息记录含税码 | ME13 看条件页签 | MRKO 报税码缺失,无法过账 |
| MM 期间打开 | MMRV/OB52 | 报期间未打开 |
| FI 期间打开 | OB52 | 同上 |
| 供应商主数据完整 | XK03 看公司代码视图 | 无法生成应付 |
| 411 已正确过账 | MB51 查移动类型 | 结算金额为 0 或数量不符 |
执行时先勾“测试运行”跑一遍,看日志里的数量、金额、税额对不对,确认无误再取消勾选正式执行。测试运行不产生任何凭证,这一步不要省。我见过直接正式执行、生成了一堆错误发票再逐张冲销的情况,清理成本远超跑一次模拟。
MRKO 的粒度是“供应商 + 公司代码 + 期间”,一次只能结算一个供应商的一个期间。供应商多的时候要批量跑,可以配合后台作业,但作业跑之前务必确认所有供应商的信息记录税码都齐了,否则作业日志里一堆报错,还得逐个回头补。
5.2 五条翻车记录:现象、原因、解决
第一条:MRKO 执行时提示消息,无法继续,日志里只有一条消息号。
现象是结算跑不下去,报错内容和业务数据看起来毫无关系。原因多半出在消息管理上——这条消息被配置成了错误级别(E),实际上只是一个提示。原文里也提到过这是消息管理的问题。
解决方式是先记下消息号和消息类,到消息控制配置里定位(不同版本入口在 SPRO → 物料管理 → 采购 → 消息,或者直接用事务码按消息类查),把该消息从 E 降为 W,保存后重新执行 MRKO。改配置前要确认这条消息确实只是提示性质的,别把真正的业务校验给关掉了。
第二条:411 过账成功但金额为零,MRKO 结算金额也是零。
现象是物料凭证有、会计凭证的借贷金额都是 0。原因是没有找到有效的寄售信息记录,回到 4.2 节那五种成因逐个排查。解决方式是补建或修正信息记录,然后用 412 K 退回、重新 411 过账。
第三条:MRKO 报税码缺失。
现象是测试运行日志里每一行都提示税码为空。原因是 ME11 建信息记录时只填了净价,税码字段留空了。解决方式是 ME12 补上税码,注意税码要符合该供应商所在国家的税务规则,补完之后重新跑 MRKO。已经结算过的期间不能直接补,需要走后续调整。
第四条:直接 MBST 冲销 411 之后,MRKO 数量和 MB51 对不上。
现象是冲销之后库存数量回去了,但结算单上的消耗数量比实际多或者少。原因是绕过了 412 K,寄售清账科目的金额链断了。解决方式是把 MBST 的冲销结果再反向处理,改走 412 K,然后重新核对 MSEG 里 411 和 412 的净额。
第五条:MMBE 上看不到寄售库存,但 MIGO 显示收货成功。
现象是物料凭证生成了,库存却查不到。原因通常是 101 时特殊库存标识没带 K,货进了普通非限制库存;或者 MMBE 查询时工厂、库存地点选错。解决方式是先用 MB51 看物料凭证行项目里的特殊库存字段,确认是 K 还是空,是空的话按 3.3 节的办法冲销重收。
6. 结账前跑一遍:用 MSEG 汇总和 MRKO 模拟把寄售账对平
寄售的对账核心是一句话:本期 411 K 的净消耗数量,应该等于 MRKO 结算的数量。这两个数对不上,寄售清账科目的余额就一定不平。我习惯在每月结账前跑一段查询,把 411 和 412 按物料汇总,再和 MRKO 测试运行的日志比对。
" 按物料汇总本期 411/412 寄售移动的净数量 SELECT mseg~matnr, mseg~werks, mseg~bwart, mseg~meins, SUM( mseg~menge ) AS menge FROM mseg WHERE mseg~bwart IN ('411', '412') AND mseg~sobkz = 'K' " 只看供应商寄售特殊库存 AND mseg~budat IN @s_budat " 过账日期区间,一般取本期 GROUP BY mseg~matnr, mseg~werks, mseg~bwart, mseg~meins INTO TABLE @DATA(gt_sum).这段查询按物料、工厂、移动类型分组,把 411 和 412 的数量分别汇总。判断逻辑很简单:同一物料同一工厂下,411 的数量减去 412 的数量,就是本期真正被消耗掉的寄售数量。拿这个净额去对 MRKO 测试运行日志里的结算数量,差额就是问题所在。
参数上要注意s_budat取的是过账日期而不是凭证日期,跨月补做的凭证会落在补做那个期间,对账时容易漏。另外sobkz = 'K'这个条件不能省,去掉之后会把销售订单库存、项目库存的移动一起捞进来。
差额出现后的排查路径:先看是不是有 411 过了但信息记录失效导致金额为 0,再看是不是有 412 在本期做了但对应的 411 在上期,最后看 MRKO 的结算期间是不是选错了。寄售清账科目的余额如果能和未结算的 411 净额对上,这条链路基本就是干净的。
从那以后我每次上寄售相关的项目,都会要求关键用户在月结前自己跑一遍这段查询,把 411/412 的净额和 MRKO 模拟结果对一遍再点正式执行,而不是等财务发现科目余额不对再回头翻凭证。希望帮到你。
本文还有配套的精品资源,点击获取