干这行十几年被问得最多的 SAP 问题之一就是“PP 模块到底怎么入门”“PP 和 MM/SD 到底怎么扯到一起的”。每次遇到这种问题我都特别理解。PPProduction Planning生产计划这个模块在 SAP 里属于典型的“看起来只是排产实际上一头连着销售订单一头连着采购收货中间还牵动财务结算”的中枢型模块。很多刚入行的顾问或企业内部的关键用户往往被 MRP 跑出来的海量例外信息、各种移动类型、订单状态变化搞得一头雾水。这篇内容我打算从一个完整项目实施的视角把 SAP PP 模块从头到尾拆一遍。不讲空泛的概念只讲你会在项目里真实遇到的东西主数据怎么搭、MRP 怎么跑、生产订单怎么做、跟其他模块的接口怎么对以及那些年我们踩过的坑。不管你是刚转行做 SAP 顾问还是在企业里当 PP 关键用户或者是做 ABAP 开发想了解业务背景这篇都能给你搭出一个可落地的框架。1. PP 模块整体定位一套计划体系管住“造什么、造多少、什么时候造”很多人一上来就盯着 SRM、MES 这些系统问却忽略了一个事实SAP PP 模块是整个制造业信息化的“大脑中枢”。它不是简单地录一张生产订单而是一整套从需求预测到车间执行的闭环计划体系。1.1 为什么 PP 是制造企业的中枢模块我们可以把 SAP 想象成一家工厂的数字孪生。销售模块SD接收到客户订单后会产生一个“需求”PP 模块拿到这个需求结合现有库存、在途采购、计划独立需求通过 MRPMaterial Requirements Planning物料需求计划运算得出“什么时候该生产什么、什么时候该采购什么”物料需求传给 MMMaterial Management物料管理模块形成采购申请或计划协议生产任务下达到车间后又通过报工、收货把信息回传给 PP同时把成本归集到财务模块FICO。这个链条里PP 处于绝对的中间位置。它既消费上游数据销售预测、销售订单又产生下游指令采购申请、生产订单、生产汇报。这就是为什么 PP 顾问不能只懂排产还必须懂 MM 的移动类型、SD 的交货计划、FICO 的成本结算逻辑。1.2 PP 模块解决的三个核心问题本质上PP 模块干的事情可以收敛成三个问题造什么这由需求管理和主数据决定。你的销售订单、预测、安全库存决定了工厂要生产哪些物料号。造多少这由 MRP 运算逻辑决定。综合考虑库存、在途、已有生产订单/采购订单计算出净需求再按批量规则转成计划订单。什么时候造这由提前期Lead Time排程、工作日历、工艺路线中的工时决定。计划订单按倒排或顺排的方式确定开工/完工日期。这三件事一旦能闭环企业的“产供销协同”就有一个系统级的底座。而这三件事分别对应 PP 的三大核心数据物料主数据Mater Data、BOMBill of Materials物料清单、工艺路线Routing。1.3 三个计划层面从战略到执行怎么落PP 模块的计划体系不是一层而是三层递进顶层是 SOP销售与运营计划对应于 SOP 事务码做的是中长期产能规划通常以产品组为单位不跑 MRP主要用于年度/季度产能平衡。中间层是 MPS主生产计划针对成品或关键物料单独跑 MRP对应事务码 MD40/MD41/MD42。这一层会把销售预测转化为可执行的成品/半成品生产计划。底层是 MRP 层对所有物料进行需求展开直接生成计划订单或采购申请。这三层计划在项目实践中很容易被搞混。我见过不少项目把 SOP 和 MRP 混在一起跑结果计划员面对爆炸式的工作量毫无头绪。正确的做法是成品层用高层次的计划策略如 MTS、MTO中间半成品和原材料用 MRP 自动展开让系统替你干活而不是你替系统干活。2. 主数据先行PP 能不能跑起来七成看主数据做 PP 项目上线前最累的不是配 IMGImplementation Guide配置项而是洗主数据。我经常跟客户说配置只是把规则告诉系统主数据才是系统的“血液”。2.1 物料主数据PP 视图里的关键字段一个物料需要在 MM01/MM02 里维护多个视图。对 PP 来说最核心的是 MRP1~MRP4 视图和工作计划视图。MRP1 视图MRP 类型如 PD 是自动计划ND 是不计划、批量过程如 EX 是期间批量PK 是手动批量、MRP 控制者、批量大小。这里最关键的是 MRP 类型和 MRP 控制者前者决定物料是否参与 MRP 运算后者决定需求计划归谁管。MRP2 视图采购类型E 自制、F 外购、X 两者皆可、批量大小、计划交货期、收货处理时间、安全库存、生产存储地点。如果这里设错了比如本来该外购的物料设成自制MRP 会跑出自制计划订单你去 MIGO 收货时就会发现问题。MRP3 视图策略组。这是 PP 顾问必须亲自盯的字段它决定了计划策略按库存生产还是按订单生产和可用量检查方式。工作计划视图在生产场地、生产管理员、默认值、关键件标识等。这块容易忽略但影响生产订单下达时的默认设置。2.2 BOM 与工艺路线PP 展开的“骨架”和“肌肉”BOM物料清单是 PP 展开的骨架它告诉系统“一个成品由哪些组件构成、各用多少”。CS01/CS02/CS03 是维护 BOM 的常用事务码。在项目实践中BOM 有几个容易出问题的地方BOM 用途一般生产用用途 1工程设计用 2。如果只维护了工程 BOM生产订单展开时就会显示“无 BOM”。替代 BOM不同批次、不同有效期可以用替代 BOM但配置复杂如果业务上不是必须我建议第一版先不做否则展开逻辑容易失控。数量单位一个常见坑是 BOM 里组件的基本单位和小数位不一致导致 MRP 跑出极不合理的小数数量。上线前要有专门的数据检查程序。工艺路线Routing是 PP 的肌肉它告诉系统“生产这个物料需要经过哪些工序、每道工序在哪个工作中心做、需要多少工时”。CA01/CA02/CA03 是维护工艺路线的事务码。工艺路线里最核心的是工序Operation第 10 道工序、第 20 道工序至少要有两道系统才能区分产线流转。工作中心Work Center对应实际的生产线或设备组定义产能、标准值码、成本中心。标准值Standard Value机器时间、人工时间、准备时间等。这些值不仅用于排程还用于成本核算。2.3 工作中心与产能排程参数工作中心CR01/CR02/CR03是 PP 和产能、成本挂钩的关键主数据。它有三个视图基本数据视图描述、用途、能力视图产能类别、可用产能、成本核算视图成本中心、作业类型。实操中经常忽视的是能力视图里的“产能公式”和“可用产能”。比如一条产线一天工作 8 小时可用产能就是 8 小时但如果你设置了 24 小时系统在产能评估时会认为永远富余产能利用率报表就没意义了。成本核算视图里的成本中心和作业类型是后续结算到 FICO 的依据这两个字段如果没维护CO03 看生产订单成本时会发现一片空白。3. 计划层的核心操作需求管理、MRP 运行与计划策略主数据清干净后才能真正开始 PP 的核心工作——计划。这一层是把“卖得出去”变成“造得出来”的转化器。3.1 需求管理从预测到主计划的衔接口需求管理Demand Management是 PP 和 SD 之间的桥梁。它处理的对象是“计划独立需求PIRPlanned Independent Requirement”事务码是 MD61创建和 MD62修改。计划独立需求可以理解为“没有客户订单时的计划需求量”。它由销售预测数据导入可以是按产品组维护也可以按单个物料维护。关键在于需求类型和计划策略的设置——如果策略组设置的是 10按库存生产MTSMRP 会把 PIR 当作需求来源如果策略组是 20按订单生产MTOMRP 更看重销售订单而忽视 PIR。MD07 是物料需求清单Stocks on Hand / Requirements它能把单个物料的需求、收货、可用量汇总成一张库存/需求清单。计划员日常盯 MD07几乎能看到所有计划层面的异常短缺、逾期、过剩全都列在上面。3.2 MRP 运行的核心逻辑与常用事务码MRP 运行的核心事务码是 MD01批量运行所有物料、MD03单物料运行、MDVP/MDVBMRP 清单查询。比事务码更重要的是理解 MRP 的内部逻辑MRP 的基本运算公式是毛需求 独立需求 相关需求如销售订单、上级 BOM 展开量可用库存 现有库存 计划收货在途采购、生产订单 - 安全库存净需求 毛需求 - 可用库存若为正数则需要生成计划订单/采购申请举个例子某成品现有库存 100 件销售订单需求 500 件在途采购 200 件安全库存 50 件。则净需求 500 - 100 - 200 50 250 件系统会生成一张生产 250 件的计划订单。如果 MRP 类型是 PD运行后自动生成计划订单如果 MRP 类型是 VB手动再订货点则只有库存低于安全库存时才触发需求。这里有一个项目中的高频坑MRP 控制者必须分配给具体人员否则异常信息没人处理。MRP 清单里的例外信息会用 01~99 编号如 09 表示物料已过期、10 表示逾期需求、20 表示收货日期早于需求日期计划员必须逐条跟进。3.3 计划策略MTS、MTO、ATO 怎么选计划策略是 PP 的灵魂配置。策略组Strategy Group在物料主数据 MRP3 视图中设置常见的有10按库存生产MTS成品的需求由计划独立需求驱动产成品入库到仓库接到客户订单后再发货。适用于标准化产品。20按订单生产MTO成品的需求由销售订单直接驱动MRP 展开后生成的生产订单可以关联到销售订单行项目。适用于定制化产品。40最终装配按订单生产半成品或组件按库存或预测生产最终成品按客户订单装配。适用于模块化产品。为什么策略组这么重要因为它决定了销售订单是否参与 MRP 运算。MTS 场景下如果销售订单也参与了需求展开就会出现“预测需求 实际订单需求”双重计算导致重复生产。MTO 场景下如果销售订单没有传递到 MRP又会出现等你发现缺料时已经来不及生产的情况。所以策略组一定要跟业务部门反复确认而且每个战略物料都要单独核对。4. 执行层的实操重点生产订单、投料、报工与移动类型计划层搞定后落地的就是执行层。执行层的核心对象是生产订单Production Order。4.1 生产订单的全生命周期管理生产订单的创建事务码是 CO01修改 CO02查看 CO03。一张生产订单从生到死大概经过这么几个状态CRTD已创建、REL已下达、PCNF部分确认、CNF已确认、DLV已交货、TECO已技术完成、CLSD已关闭。实操中要特别留意“技术完成TECO”这个动作。生产订单报工完成后系统不会自动关闭订单需要手动做 TECO事务码 CO02 里操作或者用 COHV 批量处理。如果不做 TECO后续的结算、差异分摊都会有问题。生产订单下达Release是执行开始的关键节点。下达后系统才会允许投料、报工、收货。4.2 移动类型的选择逻辑261 投料、101 收货、521 副产品生产订单执行中最常用、最容易搞错的就是移动类型。261生产订单投料Goods Issue for Production Order。从原材料库存发到生产订单库存减少生产订单成本增加。注意投料数量必须与 BOM 或订单用量一致否则会产生差异。101采购订单收货Goods Receipt for Purchase Order。原材料到货后入库对应财务上是库存增加、应付暂估。101 也可以用于生产订单收货GR for Production Order。区别在于参考凭证是采购订单还是生产订单。生产订单收货后库存增加同时冲减生产订单成本。521 这个移动类型是副产品/联产品收货By-product/Co-product GR。在化工、制药行业特别常见某个工序产出主产品的同时也产出副产品副产品收货时用 521 或 531按订单收货这批物料会以评估价格进入库存同时冲减生产订单成本。很多刚开始做 PP 的顾问看到 521 就懵其实你只要记住主产品收货用 101参考生产订单副产品收货用 521/531投入物料用 261/262就基本不会错。4.3 序列号管理与批次追溯序列号管理是 PP 执行层容易被忽视但极其重要的功能。制造业做质量追溯、售后跟踪都离不开序列号。SAP 里序列号的配置通常涉及“序列号参数文件”Serial Number Profile在物料主数据或订单类型里指定。实操中要注意的是序列号的分配时机。如果计划员在下达生产订单时就要确定序列号可以在订单下达后通过事务码 IQ02/IQ03 分配如果是在完工收货时录入则在 MIGO 收货时打开“序列号”页签逐条录入。这里有个项目上的经验序列号录入一定要有扫码枪方案否则人工敲 20 位序列号出错率极高效率也极低。批次追溯Batch Traceability在医药、食品行业是刚需需要通过启用批次管理Batch Management、设定批次确定策略Batch Determination来实现。5. PP 的跨模块集成与 MM、SD、FICO 的联动机制前面讲过PP 之所以难是因为它要跟其他模块联动。这一章我拆解几个最常见的联动场景。5.1 PP 与 MM物料供应、STO 与 JIT 计划协议MM 为 PP 提供物料保障。最典型的联动是MRP 跑出来的采购申请PR自动转成采购订单PO由 MM 采购员处理。“货源清单”Source List和“配额安排”Quota Arrangement会影响系统自动选择供应商的逻辑。STOStock Transport Order库存转储订单在公司间或工厂间调拨中非常常见。比如工厂 A 缺料工厂 B 有库存可以通过 STO 把货调过去。在 PP 视角下STO 本身不直接产生生产订单但它会对两个工厂的库存、需求产生影响。带调拨单的 STO两步 STO还会在发货方产生 643/645 之类的移动类型在收货方产生 101 收货。JITJust In Time在 SAP MM 采购计划协议中常用于汽车行业。如果 MM 里配了 JIT 交货计划Delivery SchedulePP 的生产需求会通过计划和预测交货计划传递给供应商供应商按计划送货。这里 PP 顾问要关注的是JIT 计划是基于 PP 的需求展开后发布给 MM 的。5.2 PP 与 SDATP 检查与按单生产SD 给 PP 输入需求PP 反过来也会约束 SD 的交货承诺。这里面最核心的机制是可承诺量ATPAvailable to Promise检查。当销售订单创建时SD 会调用 ATP 逻辑检查可用库存。ATP 检查可以按“库存 计划收货 - 销售需求”的方式计算可用量。这里有一个 PP 相关的配置点在定义 ATP 检查规则时可以选择“是否包含计划订单”。如果包含计划订单那么即使当前没有实际库存只要 MRP 已经跑出了计划订单系统也会认为“未来有货”销售就可以承诺交期。5.3 PP 与 FICO成本收集、结算与 KO88/CO88PP 和 FICO 的集成是很多 PP 顾问的弱区但又是项目里绕不开的。生产订单的成本主要由三部分构成材料成本投料时自动归集、作业成本报工时按作业类型分摊、制造费用通过成本核算单或作业类型分配。生产订单的结算分为两种单个结算KO88对单个内部订单或生产订单结算。批量结算CO88对一批生产订单进行集中结算。月结前通常用 CO88 把所有技术完成但没有结算的订单一起结算掉。这里有个特别需要注意的点如果生产订单没有完工期末还有在制品WIP那么结算时不会把全部成本结转到产品而会留在 WIP。只有订单被 TECO 后系统才把剩余差异全部结转到材料成本差异科目。凭证分割Document Splitting在 S/4 HANA 里是默认启用的功能它的作用是让会计凭证能按段Segment字段产生多行以满足多维度报表需求。PP 顾问不需要写 FI 的借贷分录但你要知道生产订单的收货、投料凭证会被按科目、利润中心拆分。如果物料主数据里利润中心维护错了凭证分割后报表数字就会错位这是月结时最头疼的问题之一。6. 日常运维常见问题排查与效率工具项目上线不是结束运维才是常态。我这边整理几个 PP 日常运维里最高频的“鬼见愁”问题以及对应的排查思路。6.1 MIGO 报错物料锁定的处理流程“物料 XXX 被用户 YYY 锁定”是车间操作员最常遇到的报错。原因很简单另一个会话正在处理这个物料如在 MIGO 里做收货未保存系统为了防止并发冲突就锁住了物料。排查方法是用事务码 SM12 查看当前锁对象找到锁定用户和锁定时间。如果锁定已经存在很久可以直接在 SM12 里删除锁但要确认对方确实已经不再操作。如果锁定反复出现十有八九是某台电脑上有个 MIGO 界面一直挂着没退出让使用者把界面关掉即可。6.2 权限控制PFCG和脚本录制/回放PFCG 是 SAP 权限角色维护的事务码。PP 顾问在项目上线时就要配合 BASIS 和权限顾问把计划员、车间操作员、生产主管等角色对应的权限梳理清楚。常见的问题是“用户说系统报错没权限”这时可以通过事务码 SU53 查看当前用户缺失的权限对象然后把权限对象加到角色里即可。关于脚本录制Script Recording和回放SAP GUI 自带录制功能菜单栏“系统”→“列表”→“导出”附近有“录制和回放”也可以用事务码 SHDB 录制 Batch Input 脚本。对 PP 来说最常用的场景是批量修改物料主数据或批量下达生产订单。如果你经常要做重复性操作我强烈建议学一下 SHDB效率能提升一个档次。6.3 生产计划相关常见问题速查表问题现象可能原因排查思路MRP 没跑出计划订单物料未启用 MRPMRP 类型设置错误或 MRP 控制者为空检查 MM02 MRP1 视图的 MRP 类型和 MRP 控制者计划订单无法转生产订单BOM/工艺路线缺失或生产版本未维护用 CS03 检查 BOMCA03 检查工艺路线C223 检查生产版本生产订单无法收货订单状态不是 REL已下达CO02 里下达订单或检查是否已完成 TECOMIGO 投料时提示“物料在工厂中未维护”物料主数据的工厂视图缺失用 MM01 扩展工厂视图生产订单结算后仍有大量差异未做技术完成或未做 CO88 批量结算先 TECO再运行 CO88521 收货后成本不对副产品评估价格设置不合理检查物料主数据会计视图的价格或检查 BOM 中副产品行项目的“联产品”标识6.4 性能优化与事务码小技巧PP 相关的事务码在数据量大时容易卡顿。比如 MD01 全厂物料跑 MRP在大规模工厂可能跑好久。这个有两个优化方向一是把跑 MRP 的物料按 MRP 组、MRP 控制者拆分任务用后台作业分批次执行二是定期归档已关闭的生产订单减少 CO03 查询和 MRP 展开的数据量。看 MRP 结果时如果 MD04 界面数据太多可以用布局Layout功能保存自己的视图把不关心的列隐藏起来。这里分享一个我自己的实践我习惯在 MD04 布局里加一列“例外信息”并在筛选条件里设置“只显示有例外信息的行”这样几百行物料立即缩减到几十行计划员一眼就能看到真正需要处理的问题。最后再分享一个关于 S/4 HANA 的体会。现在的 PP 模块在 S/4 里很多事务码运行方式都变了比如 MD01 变成了 MD01NMRP 实时集成是标配。但底层逻辑没有变主数据清干净、策略设置对、异常信息有人盯这个三角做到位PP 系统就稳了。我见过太多项目上线前配置轰轰烈烈上线后没人看 MRP 清单结果系统跑出来的全是垃圾数据最后还怪 SAP 不好用。其实 SAP 只是一个工具工具好不好用很大程度上取决于你愿不愿意花时间去理解它、维护它。这套逻辑放在 PP 模块里再合适不过。