简介:SAP PP模块培训课件以112页PPT形式呈现,面向SAP入门者、生产计划与制造业务人员及顾问,用于搭建PP模块从组织架构到计划执行的完整知识框架。内容从SAP R/3模块概览切入,覆盖企业组织要素(集团、公司代码、工厂)、生产制造主数据(物料主数据、BOM、工作中心、工艺路线、成本核算中心)、主计划、需求管理、物料需求计划、生产控制与生产信息系统,并展开离散与重复生产概览、MRP运行原理、MRP1/MRP2视图关键字段、采购类型、批量关键字、计划时界、库存与能力计划等要点。课程目标涵盖了解SAP计划与控制流程、掌握PP主要功能与相关主数据、理解MRP运算及模块集成,对制造业、加工工业与供应链管理场景均有参考价值。压缩包内仅1个PPT文件,大小约4.89MB,章节清晰,便于按模块检索学习。已有296人学习关注,适合需要理解PP与MM、SD、FI/CO等模块集成逻辑,并对照制造企业实际场景查漏补缺的读者。
1. 从一张 112 页的 PPT 说起:SAP PP 模块到底解决什么问题
很多做 SAP 的人第一次接触 PP 模块,不是在生产车间,而是在一张培训 PPT 上。手里这份《SAP培训PP模块(PPT112页).ppt》就是典型的企业内训资料,覆盖从 R/3 模块总览、企业组织要素,到物料主数据、MRP 运行原理、生产控制和生产信息系统的完整链路。它的价值不在于能让你立刻上线一个工厂,而在于把 PP 模块的骨架一次性摊开给你看:物料主数据的 MRP 视图怎么配、BOM 和工作中心怎么串、计划订单怎么转成生产订单、车间里那张报工单最后会落到哪个成本对象上。
对刚转 SAP 顾问、或者从 MM、SD 转 PP 的人来说,最卡人的地方往往不是操作,而是不知道「为什么要这样配」。比如同样是物料需求,MPS 项目和 MRP 项目的计划策略完全不同;同样是批量,EX、FX、TB 三种批量关键字背后对应的是不同的采购和生产节奏。这份资料把 MRP1、MRP2、MRP3、MRP4 和工作计划视图逐层拆开讲,正好补上这块。下面按企业组织要素、主数据、MRP 原理、生产订单控制、生产信息系统这几块推演,能跟步骤走,也能看清参数边界。
2. SAP PP 企业组织要素与主数据结构的配置落点
SAP PP 的所有计划动作都挂在组织架构上,架构定错,后面 MRP 不管怎么跑都是错的。这份资料开头就把集团、公司代码、工厂三层定义列出来了,但真正要用,得理解每层在 PP 里管什么。
2.1 Client、公司代码、工厂三层在 PP 中的职责边界
集团(Client)是 SAP 组织机构最高层次,一套系统里所有数据都在这个层级下,跨 Client 传配置要靠请求号,这也是热词里「sap请求」被频繁搜的原因——PP 的定制配置大多数是跨 Client 的。
公司代码(Company code)是具有法定财务独立核算的单位,是财务处理中的最小组织单位。PP 看似不管钱,但生产订单一结算就要往 CO 模块走,公司代码决定了成本落在哪个账套。热词里的sap ko88增强、sap fico总账,本质都是 PP 结算的下游。
工厂(Plant)是 PP 里出现频率最高的组织单位,资料里的定义是「最低的财务评估区」。它能是生产厂、分销中心或仓库群,物理上或逻辑上都行。实际项目里常见的坑是:一个物料在 1000 工厂有 BOM,在 2000 工厂没有,MRP 跑出来只有一边有生产订单。这不是 MRP 的问题,是工厂级主数据没维护。
| 组织层次 | PP 中的作用 | 常见配置事务码 |
|---|---|---|
| Client | 配置与主数据隔离边界 | SCC4、SE01 |
| Company Code | 生产订单结算的财务归属 | OX02、OB62 |
| Plant | BOM、工艺路线、MRP 的作用域 | OX10 |
| Storage Location | 生产发料与收货的库存地点 | OX09 |
提示:工厂级的 MRP 参数和 MRP 区域(MRP Area)不是一回事。跨工厂调拨场景下,建议先确认到底用工厂级 MRP 还是 MRP Area,否则计划订单会重复。
2.2 生产主数据的五件套与物料类型
资料里明确列出用于制造计划与执行的主数据:物料主数据、物料清单(BOM)、工作中心、工艺路线、成本核算中心。这五样必须同时齐全,PP 才跑得动。
物料类型是主数据的第一道门。常见的有 ROH 原材料、HALB 半成品、FERT 成品、HAWA 贸易货物、NLAG 无库存物料、ERSA 经营供应。物料类型决定了:
- 物料用什么编号范围(内部/外部给号)
- 哪些视图必须维护(比如 FERT 必须有销售视图,ROH 必须有采购视图)
- 是否允许做生产订单(HALB、FERT 一般可以)
用 MM01 创建物料时,选择物料类型后视图是自动带出的,但很多顾问忽略一点:物料类型和工厂是联合校验的,同一物料在 1000 工厂是 FERT,在 2000 工厂可以维护成不同的采购类型。
创建完物料后,最常见的验证方式是查表:
-- 查物料主数据基本视图(MARA)与工厂视图(MARC)是否齐全 SELECT m.matnr, m.mtart, m.meins, c.werks, c.beskz, c.dispo FROM mara m JOIN marc c ON m.matnr = c.matnr WHERE m.matnr = '你的物料号' AND c.werks = '1000';这段 SQL 直接读底表,逻辑是:MARA 存物料基本视图(描述、计量单位、物料类型),MARC 存工厂级视图(采购类型 BESKZ、MRP 控制者 DISPO)。如果 MARC 里查不到记录,说明工厂视图没维护,MRP 一定跑不出结果。生产环境一般不给直接查底表,用 MM03 选「工厂」层级查看也一样,只是慢。
2.3 BOM、工作中心、工艺路线的关联顺序
正确顺序是先有物料,再有 BOM,再有工作中心,最后有工艺路线。因为工艺路线要引用工作中心,BOM 要引用组件物料。
BOM 用 CS01 创建,关键参数是「基本数量」和「组件数量」。基本数量表示这套 BOM 对应产出多少成品,比如基本数量 1000、组件 A 数量 500,意思是做 1000 个成品要 500 个 A。新手最容易在这里理解反,导致 MRP 算出来的需求量对不上。
工作中心用 CR01 建,关键字段是能力类别和公式。工艺路线用 CA01 建,挂在物料和工厂下,引用工作中心。三者建完后,可以用 CS03、CA03 逐层核对,也可以用事务码 CS12 做多层展开,看整棵 BOM 树。
3. 物料主数据 MRP 视图:从 MRP1 到 MRP4 与工作计划
MRP 视图像一条流水线,MRP1 到 MRP4 分别管不同维度的计划参数,工作计划视图管生产时间。跑 MRP 之前,这五个视图得像检查清单一样过一遍。
3.1 MRP1 视图的关键字段与批量关键字
MRP1 视图的核心就三四个字段,但每个都决定 MRP 结果:
- MRP 类型:MPS 项目是 M0,MRP 项目是 PD。M0 意味着这个物料进入主生产计划,由 MPS 单独跑;PD 则在 MRP 层面统一处理。
- 计划的时界:在这个时间范围内,MPS 的运行不会改变已经确定的主生产计划,用来给车间一个稳定期。
- MRP 控制者:物料需求计划责任人,SAP 用它做分析和统计,热词里的「sap md07」就是按 MRP 控制者出清单的常用报表。
- 批量类型:决定单个订单的批量大小。
批量类型是这个视图上最容易被低估的字段,常见的几种:
| 批处理关键字 | 含义 | 典型场景 |
|---|---|---|
| EX | 直接按批订货量 | 按净需求一次性下单 |
| FX | 固定批量 | 每批固定数量 |
| TB | 日批量 | 当天需求合并一批 |
| HB | 期间批量 | 按期间汇总 |
| WB | 周批量 | 按周汇总 |
选错批量类型,最直接的后果是库存积压或频繁小批量采购。EX 看似灵活,但在需求波动大的物料上会造成大量零散订单,发票和收货工作量翻倍。
3.2 MRP2 视图的采购类型与计划边际码
MRP2 视图重点在两个字段:采购类型和计划边际码。
采购类型:E 表示自制生产,F 表示采购。这个字段和 MARC 表的 BESKZ 一致,在物料创建时就要定。定成 E,MRP 生成的是计划订单,之后转生产订单;定成 F,MRP 生成的是采购申请。
自制生产时间、计划交货时间、GR 处理时间这三个时间字段共同决定 MRP 的倒排逻辑。系统从需求日期往前推,依次减掉这些天数,得出订单开始日期。这几个值设大了会提前下单,设小了会导致物料到不了位。
计划边际码决定生产前后的缓冲时间,是个关键字段但常被留空。留空的话系统用默认值,可能和生产实际节奏不匹配。
改这几个字段的方式,用 MM02 进入 MRP2 视图,通常不需要走 SAP GUI 全套,用批量维护工具更好:
" 用 BAPI 批量读取 MRP2 视图字段,便于核对当前配置 DATA: lt_mrp2 TYPE TABLE OF bapimatmrp2, lt_return TYPE TABLE OF bapiret2. CALL FUNCTION 'BAPI_MATERIAL_GET_DETAIL' EXPORTING material = '你的物料号' plant = '1000' mrp_area = '' TABLES mrp2_data = lt_mrp2 return = lt_return.这段 ABAP 调用逻辑是:BAPI_MATERIAL_GET_DETAIL按物料+工厂读取主数据明细,mrp2_data返回 MRP2 视图全部字段,return表里若有 E 类型消息说明物料或工厂不存在。参数说明:material是物料号,plant是工厂代码,mrp_area留空代表按工厂级取,若项目启用了 MRP Area,要填具体区域码。批量核对主数据时,用这个 BAPI 循环读一张物料清单,比一个个 MM03 快得多。
3.3 MRP3、MRP4 与工作计划视图的字段用途
MRP3 视图管策略组、可用性检查和提前期。策略组是个关键概念,它决定了需求从哪来——是销售订单驱动(MTO)还是库存驱动(MTS)。热词里sap pp相关的问题,一半以上最终会落到策略组上。
MRP4 视图管独立需求的传递、重复制造相关的字段。重复制造(Repetitive Manufacturing)场景下,这里配置决定产量如何往回冲销。
工作计划视图管生产时间、批量参数、超产/欠产容差。这里的时间数值直接参与 MRP 的倒排,比 MRP2 的字段更贴近车间实际节奏。
注意:改了工作计划的提前期之后,要重新跑一次 MD02 或 MD01,已存在的计划订单日期不会自动重算,需要按新的提前期做重排。
字段多不可怕,怕的是不维护。一个合格做法是:主数据上线前用事务码 MM60(物料清单报表)导出全部物料,按 MRP 类型分组,逐列核对 MRP1 到 MRP4 有没有空值。
4. MRP 运行原理与计划订单转生产订单的完整链路
MRP 是 PP 的心脏。很多人以为它是个黑盒,其实它的逻辑就四步:净需求计算、批量确定、倒排时间、订单生成。
4.1 MRP 净需求计算的四个输入
MRP 的净需求 = 毛需求 - 可用库存 - 已确认的收货 + 安全库存。这里的四类输入分别是:
- 毛需求:销售订单、独立需求(PIR)、相关需求(下层的依赖需求)
- 可用库存:非限制库存、质检库存是否算入要看配置
- 已确认收货:采购订单、生产订单的确认到货
- 安全库存:MRP2 视图维护,低于它要补货
用 MD03 对单个物料跑 MRP,用 MD02 可以跑带参数的单个物料,MD01 是全厂范围的计划运行。跑完后用 MD04 看库存需求清单,这是最常用的查询入口。
# SAP GUI 里没有命令行,但事务码可以用 /n 前缀直接跳转 /nMD01 # 全厂 MRP 运行 /nMD02 # 单物料多层级 MRP /nMD03 # 单物料单层级 MRP /nMD04 # 库存需求清单 /nMD07 # 按 MRP 控制者出需求清单这些事务码在 SAP GUI 命令框直接敲/n加代码就能跳。MD01 运行时注意「处理关键值」和「创建采购申请」这两个选项,处理关键值设为 NEU 表示重新生成,设为 NETCH 表示净变更计划,后者只处理有变化的物料,速度快很多,日常用 NETCH 就够。
4.2 计划订单到生产订单的转换与结算
MRP 跑出来的结果如果是自制物料,会生成计划订单(Planned Order)。计划订单要转成生产订单才能执行,转换方式有两种:
第一种是手动单个转换,事务码 MD11 改计划订单,或 MD04 里直接选行转换。 第二种是自动转换,在后台配置里设置计划订单的自动转换参数,或用 MD02 的「计划订单转生产订单」选项。
转成生产订单后,生产订单号进入 CO 模块,生产订单的成本归集和结算就用事务码 KO88 或 KKS1 做差异计算。热词中sap ko88 增强之所以被搜,往往是因为 PP 结算环节需要做增强,把标准成本差异按自定义口径拆分。
生产订单的关键操作链路:
| 步骤 | 事务码 | 作用 |
|---|---|---|
| 计划订单转换 | MD11 / MD04 | 生成生产订单 |
| 下达生产订单 | CO02 或菜单「下达」 | 允许发料和报工 |
| 领料 | MIGO 261 | 消耗组件库存 |
| 报工确认 | CO11N | 记录工时和产量 |
| 收货 | MIGO 101 | 成品入库 |
| 结算 | KO88 / KKS1 | 成本归集与差异 |
领料和收货的移动类型要提前配好。261 是生产订单发料,101 是生产订单收货,这两个移动类型背后是自动记账科目,配错了物料账会乱。
4.3 常见 MRP 无结果排查顺序
MRP 跑完 MD04 一片空白,是最高频的求助场景。按下面顺序查,基本能定位:
- 物料在 MARC 表里有没有工厂视图记录,没有就 MRP 完全跳过。
- MRP 类型是不是 ND(无计划),ND 是不参与计划的。
- 有毛需求吗?PIR 或销售订单的日期是不是在 MRP 计划区间外。
- 工厂是不是在计划运行的范围里,MD01 会带出计划范围限制。
- 是否有冻结的 MRP,检查 MRP1 视图的计划文件字段。
-- 查物料是否存在未清的可用库存,为何 MRP 不补货 SELECT matnr, werks, lgort, labst, insme, speme FROM mard WHERE matnr = '你的物料号' AND werks = '1000';MARD 表存的是库存地点级库存。LABST 是非限制使用库存,INSME 是质检库存,SPEME 是冻结库存。如果 LABST 已经满足净需求,MRP 自然不生成新订单。很多人误以为 MRP 坏了,其实是库存足够。
5. 生产控制、生产信息系统与 PP 集成边界
PP 不是孤岛,它一头连着 MM 的采购和库存,一头连着 CO 的成本,中间还要向 SD 交付成品。培训 PPT 里单独有一页讲「PP 与其它模块的相关集成」,实际项目里这部分才是最容易出问题的地方。
5.1 生产订单状态管理与 CO11N 报工
生产订单的状态是流程的开关。常见状态:
- CRTD 创建:订单已存在,未下达,不能发料和报工
- REL 已下达:可以发料和报工
- TECO 技术完成:订单不再有后续活动,但差异还能结
- CLSD 关闭:成本结算完成,结算后不应再改动
报工用 CO11N,关键输入是「产量」和「工时」。报工会自动反冲组件(如果配置了自动反冲),也会生成工时确认文档。热词里sap im cycle count 冻结库存、sap migo检查导致物料锁定这类问题,多有在报工/发料环节出现物料锁定引发流程卡住的场景。排查方法是用 MB5B 查库存移动历史,看有没有异常。
反冲物料要提前在工作中心或物料主数据里配好反冲标识,否则 CO11N 报工时不会自动发料,只能回去 MIGO 手动 261。
5.2 生产信息系统的标准报表组合
资料里最后一块是生产信息系统。SAP 标准里几个核心报表:
| 报表 | 事务码 | 用途 |
|---|---|---|
| 库存需求清单 | MD04 | 单物料 MRP 全景 |
| MRP 控制者清单 | MD07 | 按责任人汇总 |
| 计划订单清单 | MD16 | 批量看计划订单 |
| 生产订单信息 | COOIS | 多条件筛生产订单 |
| 工作中心负荷 | CM01 | 能力负荷分析 |
热词里的sap mdvp也是个查询入口,用来查 MRP 的运行结果日志,MD01 跑完后如果没生效,MDVP 能看过程。
COOIS 是日常最常用的报表,筛选条件包括工厂、订单类型、系统状态、日期范围。它的用途远不止看订单,还能直接跳转到订单变更、结算。熟练的人会把常用筛选条件存成变式,下次一键调用。
5.3 PP 与 MM、SD、CO 的数据传递点
PP 和 MM 的接口在物料主数据和采购:PP 生成的采购申请直接进「sap mm」的采购流程,MRP 需求的货源清单维护也在这里。热词中「SAP 必须维护货源清单才能创建采购订单」就是典型的 MM 配置影响 PP 流程的情况。
PP 和 SD 的接口在成品可用性:MTS 场景下,销售订单会触发可用性检查,检查结果反过来影响生产计划的优先级。
PP 和 CO 的接口在生产订单成本:订单发料、报工、收货都会生成成本行,最后用 KO88 结算差异。整个链条错一环,成本就废了。
因此一个实用的集成检查方法是:拿一个物料,从 PIR 维护、MRP 运行、计划订单转换、生产订单下达、领料报工、成品收货到最后结算,完整走一遍,记录每个环节的凭证号和对应的事务码。这条链路走通一次,比看十遍 PPT 都管用。
6. 用 MD04 反向验证 MRP 配置:一个能落地的排查套路
真正让 PP 顾问成长最快的,不是背下 MRP1 到 MRP4 的字段名,而是学会用 MD04 反向验证整条配置链。MD04 的库存需求清单里每一行都带一个「元素类型」,比如 PIR 独立需求、PldOrd 计划订单、ProdOrd 生产订单、PoItem 采购订单、Stk 库存。元素类型后面跟着 MRP 控制器决定它怎么被处理。
我一般用这套反向验证法:
第一步,在 MD04 里看当天的库存是否够用。如果够了但仍有计划订单,检查是不是有安全库存或者批量类型的下限值在做怪。EX 批量遇到净需求为负也会生成最小批量。
第二步,把日期网展开。MD04 里可以用设置把计划区间拉长,看未来几个月有没有需求没被覆盖。常见情况是 PIR 的日期在计划区间之外,系统不管。
第三步,核对批量与提前期是否匹配。如果计划订单的开始日期是过去,说明提前期设大了或者库存策略不对,需要回 MRP2 和工作计划视图改字段,然后重跑。
" 用 MD04 相同的数据源做一次批量校验:读取 MRP 清单数据 DATA: lt_mdpsx TYPE TABLE OF mdpsx. CALL FUNCTION 'MD_STOCK_REQUIREMENTS_LIST_API' EXPORTING matnr = '你的物料号' werks = '1000' plscn = '000' berid = '' TABLES mdpsx = lt_mdpsx EXCEPTIONS material_plant_not_found = 1 no_plant_data = 2. " 遍历 lt_mdpsx,按 DELB0(元素类型)分组统计 LOOP AT lt_mdpsx INTO DATA(ls_row). WRITE: / ls_row-delb0, ls_row-dat01, ls_row-plnmg. ENDLOOP.这段 ABAP 调MD_STOCK_REQUIREMENTS_LIST_API,输入物料、工厂和计划范围,返回的mdpsx内表就是 MD04 背后的数据。delb0是元素类型,dat01是需求日期,plnmg是计划数量。批量读多个物料,按delb0分组统计,就能自动发现「某类元素异常多」的物料,比人工翻 MD04 效率高一个数量级。
注意:这个 API 对物料号和工厂的校验很严格,参数传空会抛异常,循环调用时一定要捕获
material_plant_not_found,避免整个程序挂掉。
再补一个经常被忽略的点:MD04 的显示结果和「计划文件条目」有关。如果 MRP 跑了之后 MD04 没变化,先确认物料是不是被锁定了计划文件条目。用 MD05 或 MD06 查看计划文件条目列表,能定位哪些物料根本没被 MRP 处理。把 MD04 当成结果面板,把 MDVP、MD05 当成过程日志,两个对照着看,MRP 的问题基本没有定位不了的。
本文还有配套的精品资源,点击获取