简介:这份文档面向SAP ERP实施顾问、成本会计与生产计划人员,聚焦按销售订单采购与生产场景下的结算配置与操作,帮助读者理解无差异与有差异两种业务模式在系统中的落地方式。资源为单个doc文件,压缩包约2.91MB,内容以配置说明与操作步骤为主,适合作为实施参考手册或内部培训材料。文档目录涵盖生产订单结算、销售订单成本控制、结果分析及结算相关配置,并给出从创建物料、BOM、工艺路线到销售订单、按单采购、生产订单、发料、报工、收货、发货过账、开票、成本中心费用过账、成本要素分割、实际作业价格计算与重估的完整流程。已有618人学习,读者可据此掌握按单采购生产模式的系统配置逻辑与端到端操作路径,减少实施中的试错成本。
1. 销售订单驱动的采购生产:SAP 里到底在配什么
很多团队第一次听到「按销售订单采购生产」这个说法,脑子里浮现的是 MRP 跑一下、采购申请自动出来就完事了。真到项目上才发现,销售订单里那行特殊库存标识没填对,后面采购申请、生产订单、收货、发票校验会一路错到底,而且错得悄无声息。这个方案要解决的核心问题只有一个:让一张销售订单从创建那一刻起,就把它的采购需求和生产需求牢牢绑在自己身上,别人动不了、也串不了。它适合两类人:一类是刚接手 SAP MM/PP 模块、需要把 SD 和采购生产打通的一线顾问;另一类是业务侧的计划员,天天被「这批货到底给哪个客户备的」问到头大。配置和操作两条线必须一起看,只配不做会漏参数,只做不懂配会踩坑。
2. 按单采购的底层逻辑:特殊库存 E 与科目分配到底怎么联动
2.1 为什么普通库存满足不了按单采购
普通库存(非限制使用库存)是「无主」的,谁都能领、谁都能卖。按销售订单采购的本质,是给这批物料打上「专属」标签,让它在收货入库的那一刻就归属到某张销售订单行项目上。SAP 里承担这个职责的是特殊库存标识 E(Individual Customer Stock,按销售订单库存)。E 库存的特点是:库存价值挂在销售订单行项目上,只能用于该行项目的发货,别的订单想动它,系统直接拦。
这里有个容易混淆的点:E 库存和「客户寄售库存」「项目库存」不是一回事。客户寄售是货在客户那儿,项目库存是按 WBS 元素归集。按销售订单采购走的是 E,判断依据就是销售订单行项目 + 物料 + 工厂这个组合。配置层面,你要先确认物料主数据的采购视图和 MRP 视图允许特殊库存,然后确认销售订单行项目的需求类型能触发采购。
2.2 需求传递链路:从销售订单到采购申请
整条链路是这样的:销售订单行项目(带 E 标识)→ MRP 运行 → 采购申请(科目分配类别为 E,带销售订单号和行项目号)→ 采购订单 → 收货(进 E 库存)→ 对销售订单发货。中间任何一环的科目分配类别丢了,货就进普通库存,后面发货时系统会告诉你库存不够,其实货就在仓库里躺着。
配置上要盯住三个地方:
| 配置点 | 事务码 | 关键设置 |
|---|---|---|
| 需求类型 | OVZH | 销售订单需求类型对应的 MRP 需求类型 |
| 科目分配类别 | OME9 | 类别 E 允许的账户分配 |
| 采购申请凭证类型 | OME4 | 是否允许科目分配类别 E |
MRP 运行时,系统读取销售订单行项目的需求,生成采购申请。采购申请上的「科目分配类别」字段必须是 E,并且带上销售订单号和行项目号。这一步如果没带出来,八成是需求类型和科目分配类别的对应关系没配全。
2.3 最小配置清单与验证步骤
先按下面顺序把配置过一遍,别跳步:
1. SPRO → 物料管理 → 采购 → 采购申请 → 凭证类型 → 定义凭证类型 确认 NB 凭证类型允许科目分配类别 E 2. SPRO → 物料管理 → 采购 → 科目分配 → 维护科目分配类别 检查类别 E 的字段选择:销售订单、行项目必须为必输或可选 3. SPRO → 生产 → 物料需求计划 → 计划 → 需求类型 → 定义需求类型 确认销售订单需求类型对应的科目分配类别为 E 4. 物料主数据 MRP2 视图:采购类型设为 F(外部采购),特殊采购类留空 5. 物料主数据 销售视图:项目类别组和科目分配类别允许 E配完别急着跑 MRP,先手工建一张销售订单,行项目里把「特殊库存」字段填上 E,保存后看行项目状态。然后 MD50 单物料跑 MRP,去 MD04 看采购申请有没有带出销售订单号。带出来了,链路就通了;没带出来,回查第 3 步的需求类型对应关系。
提示:E 库存的采购申请在 MD04 里显示为「采购申请」行,点进去看「科目分配」页签,销售订单和行项目必须都有值,缺一个后面收货就进不了 E 库存。
3. 配置落地:从销售订单到采购申请的关键参数怎么设
3.1 销售订单行项目的特殊库存标识怎么带出来
销售订单创建时,行项目的「特殊库存」字段默认是空的。要让系统自动带出 E,得靠物料主数据销售视图里的「科目分配类别」和「项目类别」组合。常见做法是:物料主数据销售视图 1 里,科目分配类别设成 E,项目类别组设成能触发 E 的类别(比如 TAN 对应的标准项目类别)。这样建销售订单选这个物料时,系统自动把特殊库存填成 E。
如果业务要求手工控制,就把科目分配类别留空,让销售在 VA01 里手工填。手工填的风险是漏填,漏填了后面全乱。我一般建议能自动带就自动带,减少人为失误。
配置路径:
SPRO → 销售和分销 → 销售 → 销售凭证 → 销售凭证项目 → 定义项目类别 检查项目类别的「特殊库存」字段是否允许 E SPRO → 销售和分销 → 销售 → 销售凭证 → 销售凭证项目 → 分配项目类别 确认物料主数据的项目类别组能带出正确的项目类别3.2 MRP 运行参数:MD01 与 MD50 的差别在哪
MD01 是全局 MRP,MD50 是单物料 MRP。按销售订单采购的场景,日常跑 MD01 就够了,但调试阶段建议用 MD50 单物料跑,快且好定位。跑 MRP 时有个参数叫「处理键」,NEU 是净变更,重跑时只处理有变化的物料;如果是第一次跑或者配置刚改完,用 NEU 可能漏掉一些需求,这时候用「重新生成」更稳妥。
MRP 运行后去 MD04 看结果。采购申请行上会显示「E」标识和销售订单号。如果显示的是普通采购申请,没有 E 标识,按这个顺序查:
- 销售订单行项目的特殊库存是不是 E
- 物料主数据 MRP2 视图的采购类型是不是 F
- 需求类型和科目分配类别的对应关系配没配
- MRP 运行时的处理键是不是漏了需求
3.3 采购订单收货进 E 库存的校验点
采购申请转采购订单(ME21N)时,科目分配页签会自动带出销售订单和行项目。收货(MIGO)时,移动类型 101 会把货收进 E 库存。这里有个关键校验:收货过账后,用 MMBE 看库存,E 库存那一列应该有数,普通库存那列应该是零。如果普通库存有数,说明科目分配类别在采购订单上丢了。
ME21N 创建采购订单 → 科目分配页签确认销售订单号 MIGO 收货 → 移动类型 101 → 过账 MMBE 查看库存 → E 库存列有数,非限制库存列为零收货后如果发现库存进错了地方,别急着冲销。先看采购订单的科目分配页签,销售订单号在不在。不在的话,冲销收货,改采购订单,重新收货。在的话,看物料主数据的特殊库存配置。
注意:E 库存收货后,发票校验(MIRO)的科目分配也会带出销售订单,校验时确认一下,避免财务那边对不上账。
4. 操作全流程:从 VA01 建单到 MIGO 收货的完整走一遍
4.1 VA01 创建带 E 标识的销售订单
VA01 建单,输入订单类型(比如 OR)、销售组织、分销渠道、产品组。行项目里选物料,系统根据物料主数据自动带出特殊库存 E。如果没带出来,手工在「特殊库存」字段填 E,然后回车,系统会校验物料和销售订单的兼容性。
保存后记下销售订单号。用 VA03 打开,行项目 → 状态,确认「特殊库存」是 E。这一步是后面所有操作的源头,源头错了后面全错。
4.2 MD50 单物料跑 MRP 并检查采购申请
MD50 输入物料、工厂、处理键 NEU,执行。跑完去 MD04 看结果。采购申请行上应该有 E 标识和销售订单号。点开采购申请,科目分配页签里销售订单和行项目都有值。
如果 MD04 里没有采购申请,检查物料主数据 MRP2 视图的「采购类型」是不是 F,以及「计划交货时间」是不是设了。计划交货时间没设,MRP 算不出采购日期,可能不生成申请。
4.3 ME21N 转采购订单与 MIGO 收货
MD04 里选中采购申请,点「创建采购订单」,或者直接 ME21N 输入采购申请号。采购订单的科目分配页签会自动带出销售订单和行项目。确认无误后保存。
MIGO 收货,移动类型 101,输入采购订单号,过账。过账后用 MMBE 看库存,E 库存列有数。再用 MB52 看 E 库存的明细,销售订单号应该在里面。
VA01 → 建单,特殊库存 E MD50 → 跑 MRP,生成采购申请 MD04 → 检查采购申请带 E 标识和销售订单号 ME21N → 转采购订单,确认科目分配 MIGO → 101 收货,进 E 库存 MMBE → 验证 E 库存有数4.4 发货过账与 E 库存消耗
发货用 VL01N 创建交货单,VL02N 过账。过账时系统自动从 E 库存扣减,移动类型 601。如果 E 库存不够,系统报错「库存不足」,这时候去 MMBE 看 E 库存到底有没有。有的话,检查交货单的行项目是不是关联了正确的销售订单。
发货过账后,E 库存减少,销售订单行项目的发货状态更新。整个链路闭环。
5. 避坑与排查:按单采购生产最常见的 5 个翻车点
5.1 采购申请不带销售订单号
现象:MD04 里采购申请没有 E 标识,科目分配页签销售订单为空。
原因:需求类型和科目分配类别的对应关系没配,或者物料主数据 MRP2 视图的采购类型不是 F。
解决:检查 OVZH 里销售订单需求类型对应的科目分配类别,确认是 E。再查物料主数据 MRP2 视图,采购类型改 F,重新跑 MRP。
5.2 收货进了普通库存
现象:MIGO 收货后,MMBE 看普通库存有数,E 库存为零。
原因:采购订单的科目分配类别丢了,或者采购申请转采购订单时科目分配没带过来。
解决:冲销收货(102),检查采购订单科目分配页签,销售订单号在不在。不在的话,手工补上,重新收货。
5.3 MRP 跑完没有采购申请
现象:MD04 里只有销售订单需求,没有采购申请。
原因:物料主数据 MRP2 视图的计划交货时间没设,或者 MRP 类型设成了 ND(无 MRP)。
解决:MRP2 视图补计划交货时间,MRP 类型改成 PD 或 VB,重新跑 MRP。
5.4 发货时提示库存不足但 E 库存有数
现象:VL02N 过账报错「库存不足」,但 MMBE 看 E 库存明明有。
原因:交货单的行项目没有关联到正确的销售订单,或者销售订单行项目的特殊库存标识被改了。
解决:检查交货单行项目的销售订单号,确认和 E 库存归属的销售订单一致。不一致的话,删掉交货单重建。
5.5 发票校验科目分配对不上
现象:MIRO 发票校验时,科目分配页签的销售订单号和采购订单不一致。
原因:采购订单的科目分配在收货后被改过,或者发票校验时手工改了科目分配。
解决:发票校验前先核对采购订单的科目分配,确认销售订单号一致。不一致的话,先改采购订单,再重新校验。
6. 进阶技巧:用 MD07 和自定义报表盯住按单库存的健康度
跑通基本流程后,日常运维最头疼的是「E 库存到底压了多少、哪些销售订单的货备了但没发」。MD07 是看需求与库存匹配的利器,但默认视图对 E 库存的展示不够直观。我一般会做一个简单的自定义报表,用 MB52 导出 E 库存明细,再用 SE16 查销售订单行项目的发货状态,两张表按销售订单号关联,就能看出哪些订单备了货但没发。
具体做法:MB52 选工厂和物料,库存类型选 E,导出 Excel。SE16 查 VAPMA 表(销售订单行项目状态),按销售订单号筛选。用 VLOOKUP 把两张表拼起来,发货状态为空的,就是备了货没发的。这个报表不用开发,业务自己就能跑。
-- 查 E 库存明细(简化逻辑,实际用 MB52 导出) SELECT m.matnr, m.werks, m.lgort, m.charg, m.clabs AS e_stock_qty, m.sobkz AS special_stock FROM mseg m WHERE m.sobkz = 'E' AND m.werks = '1000' AND m.bwart IN ('101', '102');上面这段 SQL 只是示意,实际系统里 MSEG 表的数据量大,直接查会慢。建议用 MB52 标准报表导出,或者让 ABAP 同事写个简单的 ALV 报表,按销售订单号汇总 E 库存和发货状态。
提示:E 库存的账龄分析很重要。备货超过 30 天还没发货的,要么是客户取消订单没清理,要么是发货流程卡住了。定期跑一次,能清掉不少呆滞库存。
我自己的习惯是每周一早上跑一次 MD07,把 E 库存超过两周的销售订单拉出来,发给计划员确认。这个动作坚持了半年,E 库存周转明显快了。按单采购生产这套东西,配置不难,难的是日常盯住。配好只是开始,跑顺靠的是每周那十分钟的检查。希望帮到你。
本文还有配套的精品资源,点击获取