做了快十年的供应链相关项目,SAP ERP 里的主要生产计划(MPS)是我见过最容易被误解的功能。很多人把 MPS 等同于 MRP 的前置步骤,甚至直接说“MPS 不就是 MRP 加了个过滤器吗”,结果自己把生产计划里最有业务价值的一层给架空了。今天这篇文章,我想完全从业务视角出发,把 MPS 从需求管理到计划订单下发这条链路摊开讲清楚——不光是事务代码和配置路径,更重要的是讲明白每个动作背后的业务逻辑,以及计划员在日常操作里最该盯住的那几个要点。
1. 为什么MPS是生产计划中最容易“被架空”的一环
1.1 MPS到底解决什么问题
SAP 里 MPS 的英文是 Master Production Scheduling,中文叫主生产计划。听起来很高大上,但用一句话概括它的存在意义:它是把“该卖什么”翻译成“该做或该买什么”的第一道闸门。
举个例子。一家做机械装备的企业,销售部给了未来三个月的销售预测。这个预测不会直接跑去催仓库、催供应商,而是先进入需求管理模块,形成独立需求,再交给 MPS 运算。MPS 把成品、半成品这类关键物料的需求数量和交期算出来,由主计划员人工审核、确认,确认后的结果才作为下层物料生产计划和采购计划的输入。
这个层层把关的机制非常关键。如果没有 MPS,直接全跑 MRP,系统会把预测和客户订单一股脑展开到最底层物料,产能矛盾、交期冲突、供应商瓶颈全部一次性暴露出来,主计划员基本没有干预空间。而引入 MPS,相当于在生产计划链条上设了一个“人工控制点”,可以让计划员在真正发料和投产之前,先把该生产的、该采购的数量和日期定下来。
1.2 业务视角与技术视角的本质区别
MPS 被架空的很大原因,是大家把它当成一个“跑批工具”在用。技术视角关心的是跑 MD05、MD40、MD01,每天批跑得顺不顺,例外消息是不是清零。业务视角完全不同,它关心的是:这个计划订单的交期能不能满足客户承诺,产能是不是能匹配,关键物料供应商能不能按时到货,以及计划员的经验有没有被固化到系统规则里。
我见过不少项目,顾问花大力气配置了 MPS,业务部门却在每月底最后两天才想起录需求,主计划员天天在 Excel 里重新排产,系统里的 MPS 成了一个摆设。这种“MPS 没价值”的结论,下得太早。不是 MPS 没用,而是实施者没有把业务逻辑真正焊进系统流程里。后面我会具体讲怎么避免这个局面。
2. MPS完整业务链路:从需求到计划订单的那条“脊椎”
2.1 需求从哪里进来,又是怎么落到MPS的
MPS 的输入主要是独立需求。独立需求通常有两个来源:一是销售预测,通过事务代码 MD61/MD62 维护的计划独立需求,这是 MPS 最主要的需求来源;二是真正的销售订单需求。运营计划员在 MD61 里把“产品系列 A”的 1 月、2 月、3 月预测量录进系统,系统会按照计划策略把这些数量转换成 MPS 层级的毛需求和可承诺量。
这里有个常见误区:把销售订单当成唯一需求来源,把预测全删掉,结果计划跟不上交付;或者反过来,预测也录、订单也看,最后跑出来数量翻倍。判断这个问题的关键要看计划策略。比如策略 10 下,销售订单会冲销掉原有的计划独立需求,订单进来了,对应预测的那部分需求就不会重复计算。这个细节特别容易出错,真正做项目时一定要给需求计划员讲透。
2.2 MPS和MRP真正分工在哪里
在很多企业印象里,MPS 就是 MRP 的前置步骤。严格来说,MPS 在计划层级中属于“主计划层”,MRP 属于“物料需求计划层”。MPS 把关键物料——通常是成品、半成品,或者采购周期特别长的瓶颈物料——作为计划对象,运算出计划订单,并允许计划员介入调整;MRP 则把已确认的 MPS 结果作为需求来源,继续向下层展开,把所有原材料的采购申请和零部件生产需求全部算出来。
这里有一个动作上的本质区别:MRP 可以自动运行、批量运行,结果直接进材料计划;而 MPS 要求人工介入,计划员必须审查计划订单、处理例外消息,最后确认这些计划订单。如果一个企业直接拿 MD01 全盘“一把梭”地跑下去,等于自动跳过了人工判断,MPS 就名存实亡了。我遇到很多计划员说“我们跑了 MRP 就算跑了 MPS”,其实业务后果是完全不同的。
2.3 计划策略决定你跑的是哪种生产模式
计划策略描述的是“独立需求与客户订单如何相互作用”的一套业务规则。选错了策略,后面再怎么调参数,MPS 输出的计划都是歪的。
- 策略 10(按库存生产)是经典 MTS 模式。计划员录预测,MPS 按预测组织生产入库,销售订单进来后冲销预测,库存在那里,订单可以随时发货。适合交期要求短、预测相对稳定的成品。
- 策略 20(按订单生产)是典型 MTO 模式。MPS 主要响应销售订单,订单一到就形成需求量并生成计划订单,生产工单与具体订单一一对应。适合客户定制、交期可以等待的产品。
- 策略 50 这类按订单装配模式,适合既有标准件备库又有定制需求的产品,前置的组件按计划备货,最终装配阶段只响应实际订单。
实际选策略时,要结合产品交付周期、客户容忍度和库存资金占用来看。比如某设备厂的主力机型,交付周期 28 天,客户只愿意等 14 天,那它就必须走策略 10,提前按预测备成品库存;非标定制产品交付周期本来就长,走策略 20 更合理。这些决策不是 IT 部门定的,而是计划、销售、生产共同达成的业务规则。
2.4 计划时界和例外消息:让计划员真正“管控”需求
计划时界是 MPS 里少不了的“护栏”。可以在系统里按天设定,比如 7 天或 14 天。在时界内,系统自动再计划的动作会受限,已经确认的订单不会被需求波动随意改掉;时界外,计划订单可以随需求变化自动调整。这就像给生产现场一个相对稳定的执行窗口,避免车间天天接到工单变更通知。
例外消息则是系统给计划员派发的“工作清单”。常见的如 90(计划订单日期提前)、91(计划订单日期推迟)、92(短缺)、95(过期计划订单)、96(新增计划订单)。计划员每天打开 MD04 看到这些消息,就好比收到一叠待办事项。有些人嫌消息烦,直接把它们屏蔽了,结果计划失控。正确做法是设置合理的消息参数,按优先级处理。计划员的核心产出不是“点按钮”,而是判断并处置这些例外消息。
3. MPS关键参数与后台配置的硬功夫
3.1 计划参数文件的配置逻辑
计划参数文件是 MPS 的核心运作字典,定义了系统怎么算、往哪个方向调整、允许哪些自动动作。后台路径大致在 SPRO 里的“生产 - 物料需求计划 - 计划 - 定义每个工厂的计划参数文件”。配置时有几个关键点:
- 计划类型:选择 MPS 还是 MRP。MPS 物料要用主计划类型标识,系统才会把它当顶层计划对象看待。
- 计划模式:决定计划订单被自动处理的方式,比如只自动创建,还是创建并修改,或者创建并删除。一般建议“自动创建并修改”就可以了,但要防止系统擅自删单。
- 计划时界:这里可以设定“已计划的订单”“取消计划”和“预测”的时界逻辑,直接决定现场执行稳定度。
- 例外消息参数:按提前期、需求冲突等条件触发不同消息,并设置消息是否显示、是否允许批量处理。
配置时最容易踩的坑,是不同工厂共用一个参数文件,导致时界、批量逻辑“一刀切”。实际上工厂的计划成熟度差别很大,有的工厂适合 3 天时界,有的适合 14 天。我建议至少按工厂维度配置两三套参数文件,别偷懒。
3.2 批量、安全库存、舍入值:别小看这三个数字
MPS 算出来的数量,不是毛需求的简单相加,而是经过批量规则、安全库存和舍入值三重加工后的结果。
批量规则决定了计划订单的最小生成逻辑。比如“按周期批量”适合成品生产计划,每周合并一批;“按需批量”适合零部件,需求多少就生成多少。安全库存则分为手工填写和动态安全库存。手工安全库存背后是计划员经验,比如关键原料有运输波动,就设两周用量;动态安全库存则基于历史偏差和服务水平目标,由系统计算。
舍入值这个问题我特别想提一下。比如某供应商只按整箱 500 个供货,批量算出来是 1234,系统会向上取整到 1500。看似小事,但没配置舍入值,计划员就要天天手工凑整,既累又容易错。这些参数组合起来,决定了计划订单能不能直接落地执行。
3.3 物料主数据里的MPS关键字段
物料主数据层面,MRP 类型字段决定了物料是参与 MRP、是 MPS,还是根本不参与计划;MRP 组把同类计划参数串在一起;策略组决定计划策略和需求冲销方式。
很多企业把物料主数据维护完全丢给 IT 部门,结果策略组、批量、安全库存全是默认值,MPS 跑出来的结果自然靠运气。正确做法是:由计划部门牵头定义物料主数据的计划策略模板,按物料类别去套用。比如成品走策略 10 的模板,外购品走按需批量的模板,定制件走策略 20 的模板。这套前期工作做完,后面计划员的大量手工修单都可以省下来。
3.4 配置落地时容易踩的坑
我第一次做 MPS 项目时也踩过不少坑。其中一个典型的问题:后台为了“省事”,把计划订单设成了自动确认,业务部门确实省事了,可一旦需求波动,系统悄悄改单,生产现场根本不知道订单已经被动过。后来我们改成人工确认计划订单,把确认动作当成计划员的关键职责,配合时界设定,现场执行才稳定下来。
另一个坑是工厂日历没维护好。法定节假日、设备检修日都没有反映到日历里,跑批出来的计划日期老是落在放假日期上,计划员只能天天手工调。这些坑不在功能本身,而在实施时有没有真正理解业务现场。
4. 计划员的一天:MPS实操流程实录
4.1 跑批前准备:需求、主数据、参数三件套
我之前陪跑过一个离散制造客户,那里的计划员每天都有一套固定的节奏。上班第一件事不是急着跑批,而是先检查三件套。
第一是需求是否完整。前一天有没有新增销售订单,销售预测有没有更新。漏掉的独立需求会让 MPS 输出完全偏离销售预期。实际操作中,计划员会用 MD61 查看计划独立需求,再用 MD04 针对性看几个重点物料的需求覆盖情况。
第二是主数据是否有问题。新增物料有没有分配策略组,安全库存有没有维护,BOM 有没有变更却没同步。没有主数据支撑的物料,MPS 要么不运算,要么运算出来全是异常,排查起来更费劲。
第三是日历和参数是否正常。工厂日历有没有被临时调整,计划参数文件有没有被改动。这三件套确认没问题,才开始真正跑批。
4.2 跑MPS并读懂例外消息
跑批可以用 MD05(单个物料 MPS)或 MD43(集合 MPS),也可以结合 MD40 做总排产。跑完 MPS 后,计划员打开 MD04,按物料查“需求/库存”清单。清单里会同时显示毛需求、计划到货、可用库存和计划订单需求。这里要提醒一句:MD04 里的数字干不干净,很大程度上取决于需求覆盖设置和主数据的准确性,不能只盯着数字本身。
处理例外消息时,我建议按消息类型排个优先级。先处理 95(过期计划订单)和 92(短缺),因为这两类直接影响交付;再处理 90/91 这种提前或推迟的消息,它们相对不紧急;遇到 96(新增)消息,先看一眼需求源头,确认是真实需求还是重复录入,再决定保留还是删除。很多新手一上来逐个消息点“重计划”,其实是无用功。
4.3 计划订单的处置:转生产、转采购、转外协
确认计划订单之后,下一步就是“兑现”。生产类计划订单可以转成生产订单,采购类计划订单转成采购申请,外协类计划订单转成外协采购订单。这些动作在 MD04 里通过“计划订单转生产订单/采购申请”完成,也可以用批量事务代码统一处理。
这里有个典型反差:计划员以为“确认计划订单”就等于锁定了生产,但实际上系统里的确认只是一个计划层动作,不代表生产订单已经创建。有些企业设置了自动转单,跑完 MPS 立刻释放生产订单,结果生产部门看到的工单频繁变更,现场安定性很差。我的建议是:把确认动作和转单动作分开,先确认,再看排程,最后批量转单,让计划员对优先级有控制权。
5. 高频问题与排查实战
5.1 SAP里常见的MPS问题速查表
这些年在不同项目里反复出现过的问题,整理成一张表直接对照着查会省很多时间。
| 现象 | 常见原因 | 排查方向 |
|---|---|---|
| MPS 跑出来订单量是 0 | 物料主数据 MRP 类型缺失或设为不参与计划 | 查物料主数据的 MRP 类型、策略组、计划参数文件 |
| 计划订单交期全乱 | 工厂日历或计划日历没维护假期 | 检查日历设置和基本日期计划参数 |
| 需求数量翻倍 | 独立需求与销售订单没有按策略冲销 | 查策略组和策略定义,确认需求覆盖逻辑 |
| 例外消息过多或过少 | 例外消息参数配置不合理 | 调整例外消息组、计划时界和消息开关 |
| 供应商交货日期压不住 | 批量、舍入、补货提前期不合理 | 查采购提前期、批量规则、舍入值 |
| 计划订单无法转生产订单 | BOM 或工艺路线未维护 | 检查物料 BOM、任务清单、工作中心 |
5.2 计划做不准的五个根因
计划不准,通常不是 MPS 本身的算法问题。按我的观察,根因集中在五个地方。
一是需求输入失真。销售预测拍脑袋,又不定期跟实际销售核对,预测偏差自然传导到计划层。二是策略选择与业务不匹配。前面讲过的策略 10/20 问题属于这类,一错全错。三是主数据实时性差。BOM 变了、提前期变了,计划员不知道,系统算的当然不对。四是批量与安全库存参数没有随业务阶段调整,新品期与成熟期的参数应该不一样。五是例外消息无人处理,MPS 跑完就算完事,缺少闭环。
这五个根因里,最容易被忽视的是需求管理。很多企业没有真正做需求协同,预测全靠手工 Excel,进入 SAP 的只是一堆“孤岛数据”。不做需求治理,MPS 只能当一台算数机器,永远跳不出计划不准的怪圈。
5.3 一个多工厂计划的优化案例
我之前参与过一个跨区域制造企业的优化:总部有主计划团队,下面三个分厂各有自己的计划员。原先的状态是各厂跑各的 MPS,总部统筹完全依赖 Excel,数据来回抄,经常同一成品两个计划数量对不上。
我们做的核心动作有三步。第一步,打通需求输入,把总部预测统一录入 SAP 需求管理,分工厂、分产品线下发。第二步,把成品和关键半成品都设成 MPS 物料,在各工厂分别建立计划参数文件,时界按各厂产能和物料周期分别设定。第三步,建立“总部做主计划层、分厂做执行计划层”的二级计划体系,总部的 MPS 结果作为分厂 MRP 的独立需求来源。
这样调整之后的效果很明显:总部能提前六周看到产能缺口,分厂计划员每天上午集中处理 MPS 例外消息,下午执行采购与生产释放,整体计划联动性大幅提升,库存周转也比以前好了不少。这个案例给我最大的启发是:MPS 的优化往往不是动一个开关,而是把一个组织级流程重新理顺。
6. 给后来者的MPS实施与优化建议
6.1 上线前先把计划流程理顺
别急着配参数,先把业务计划流程完整画出来。谁提供预测,预测多久更新一次,计划员对哪些层级物料有决策权,生产现场能容忍多少天的计划冻结期,供应商最短交期是多长。这些问题全部理清楚之后,再决定 MPS 的层级、时界长度和策略组模板。
我见过太多项目反着来:先让顾问搭系统,再让业务去适应,最后计划员基本回到 Excel。上线前的“计划权责梳理”比任何配置都重要。这里可以引入一个机制:由业务部门自己定义哪些物料进 MPS、哪些直接进 MRP,IT 只负责把规则落实到配置。这个机制看起来土,却能让业务真正把 MPS 当成自己的工具。
6.2 日常运维的节奏与预期管理
MPS 上线不是一劳永逸的。它需要持续运营的节奏:每周看需求输入是否干净,每月复核安全库存和批量参数,每季度评估一次计划策略是否仍然匹配当前业务。同时,要有一名长期稳定的主计划员,这个人需要懂产品、懂产能、懂供应商,最好再懂一点 SAP 的计划逻辑。
现在很多企业迷信“全自动计划”,觉得上了系统、上了算法,计划员就可以撤了。我的观点是:自动化能处理掉 80% 的常规情况,剩下 20% 的异常——缺料、爆单、设备故障、供应商断供——还是得靠经验和人机协同。MPS 的价值恰恰在于把人的决策嵌在系统逻辑里,而不是让系统完全替代人。
6.3 我做MPS项目这几年的一点体会
做了这么多项目,最大的体会是:MPS 的业务价值上限,根本不取决于系统功能,而取决于计划员被赋予多大的业务判断权。配置只是在搭骨架,真正让 MPS 活起来的,是计划流程是否闭环、数据是否干净、业务规则是否被持续遵守。
最后分享一个小建议:如果你正在做类似的 MPS 项目,从一开始就让计划团队、销售团队和采购团队坐在一起,把张三的需求规则、李四的安全库存偏好、王五的批量习惯都聊透,再逐条翻译成系统语言。这个过程会比较磨人,但等到计划订单能稳定支撑起采购和车间时,你会发现一切都值。这个内容后续还可以往“MPS 与高级计划排程如何协同”的方向继续扩展,我下次找机会把那一层也拆开讲讲。