简介:本资源是一份面向SAP MM模块初学者与实施顾问的供应商寄售全流程实操指南,聚焦采购与库存管理中的寄售业务场景,解决企业如何在SAP系统中准确配置并执行寄售采购、收料、库存转移及发票结算等核心问题。文档以结构化步骤呈现,涵盖MRP2视图设置(采购类型F+特殊采购类10)、XK01建供应商、ME11维护寄售信息记录、OMEV后台激活、ME51N采购申请(项目类别K)、MIGO 101收料、MB1B 411K转非限制库存、MMBE查寄售库存、MRKO专项发票校验及412K冲销排错等关键操作,附带典型报错分析与规避方案。资源为1个123KB的Word文档(.doc),内容精炼、术语规范、事务代码标注清晰,便于随时查阅与现场对照。目前已有559人学习下载,适合需快速掌握SAP寄售实务要点、规避配置陷阱、提升单据处理准确性的MM功能顾问与企业内训人员。
1. SAP供应商寄售不是“先收货再付款”的简化版,而是整套特殊库存+权责分离的财务闭环:它让物料在你仓库里躺半年不进成本、不触发应付、不占资金流,但一挪动位置(411K)、一结算(MRKO),系统自动补全所有会计凭证和税务逻辑——专治制造业备料冗余、VMI协同混乱、采购与财务对账撕扯这三类高频翻车现场。如果你正在落地SAP MM模块的寄售场景,或正被“寄售库存查得到但结不了算”“411K冲不掉”“MRKO报错Pipeline movement posted without value”反复暴击,这份笔记就是你今天该存下来的血泪操作手册。它不讲SAP教科书定义,只拆真实产线环境里能跑通的11步链路、每个事务码背后的真实校验逻辑、以及我踩过三次才摸清的四个隐藏断点。
2. 寄售不是配置开关,是主数据+信息记录+移动类型三者强耦合的权责锚定:从MRP2视图到OMEV激活的底层逻辑
寄售在SAP里从来不是“开个功能就生效”的事。它的本质,是把一批物理上在你仓库、法律上仍属供应商的物料,用系统字段打上“所有权未转移”的标签,并确保所有后续移动(收、转、结)都按这个标签走独立凭证流。这就决定了:主数据是权责起点,信息记录是定价依据,OMEV是路由开关——三者缺一不可,且顺序不能乱。
2.1 MRP2视图中采购类型F + 特殊采购类10:不是随便填的两个字段,而是触发寄售凭证链的“基因编码”
在物料主数据(MM01/MM02)的MRP2视图中,必须同时设置:
采购类型(Procurement Type) = F
表示该物料由外部供应商提供,且采购方式为寄售(Consignment)。注意:F ≠ 外购(E),E是标准采购,F是寄售专用标识。若此处填E,后续所有寄售移动类型(如411K)将直接报错“移动类型不适用于此采购类型”。特殊采购类(Special Procurement Type) = 10
这是SAP预置的寄售专用代码。它绑定了一整套后台逻辑:包括库存分类(特殊库存K)、凭证类型(KB)、会计科目映射(如寄售负债科目)、甚至MRKO结算时的税务处理路径。切记:10不是可选值,是硬编码;改用11(Subcontracting)或50(Stock Transfer)会导致MB1B 411K失败。
提示:修改MRP2视图后,必须执行物料主数据的“保存并激活”(不是仅保存)。常见翻车点:改完直接退出,未点激活按钮,导致后续ME11创建信息记录时提示“特殊采购类未维护”。
2.2 信息记录(Info Record)必须带寄售标识:ME11里那个不起眼的“Consignment”复选框,决定411K能否过账
寄售信息记录不是普通采购价目表。它承载着两个核心责任:一是定义寄售单价(用于MRKO结算),二是作为411K移动的强制校验凭证。创建路径:ME11 → 输入物料号、供应商号 → 在“General Data”页签底部,务必勾选“Consignment”复选框(默认不勾选!)。
关键参数说明:
- 有效起始日期(Valid From):必须早于你计划做411K的日期,否则MRKO结算时提示“信息记录无效”。
- 价格单位(Price Unit)与净价(Net Price):这是MRKO生成应付凭证的唯一依据。注意:此处价格不含税,税务信息需在“Tax Data”页签单独维护(见2.3节)。
- 采购组织(Purchasing Org)与工厂(Plant):必须与后续采购申请(ME51N)和411K移动的工厂严格一致。跨工厂信息记录无法用于本厂411K。
# 验证信息记录是否正确创建(命令行不可用,需在GUI中操作) # 步骤:ME12 → 输入物料+供应商 → 查看“Consignment”是否勾选 → 切换到“Tax Data”页签 → 确认税务代码(如J1)已维护逻辑说明:SAP在执行MB1B 411K时,会实时校验:当前工厂下,该物料+该供应商是否存在已激活且勾选Consignment的信息记录。若不存在,直接报错“Pipeline/consignment movement posted without value”,而非提示“信息记录未找到”。这是新手最常误解的报错——以为缺信息记录,实则是缺“带Consignment标识”的信息记录。
2.3 OMEV后台配置:不是“启用寄售”,而是告诉系统“哪些采购组织允许走寄售结算流”
OMEV(SPRO → Materials Management → Purchasing → Define Consignment Control)不是全局开关,而是按采购组织(Purchasing Organization)粒度配置的结算控制表。它定义了:当某采购组织下发生寄售结算(MRKO)时,系统应使用哪套会计科目、是否启用税务校验、是否允许部分结算。
配置要点:
- 采购组织(Purchasing Org):必须与ME11中信息记录的采购组织完全一致。
- 寄售负债科目(Consignment Liability Account):这是最关键的字段。它决定了411K移动时,系统自动贷记的应付账款科目(如2202010000)。若此处为空或科目无效,411K过账成功但无会计凭证,MRKO结算时因找不到负债科目而失败。
- 税务代码(Tax Code):此处填写的税务代码(如J1),将强制应用于MRKO生成的发票凭证。若留空,MRKO会报错“Tax code missing for consignment settlement”。
注意:OMEV配置后无需激活,保存即生效。但修改后建议用MRKO测试一笔小额结算,验证凭证是否生成正确。
2.4 为什么寄售采购订单(PO)可以没有信息记录?——因为PO只管“收货权”,不管“结算权”
这是寄售最反直觉的设计点。标准采购(E类)要求PO必须关联信息记录(P-info),否则无法创建;但寄售PO(项目类别K)允许在ME21N中不输入信息记录直接保存。原因在于:寄售PO的本质是“收货授权”,而非“定价协议”。它的唯一作用,是让MIGO 101收货时,系统知道这批货属于哪个供应商、应计入哪个特殊库存(K)。真正的定价与结算依据,始终绑定在信息记录(ME11)上,而非PO本身。
所以,当你看到“寄售PO没信息记录也能收货”,别慌——这是设计使然。但必须清醒:没有信息记录,你永远无法做411K和MRKO。PO只是通行证,信息记录才是结算身份证。
3. 从采购申请到收货:ME51N→ME21N→MIGO 101的寄售专属链路与凭证静默逻辑
寄售流程的前端操作(申请→订单→收货)看似与标准采购相似,但每个环节的字段选择、系统校验、凭证生成逻辑都截然不同。这里没有“差不多就行”,一个选项错,后面三步全卡死。
3.1 ME51N采购申请:项目类别K不是可选项,是寄售的“入场券”
在创建采购申请(ME51N)时,物料行项目的“项目类别(Item Category)”必须手动改为K(Consignment)。这是系统识别该申请为寄售用途的唯一标识。
为什么不能用标准类别(如0)?
因为标准类别申请转PO时,系统默认走E类采购流,后续MIGO 101收货会尝试生成财务凭证(FI),而寄售收货必须“零凭证”。只有K类申请,才能确保转PO后,PO的项目类别自动继承为K,从而触发寄售收货逻辑。如何修改项目类别?
在ME51N行项目明细中,点击“Item Details” → “Item Category”字段 → 下拉选择“K”。若下拉列表无K选项,说明该采购组织未在OMEV中配置寄售控制,需先回2.3节配置。
3.2 ME21N采购订单:K类PO的三个隐藏校验点
将ME51N申请转为PO(ME21N)时,系统会自动将项目类别设为K。此时需重点检查三项:
- 采购组织(Purchasing Org)与工厂(Plant):必须与ME11信息记录中的采购组织、工厂完全一致。若不一致,后续411K将因“信息记录不匹配”失败。
- 交货日期(Delivery Date):必须晚于信息记录的有效起始日期(Valid From)。否则MRKO结算时提示“信息记录在交货日期无效”。
- 无价格字段(Net Price):K类PO的行项目中,“Net Price”字段为灰色不可编辑。这是正常现象——寄售价格只取自信息记录,PO本身不存储价格。
提示:K类PO创建后,可在ME23N中查看其抬头文本(Header Text)→ “Consignment”字段应显示为“X”,表示该PO已被标记为寄售订单。
3.3 MIGO 101收货:寄售库存增加的“静默时刻”,也是后续所有问题的源头
执行MIGO 101收货时,寄售物料进入特殊库存(Special Stock K),但系统不生成任何财务凭证(FI Document)。这是寄售的核心特征:货在你库,钱未付,账不记。
操作路径:MIGO → 选择“Goods Receipt” → “Purchase Order” → 输入PO号 → 执行 → 在“Items”页签确认:
- 移动类型(Movement Type) = 101(固定,不可改)
- 特殊库存(Special Stock) = K(系统自动带出,不可改)
- 接收方(Recipient) = 工厂代码(如1000)
关键现象验证:
- 过账成功后,查看物料凭证(MB03)→ 凭证类型为“KB”(寄售收货),会计凭证栏为空。
- 使用MMBE查询该物料库存 → “Special Stock K”数量增加,“Unrestricted Use”数量不变。
# Python脚本模拟验证MIGO 101结果(需连接SAP RFC,此处为伪代码逻辑) from pyrfc import Connection def check_consignment_stock(material, plant): conn = Connection(ashost='xxx', sysnr='00', client='100', user='xxx', passwd='xxx') result = conn.call('BAPI_INVENTORY_GET_DETAIL', MATERIALNUMBER=material, PLANT=plant, STOCKTYPE='K') # 查询特殊库存K return result['STOCK_DATA']['UNRESTRICTED_STOCK'] # 应返回0,因K库存不计入unrestricted # 实际生产中,我们用此脚本每日巡检:若某物料K库存为0但MMBE显示有数,说明MIGO 101未真正过账到K库存逻辑说明:MIGO 101是寄售流程的“分水岭”。它成功,意味着货物已合法进入寄售池;它失败,后续所有步骤(411K、MRKO)均无意义。因此,每次MIGO 101后,必须用MMBE和MB03双重验证:MMBE看库存数,MB03看凭证类型是否为KB且无FI。
4. 寄售库存转移与结算:MB1B 411K与MRKO的强依赖链及四大避坑指南
寄售流程的成败,90%取决于411K移动和MRKO结算这两个动作。它们不是独立操作,而是一条强依赖链:411K失败,MRKO无从谈起;411K成功但凭证错误,MRKO会生成错误的应付凭证。下面直击最痛的四个坑,每一条都来自产线真实报错日志。
4.1 避坑:411K移动报错“Pipeline/consignment movement posted without value”——不是缺信息记录,是缺“带税务信息的Consignment信息记录”
现象:在MB1B中输入物料、工厂、移动类型411、特殊库存K,执行后弹出错误消息:“Pipeline/consignment movement posted without value”。
原因:系统在过账411K前,会校验两件事:
① 当前工厂下,该物料+供应商是否存在勾选Consignment的信息记录(ME12可查);
② 该信息记录的“Tax Data”页签中,税务代码(Tax Code)是否已维护。
缺①,报错“Info record not found”;缺②,才报这个“without value”。
解决:
- 进入ME12,查该物料+供应商的信息记录;
- 切换到“Tax Data”页签 → 检查“Tax Code”字段是否为空;
- 若为空,输入正确税务代码(如J1),保存;
- 返回MB1B重试411K。
提示:税务代码必须与OMEV配置中“Tax Code”字段一致,否则MRKO结算时仍会报错。
4.2 避坑:411K过账成功但无会计凭证——OMEV中寄售负债科目未配置或科目无效
现象:MB1B 411K执行成功,MMBE中“Special Stock K”减少、“Unrestricted Use”增加,但MB03查看物料凭证,会计凭证栏为空,或凭证中贷方科目非预期的寄售负债科目(如误入普通应付)。
原因:OMEV配置中,“Consignment Liability Account”字段为空、或指向一个已删除/禁用的总账科目。
解决:
- 进入OMEV → 找到对应采购组织 → 检查“Consignment Liability Account”字段;
- 若为空,输入正确的寄售负债科目(如2202010000);
- 若科目存在但状态为“Blocked”,需在FS00中解除科目冻结;
- 重新执行411K(无需冲销原凭证,新凭证会覆盖)。
4.3 避坑:MRKO结算报错“Message no. M7 086: No item with account assignment exists”——信息记录价格单位与PO交货单位不一致
现象:MRKO中输入采购组织、供应商、期间,执行结算时,系统提示“M7 086”,结算失败。
原因:信息记录(ME11)中“Price Unit”(如100 EA)与采购订单(ME23N)中该行项目的“Order Unit”(如1 EA)不一致。SAP要求二者必须相同,否则无法计算结算金额。
解决:
- 进入ME23N,查看该PO行项目的“Order Unit”;
- 进入ME12,查看对应信息记录的“Price Unit”;
- 若不一致,在ME11中修改信息记录的“Price Unit”为与PO相同的单位,保存;
- 重新运行MRKO。
4.4 避坑:无法直接冲销411K凭证——寄售移动必须成对冲销(411K ↔ 412K),否则MRKO死锁
现象:411K移动后发现数量输错,想用MBST冲销,系统提示“Cannot reverse movement type 411 for special stock K”。
原因:SAP对寄售特殊库存(K)的冲销有硬性规定:411K只能用412K冲销,412K只能用411K冲销。这是为保障寄售权责闭环,防止“收货后随意抹除负债”。
解决:
- 进入MB1B → 移动类型选“412” → 特殊库存选“K” → 输入原411K的物料凭证号;
- 执行,系统自动生成红字412K凭证,恢复K库存,冲销原411K的会计凭证;
- 确认MMBE中K库存已恢复,再重新执行正确的411K;
- 最后运行MRKO结算。
注意:412K冲销后,原411K凭证状态变为“Reversed”,但凭证号仍保留,可用于审计追溯。
5. MRKO结算的完整验证清单:从税务代码到凭证科目的七层穿透检查
MRKO不是点一下“Execute”就完事的黑匣子。它是一次完整的财务过账,涉及税务、成本、应付三大会计维度。每一次结算失败,背后都是某个环节的配置断点。以下是我用三年时间沉淀出的七层验证清单,每次MRKO前必跑一遍,省去80%的排查时间。
5.1 第一层:信息记录税务代码(Tax Code)是否与OMEV一致?
进入ME12 → 查该物料+供应商信息记录 → “Tax Data”页签 → 记录“Tax Code”(如J1)。
进入OMEV → 查对应采购组织 → 记录“Tax Code”字段。
必须完全一致。不一致会导致MRKO生成的发票凭证中,税额为0或税率错误。
5.2 第二层:信息记录价格单位(Price Unit)是否与PO交货单位(Order Unit)匹配?
进入ME23N → 查该PO行项目 → “Order Unit”字段(如EA)。
进入ME12 → 查同物料+供应商信息记录 → “Price Unit”字段(如100 EA)。
Price Unit数值可不同,但单位必须相同(如都为EA、都为KG)。若PO用“ROL”,信息记录用“EA”,MRKO必报M7 086。
5.3 第三层:OMEV中寄售负债科目(Consignment Liability Account)是否启用且余额方向正确?
进入FS00 → 输入OMEV中配置的负债科目(如2202010000)→ 查“Account Type”是否为“K”(Liabilities)→ 查“Balance”是否为“Credit”(贷方余额)。
若科目类型为“D”(Customers)或余额方向为借方,MRKO会报错“Account type does not match”。
5.4 第四层:MRKO结算期间是否在信息记录有效期内?
MRKO中输入的“Settlement Period”(如2024.06),必须落在信息记录的“Valid From”与“Valid To”之间。
若信息记录有效期为2024.01.01–2024.12.31,则2024.06期间可结算;若有效期为2024.07.01起,则2024.06期间MRKO报错“Info record not valid for period”。
5.5 第五层:寄售库存是否真实存在且数量足够?
MRKO结算的是已做411K转移的那部分库存。若411K后又做了其他移动(如541调拨),或库存被消耗(如发料到生产订单),则MRKO可结算数量会减少。
验证方法:运行MB51 → 输入物料+工厂 → 筛选移动类型“411” → 查看“Quantity”列,确认待结算数量 > 0。
5.6 第六层:MRKO生成的凭证科目是否符合会计政策?
MRKO成功后,用FB03查凭证 → 检查三处:
- 借方(Dr):应为“原材料”或“库存商品”科目(如1403010000),金额=结算数量×信息记录净价;
- 贷方(Cr):应为OMEV中配置的“Consignment Liability Account”(如2202010000);
- 税金行(Tax):应为“应交税费-应交增值税(进项税额)”科目(如2221010100),金额=借方金额×税率。
若贷方科目非负债科目,说明OMEV配置错误;若无税金行,说明税务代码未生效。
5.7 第七层:MRKO结算后,寄售负债是否清零?
MRKO完成后,用FBL3N查该供应商统驭科目(如2202010000)→ 输入供应商号 → 查看“Open Items” → 确认该笔MRKO生成的应付凭证状态为“Cleared”(已清账)。
若状态为“Open”,说明结算未完成,需检查是否漏做411K,或MRKO期间选择错误。
提示:我习惯在MRKO执行前,先用FBL1N查该供应商“Open Items”,记录当前寄售负债余额;MRKO后再次查询,差额应等于MRKO结算金额。这是最直接的闭环验证。
6. 终极技巧:用MRKO后台参数控制结算精度,避免“一结全结”的粗放式翻车
MRKO默认行为是:结算指定期间内,该供应商所有可结算的寄售物料。这在小批量、多供应商场景下很高效;但在大批量、单供应商、需分批结算的产线环境中,极易导致“结错批次”“超量结算”“税务凭证混乱”。这时,必须绕过默认界面,用后台参数精准控制。
6.1 启用MRKO的“选择屏幕扩展”:用SE38调试MRKO源码,解锁高级筛选
MRKO标准界面只提供“采购组织+供应商+期间”三个条件。要实现按物料、按PO、按数量范围结算,需调用其增强函数。路径:SE38 → 输入程序名“RM07MLBS” → 执行 → 在初始屏幕点击“Settings” → 勾选“Extended Selection Screen”。
此时,界面展开为:
- Material Number:可输入单个物料号或范围(如MAT001–MAT010);
- Purchase Order:可输入PO号,限定只结算该PO下的寄售;
- Quantity Range:可设置最小/最大结算数量(如Min=100, Max=500),避免一次结完所有库存。
-- SQL验证MRKO结算范围(需访问SAP底层表,生产环境慎用) -- 查询MRKO将结算的寄售明细(模拟MRKO逻辑) SELECT ebeln AS po_number, ebelp AS po_item, matnr AS material, menge AS quantity, netpr AS price, (menge * netpr) AS amount FROM ekpo JOIN konv ON ekpo.ebeln = konv.knumv AND ekpo.ebelp = konv.kposn WHERE ekpo.loekz = ' ' -- PO未删除 AND konv.kosrt = 'K' -- 寄售信息记录 AND konv.datum BETWEEN '20240601' AND '20240630' AND ekpo.matnr IN ('MAT001', 'MAT002');逻辑说明:这段SQL模拟了MRKO在“Extended Selection Screen”下,按物料号过滤的结算逻辑。它直接读取采购订单行(EKPO)与寄售信息记录(KONV)关联表,确保筛选结果与MRKO实际结算一致。我们在上线前,会用此SQL预查结算数据,与MRKO结果比对,误差为0才放行。
6.2 用MRKO的“Test Run”模式生成结算预览,不落凭证只看结果
MRKO界面右上角有“Test Run”按钮(图标为放大镜)。勾选后执行,系统不做任何过账,只生成一份详细的结算预览报告(ALV格式),包含:
- 每行物料的结算数量、单价、金额;
- 对应的411K移动凭证号;
- 计算出的税额与总金额;
- 拟生成的会计凭证分录(Dr/Cr/Tax)。
这是我的后悔药:每次MRKO正式执行前,必先跑一次Test Run,导出Excel,逐行核对数量与价格。曾有一次,Test Run发现系统把一批已412K冲销的库存又纳入结算,立即停手,避免了50万元的重复付款。
6.3 定制MRKO结算报表:用SQ01创建ZMRKO_REPORT,自动抓取结算异常项
标准MRKO无异常监控。我们用SQ01创建了一个定制报表ZMRKO_REPORT,每天凌晨自动运行,抓取三类异常:
- 结算数量 > 411K移动数量(说明有未收货就结算);
- 结算金额与信息记录价格×数量偏差 > 0.1%(说明价格单位错);
- 税务代码为空的结算行(高风险,需人工介入)。
报表输出为邮件,发送给采购、财务、IT三方。从那以后,我们再没出现过MRKO结算后才发现税务凭证缺失的情况。
希望帮到你。
本文还有配套的精品资源,点击获取