简介:SAP MTO 生产模式配置及操作详解是一套面向 SAP 实施顾问、PP/CO 模块用户与成本核算学习者的 PPT 资源,以按单生产(Make-to-Order)为核心,围绕 MTO 概述、是否采用销售订单控制、对应后台配置及期末结算活动展开,并在成本对象控制、销售业务流程、销售订单库存数量流与价值流等关键环节做了系统梳理。内容既涵盖两种控制方式的适用场景与差异对比,也说明采用销售订单控制后,如何以销售订单项作为成本对象收集成本、展示承诺并支持订单级盈利分析;同时涉及不采用销售订单控制时成本归集在成本中心或半成品库存中的处理逻辑。资源仅有 1 个 pptx 文件,压缩包大小 3.29MB,共 142 页幻灯片,适合从理论到底层配置进行完整学习,也可作为 MTO 相关项目上线前的知识梳理参考。目前已有 7607 人浏览学习,认可度较高;整套内容源自作者多年珍藏,讲解详细,对前台操作与后台配置的常见关键点均有覆盖。
1. 从“先造后卖”到“先卖后造”:SAP MTO在项目里到底改变了什么
SAP MTO生产模式(Make-to-Order,按订单生产)之所以值得单独写透,是因为它把SD销售订单、PP生产订单和CO成本核算串成了一条不能断的链——只要有一个环节还抱着MTS(按库存生产)的思路,生产订单和销售订单就会脱节,差异说不清,月底结算像在黑匣子里摸瞎。我见过不下五个项目在MTO上翻车:策略组直接沿用了10,MRP跑完采购申请满天飞;工单能开出来但结算规则还留在“转到物料”,成本死活落不到销售订单上。MTO要解决的核心问题只有一句:让一张客户销售订单驱动从需求、生产到成本归集的完整链条。这套方案最适合作业指导,适合两类人——正在实施PP/PPO模块的顾问,以及马上要切换MTO的物料计划和车间调度。下面这套配置和操作路径,来自我这些年反复验证过的标准落地做法。
2. 先把主数据摆对:策略组、MRP类型与项目类别
MTO和MTS最大的差异不在后台配置晦涩,而在主数据一开始就分道扬镳。很多项目切MTO失败,不是IMG配不动,而是成品物料主数据的“策略组”还是10,销售订单创建了一大堆,需求一个都没传下去。所以做MTO,第一步不是开配置,而是把所有 MTO 物料从物料主数据开始重新过一遍。
2.1 策略组70和20/82的区别:为什么MTO首选70
在物料主数据MRP1视图里,“策略组”决定系统用哪套计划策略做需求管理。MTS项目最常用策略组10,销售订单不产生独立需求,MRP靠预测计划独立需求驱动。切到MTO后,第一件事就是把成品策略组改成70。
策略组70对应计划策略“在装配层计划”,它把销售订单计划行当作MRP的直接输入,系统为每一张销售订单单独生成计划订单,计划订单上带着销售订单号,后续转生产订单、发料、收货全部跟着这张销售订单走。策略组20也能做按订单生产,但在标准SAP里,20更多出现在“按订单生产加按预测采购”的复合场景,它允许销售订单去消减已经存在的独立需求,消减逻辑比70复杂。做纯MTO,策略组70比20更直白,MRP跑完的结果更好向业务解释。
策略组82则给可变配置(VC)物料用。如果你做的是标准化选配产品,上了VC还不确定,可以直接选82;如果只是普通非标定制、没有特性维护,老老实实用70。我在项目里的选型原则很简单:无配置MTO用70,有配置MTO用82,20留给业务上“既有预测又有订单”的混合模式。
2.2 物料主数据里必须对齐的三个关键字段
策略组只是入口,物料主数据上还有几个字段必须同时改,否则某个环节会莫名其妙卡住。以下是我在MM01/MM02里逐项核对的标准清单:
| 视图 | 字段 | MTO推荐值 | 说明 |
|---|---|---|---|
| MRP1 | 策略组 | 70或自定义Z70 | 按订单生产计划策略 |
| MRP1 | MRP类型 | PD | 物料需要跑MRP计算 |
| MRP2 | 批量程序 | EX | 精确批量,不自动合并数量 |
| MRP2 | 计划时界 | 0或1 | 不锁定计划订单,允许转换 |
| MRP3 | 可用性检查 | 02 | 按ATP逻辑做订单可用性检查 |
| 采购 | 特殊采购类型 | 留空 | 不能填F或外部采购,否则MRP直接建采购申请 |
这里最容易踩的是“批量程序”。MTO场景下,销售订单数量是强制的,如果批量程序用了“每周汇总”或“按期间汇总”,MRP可能把两个销售订单的需求合并成一个计划订单,车间分不清哪张工单对应哪张订单,成本也会串味。批量程序设成EX(精确批量),系统严格按订单数量生成计划订单,需求的颗粒度才不会丢。
“计划时界”同样要留意。MTO物料如果计划时界设得太大,比如10天,MRP会在时界内把已生成的计划订单固定住,你改完销售订单数量,计划订单数量却不跟着变,线上看起来就是“工单数量对不上订单”。MTO场景一般把它压到0或1,让计划订单始终跟随需求变化。
2.3 销售订单项目类别TAN/TAS与需求类的分配关系
物料主数据不是全部,销售订单的项目类别也要认。VA01创建订单时,项目类别由物料主数据“项目类别组”加上销售订单类型共同决定。标准SAP里,项目类别TAS是“标准项目”,代表从库存交货,对应MTS;项目类别TAN是“单独项目”,代表按订单交货,对应MTO。
我见过不少顾问调了半天需求管理,但VA01里订单行项目类别始终是TAS,结果计划行根本不生成。原因很简单:项目类别没换,需求类还是按库存的那一套。MTO物料在物料主数据销售视图中设置“项目类别组”为NORM,并在SD配置里把TAN对应的计划行类别和需求类配上,才能让销售订单从创建那一刻就带着MTO基因。项目配置路径是VOV4定义项目类别、VOV7分配计划行类别;需求类与需求类型的分配在需求管理配置里看,标准做法是项目类别TAN配上计划行类别KS、需求类KSL。不同版本的需求类型代号会有差异,最后到OMDZ里核一遍,别只照着截图敲。
3. 后台配置:把销售订单需求到生产订单的链路打通
主数据摆正后,后台配置才值得动手。MTO的配置重心不在某个孤单的开关,而在“销售订单需求→需求管理→MRP→计划订单→生产订单”这条链路的完整度。下面按配置顺序讲,每个步骤都有明确的事务代码和判断标准。
3.1 需求管理配置:策略、需求类型与计划行
需求管理在IMG里的路径是:生产→物料需求计划→需求管理→计划策略。我一般打开四个事务代码来处理:
OPPT 定义策略组,把计划策略70放进策略组里 OMP1 检查计划策略70的参数 OMDZ 定义需求类型与需求类的对应 OMDS 把需求类型分配给计划行类别OPPT是核心:你可以直接使用标准策略组70,也可以复制成Z70再调整。策略组里的“计划策略”决定了独立需求是否参与MRP、销售订单是否自动生成计划行。标准策略70下,系统只让销售订单的计划行去驱动MRP,不会被预测需求干扰,这正是MTO需求管理的关键。
OMDZ里的需求类型与需求类对应关系需要和SD侧的项目类别对齐。常见做法是用需求类KSL承接按订单的独立需求,需求类型里设置“由销售订单计划行创建独立需求”。如果SD项目类别TAN映射过来的需求类型和需求类对不上,MD04里会一直看不到销售订单产生的计划行,或者计划行出现但又自动消失——这个现象在项目里最隐蔽,很多人去查MD04的筛选条件、查MRP控制参数,其实是需求类型没配干净。
配置完成后,记得在物料主数据MRP1视图再次维护“策略组=70”,保存后做一次完整测试:VA01创建一张销售订单,保存后立刻进MD04,如果能看到来自“销售订单库存”的需求条目,说明需求管理链路已经通了一半。
3.2 MRP跑出特殊采购类型:为什么MTO的计划订单不能直接转采购
MTO物料跑MRP的时机很关键。标准做法是销售订单创建后直接运行MRP,不用等。事务代码MD01跑总MRP、MD02单项MRP、MD03单层MRP都行;上线后如果订单量不大,我习惯用MD02只针对MTO成品跑,速度更快,问题也好隔离。
MRP跑完,系统针对销售订单生成计划订单。这个计划订单有个明显特征:在MD04里看需求来源,显示的是“销售订单”,计划订单的“特殊采购类型”字段带着销售订单分配信息。这也是判断 MTO 是否生效的硬指标——计划订单必须能追溯到销售订单,而不是一个孤立的计划订单。
这里有一个高频翻车点:如果物料主数据“采购视图”里误填了“特殊采购类型”F(外部采购),或MRP类型设成了“仅外部采购”,MRP就不会生成计划订单,而是直接生成采购申请,并且采购申请上也带销售订单号。表面看需求流动没问题,但产线明明要自制,系统却在走外购,工单根本建不出来。MTO成品的特殊采购类型必须留空,让MRP按自制逻辑展开BOM。
MTO的物料需求并不是到成品层就停了。成品计划订单转成生产订单后,MRP会继续展开BOM,下一层的组件如果是外购件,同样会生成带销售订单参考的采购申请。采购申请行项目上能看到订单号和需求数量,采购员按这个信息到货,不会把两个订单的料混在一起。
3.3 成本核算变式:MTO单品成本如何归集到销售订单
MTO在CO侧和MTS有本质区别:MTS生产订单的成本归集到最终产品物料,MTO生产订单的成本必须归集到销售订单。这样一张销售订单的成本、收入、毛利才能闭环对账。
生产订单的类型配置里,要指定成本核算变式(Costing Variant)。常用做法是用标准订单类型PP01,并在订单类型相关参数中指定“按订单的成本核算”。在事务代码OPL8或后台“订单类型相关参数”里,把成本核算变式设置为包含“按订单”的成本核算变式,例如标准变式PPC1或自定义ZPC1。如果订单没有正确指定核算变式,工单能建、能发料,但成本要素不更新,月末成木报表全是空的。
更关键的是生产订单的“结算规则”。CO02打开生产订单,进“结算规则”,默认情况下接收方可能是“物料”,MTO场景要把这个接收方删掉,新增接收方类别“K”(销售订单),填入这张工单对应的销售订单号和项目行号。比例一般是100%。这样生产订单发生的材料成本、人工成本和制造费用,结算时全部转到销售订单上,再结合收入做结果分析。
结果分析(CO-PA)通常也要同步在销售订单上启用。后台的“结果分析”配置里,为按订单生产的销售订单分配结果分析码,标准结果分析码是ZAPR?不一定的版本有不同。我在项目里一般用结果分析码PRE01配合“基于成本”的结果分析。这个配置决定了月末差异是进销售订单还是留在生产订单,我见过配错后差异无处分摊、报表毛利的数字比财务手工算的少一大截的情况。
4. 日常操作:用MD07和MD04盯需求,从下达工单到过账
配置完成只是地基,日常操作才是每天要面对的事。MTO的日常操作节奏和MTS完全不同:销售订单先到,生产跟着订单走,一切操作都以“订单号”为线索。这一章把从需求查询到开票的完整路径捋一遍,操作人员照着做不会漏环节。
4.1 用MD07和MD04核查MTO需求,避免订单与需求两本账
MTO上线后,计划员最常用的两个事务代码是MD07和MD04。
MD07是“物料需求汇总”,把同一个物料在多个工厂、多个存储地点的需求量汇总显示,适合每天早上看整体盘子:哪些订单今天要开工、哪些需求已经超期未满足。MD04则是“库存/需求清单”,按时间顺序列出该物料的每一笔收货、发货、生产订单、计划行。MD04才是排查问题的第一现场。
在MD04里,MTO物料的需求行有一个很明显的特征:需求类型行中,来源显示为“订单”,并且行项目上带销售订单编号。把这个编号和VA03里的销售订单对一下,就能确认需求来源正确。如果MD04里出现“独立需求”行,而它是预测需求,说明该物料策略组配置没有起到“只由销售订单驱动”的效果,需要回到物料主数据检查是否漏改了策略组。
日常还有一个习惯值得保留:销售订单在VA02里改数量或交期后,回到MD04刷新,确认计划行同步变化。如果计划行没有变化,说明计划时界把计划订单固定住了,或者需求管理没有重新进行计划行确认,此时手工在MD04里删除旧计划行、重新分配计划行是最快的补救办法。
4.2 生产订单下达、领料与报工的移动类型和顺序
MRP生成的计划订单不会自动变成生产订单。转生产订单的常用事务代码是CO41,它可以把同一物料、同一天的多个计划订单一起转成生产订单。转换完成后,用CO02下达(如果配置了自动下达则可跳过),生产订单状态会变成“下达”,车间才能报工和领料。
MTO生产订单的领料、报工、入库顺序是固定的:
261 生产订单发料(MIGO) CO11N / MFBF 工序报工,输入实际工时 101 生产订单收货(MIGO)MIGO发料时,移动类型261、参考生产订单、输入组件数量,系统会检查订单是否已下达、物料是否在BOM里。报工用CO11N或MFBF,关键是输入实际的报工数量,否则订单无法完成确认,后续结算会受影响。MTO场景最怕的是“报工数量没填,但收货已经做完”,订单弹不回,财务结算时差异悬挂在哪都查不出来。
101收货是这个链条的重点。MTO成品收货后,库存类型显示的是“销售订单库存”而不是普通非限制库存。MIGO过账后,去MB51或MD04看,收货数量会挂在销售订单需求下方,这代表物料已经从生产状态转成“等待发货给客户”的状态。
4.3 销售订单发货与开票:系统怎么知道这箱货属于哪张订单
生产收货完成,仓库要发货。发货操作由SD模块处理,先VL01N创建交货单,再VL02N过账发货(PGI)。MTO的交货单参考销售订单创建,系统在过账发货时自动知道要扣减“销售订单库存”,不需要手工指定库存类型,移动类型是601。
发货过账完成后,销售订单库存被扣减,货物成本同步结转到销售订单。下一步直接VF01开票,发票金额、税、收入会过账到SD和FI,同时进入销售订单的CO-PA结果分析。到这里,一张MTO订单从需求、生产、收货、发货到开票的完整闭环才结束。
我在日常操作上有一个检查习惯:每一张MTO销售订单发完货后,去CO03查一下生产订单,确认订单状态是“已结算”,结算规则里销售订单接收方已经被结转,数量差异和价格差异都处理干净。如果生产订单还开着差异,这个订单就是月底最扎眼的问题来源。
5. MTO实操避坑:五个高频问题与排查
MTO项目上线后,真正磨人的不是配置,而是日常操作中反复出现的批次问题。下面五个问题几乎每个MTO项目都会遇到,我把现象、原因和处理方法写成踩坑记录,照着排查能省很多时间。
5.1 报工被拦:工单没有标准工时,确认不下去
现象:CO11N或MFBF报工时,系统提示找不到标准工时、无法确认,工单卡在“部分确认”状态,后续收货、结算都无法继续。
原因:MTO工单的工艺路线没有维护标准工时,或是工时单位不对。车间报了实际工时,但系统缺少一个“标准值”作为确认基础。
解决:给工艺路线里的每个工序维护标准工时,单位用分钟,并勾选“标准值”有效性。如果业务上确实不想维护工艺路线,可以在工序控制码里把“确认要求”设为不需要标准值,但这只适合少量非标工序。我的建议是MTO物料尽量维护工艺路线,否则人工成本归集到订单就没有依据,CO结果分析会半残。
5.2 策略组漏改:销售订单建完,MRP跑出的是采购申请而不是计划订单
现象:VA01建完销售订单,MD04里看不到计划订单,反而出现了采购申请;或者成品工单建不出来,采购员却收到一堆成品物料的采购申请。
原因:物料主数据策略组还是10,或者采购视图里“特殊采购类型”被填了F。MRP按MTS逻辑跑,看到的是独立需求,直接按外部采购处理。
解决:进MM02,MRP1视图把策略组改成70,采购视图把特殊采购类型清空,重新跑MRP。记得测试时一定要删掉旧的采购申请,否则MD04里会残留两条来源,分不清哪个才是真正的需求。
5.3 MIGO过账增强拦截:移动类型101/261被增强逻辑弹回
现象:MIGO过账一直报错,比如“移动类型101不允许针对订单库存”或“缺少批次序列号”,把单据卡在保存前。
原因:项目里往往有客户化增强——MIGO BADI、程序增强或自定义校验,针对移动类型、库存类型做了额外限制。MTO启用销售订单库存后,增强逻辑没有适配特殊库存E,把本该过账的业务当成异常拒绝了。
解决:从两条线排查。一是查MIGO增强的激活状态,SE19看BADI实现、SMOD/CMOD看项目增强;二是用WE02或ST05跟踪保存时的业务错误消息来源。找到拦截点后,把移动类型101/261和特殊库存E放行。记住,不要为了绕过校验去改用其他移动类型,否则库存账会错得离谱。
5.4 物料分类帐差异连接缺失,结算报错
现象:月末运行生产订单结算时,系统提示“物料至物料分类帐的连接缺失”或“物料账未激活”,差异无法过账到销售订单。
原因:启用了物料分类账(Material Ledger),但MTO成品物料没有为“标准价格”渠道激活物料分类账,导致差异无法在物料账和销售订单之间传递。
解决:在CKMM/CKML里为成品物料激活物料分类账,并在物料主数据会计视图维护合适的价格控制。MTO成品一般用标准价或移动平均价都可以,关键是物料分类账必须和销售订单结算配置关联。遇到这个报错不要慌,它通常是配置顺序问题,补上分类账激活再重新结算即可。
5.5 MD04里出现多条“孤儿”需求行,订单取消后计划订单还在
现象:销售订单在VA02里取消或删除后,MD04里仍然挂着旧的需求行,按照旧数量继续跑MRP,产生多余的生产订单或建议。
原因:销售订单计划行变更时,需求管理没有同步删除旧计划行对应的计划订单,或者计划订单已经被固定(计划时界生效)。这是MTO里最典型的“幽灵工单”来源。
解决:在MD04里选中旧需求来源对应的计划行,用删除功能清除未确认的旧计划需求,再重新运行MRP。强烈建议MTO物料不要设置过长的计划时界,让MRP有机会自动修正计划订单。如果公司有频繁改单业务,考虑在OPPT策略组里把“计划时界”相关参数设置成0,从根上避免目标成本管理里的幽灵订单。
6. 最后一招:用一张主数据核对表验收你的MTO配置
做完所有配置和操作验证,不要急着宣布上线。我习惯用一个核对表逐物料验收,每行都打勾确认,直接按订单创建销售订单,跟踪完整闭环。建议把下面这张表打印出来,作为项目验收工具。
| 检查对象 | 检查点 | 确认方式 | 通过标准 |
|---|---|---|---|
| 物料主数据 | 策略组 | MM03 MRP1视图 | 70/82或自定义MTO策略组 |
| 物料主数据 | 批量程序 | MM03 MRP2视图 | EX,不允许期间汇总 |
| 物料主数据 | 特殊采购类型 | MM03 采购视图 | 留空 |
| 销售订单 | 项目类别 | VA03 项目行 | TAN或对应MTO项目类别 |
| 销售订单 | 计划行 | VA03 交货计划 | 有计划行,可交货 |
| MRP结果 | 计划订单 | MD04 | 计划订单带销售订单号 |
| MRP结果 | 采购申请 | MD04 | 外购组件带销售订单参考 |
| 生产订单 | 结算规则 | CO03 | 接收方为销售订单 |
| 生产订单 | 状态 | CO03 | 下达、已报工、已结算 |
| 库存 | 库存类型 | MIGO/MB51 | 101收货后挂销售订单库存 |
这张表全部通过,我才会认为一套MTO配置真正“立住了”。每次切换物料或新增MTO产品线时,照着这张表重新跑一遍,能少走很多弯路。
还有一个我珍藏多年的查错习惯:MTO出问题先别急着查IMG,先看MD04的需求来源和CO03的结算规则。这两个地方能直接暴露是需求链路断了还是成本归集错了。需求链路断,多半在策略组和项目类别;成本归集错,多半在结算规则和结果分析配置。按这个方向排查,一半以上的MTO疑难杂症都能在十分钟内定位。
做MTO方案这么多年,我最深的教训是:MTO不是一个事务代码能搞定的功能,而是一条需要主数据、SD、PP、CO四边同时对齐的业务链。任何一边按MTS的惯性去维护,整条链就会在某个不起眼的字段上断掉。希望帮到你。
本文还有配套的精品资源,点击获取