
简介这份PPT文档围绕SAP-ERP四大核心模块展开主要面向SAP实施顾问、ERP项目经理、企业数字化负责人以及希望理解SD、PP、PM、QM功能边界的学习者。资源包仅含1个PPT文件大小约9.31MB共124页以结构化胶片覆盖销售与分销、生产计划、设备管理、质量管理解决方案适合用于售前宣讲、内部培训或项目启动铺垫。内容从销售订单管理、发运处理、发票处理、可用性检查、定价与信贷检查等业务场景切入并延伸到组织架构、销售方式、合同管理及跨模块协同帮助读者看清SAP在制造与贸易企业中的落地逻辑。文档既有模块功能定位也有流程示意与业务案例可作为顾问梳理业务要点的参考也可帮助企业人员理解系统支撑能力、发现深化应用方向。已有618人学习整体兼顾体系化与可读性是一份值得收藏的SAP模块方案综述。1. SAP-ERP 的 SD、PP、PM、QM先解决的是边界问题做 SAP 实施最怕遇到“四个模块各出各的方案”。SD 销售订单进车间之后PP 觉得可用性检查不是自己范围PM 维修工单消耗的备件被 QM 的质量检验卡住后没人跟进最后上线时接口职责不清联合报表怎么也提不出数。标题里“SD、PP、PM、QM 解决方案”这种 124 页 PPT本质上不是四个模块的截图合集而是把 SAP-ERP 中销售、生产、维护、质检四条线的主数据、流程事件和集成点先固定下来。它适合售前架构师做范围拆分也适合模块顾问和信息化经理在关键节点评审时按图索骥。2. SD、PP、PM、QM 的共用主数据和组织架构先定数据再定流程2.1 组织元素按“责任主体”分配而不是按模块分配在 SAP-ERP 中销售组织VKORG、分销渠道VTWEG是 SD 的主导工厂WERKS是 PP、QM 的执行边界维护工厂与计划工厂决定 PM 的对象归属。组织架构不能只画盒子要画“谁维护哪个工厂的哪类订单”。比如同一个工厂同时被 PP 和 PM 使用物料主数据的工厂视图就必须同时服务于生产报工和维修发料。组织元素SDPPPMQM常见错误销售组织/分销渠道销售订单、交货、开票默认值不直接使用不直接使用不直接使用在 PP 订单中挂销售组织导致权限多出一层工厂发货工厂、可用性检查范围生产与 MRP 工厂维修对象归属工厂检验范围覆盖工厂同一工厂多套工艺路线未做参数细化存储地点发货仓原材料/产成品库备件库冻结/质检库存PM 发料未建默认备件库工单发货报错维护工厂不使用不使用功能位置/设备主数据归属可关联检验范围把设备直接挂在成本中心忽略维护工厂这个表格是我做方案时先填的第一张表。它不替代 CO 组织的设计但能暴露“一个备件到底挂在哪个工厂、哪个存储地点”这种最基础的问题。凡是 SD、PP、PM、QM 共用对象在组织架构这一层就要把负责人定下来否则后面每一张订单都会回到这里吵架。提示组织架构调整成本远高于主数据调整。先确定“工厂存储地点维护工厂”组合再谈流程能省掉后续大量重工。2.2 物料主数据要按“视图组合”建而不是按模块各建各的物料主数据在 SAP-ERP 里不是一条记录而是 MARA基本数据、MARC工厂视图、MARD存储地点以及销售、生产、维护、质量扩展视图的组合。很多项目只开了 SD 的销售视图和 PP 的 MRP 视图到了 PM 要建备件才发现维护视图没开工单里选不了料QM 视图没开检验计划挂不上去收货物料无法触发检验批。常见做法是四个模块先各交一份字段清单由物料主数据管理员统一用 MM01/MM02 创建。我一般会再补一个简单的 ABAP 体检程序检查物料在指定工厂的视图是否齐全避免上线前一天批量补主数据。PARAMETERS: p_matnr TYPE mara-matnr OBLIGATORY, p_werks TYPE marc-werks OBLIGATORY. SELECT SINGLE matnr FROM mara INTO DATA(lv_matnr) WHERE matnr p_matnr. IF sy-subrc 0. WRITE: / 物料不存在, p_matnr. EXIT. ENDIF. SELECT SINGLE matnr, werks, dispr, disgr FROM marc INTO DATA(ls_marc) WHERE matnr p_matnr AND werks p_werks. IF sy-subrc 0. WRITE: / 工厂视图已创建MRP组, ls_marc-disgr. ELSE. WRITE: / 工厂视图缺失PP/PM/QM 无法识别该物料. EXIT. ENDIF. SELECT SINGLE lgort FROM mard INTO DATA(lv_lgort) WHERE matnr p_matnr AND werks p_werks. IF sy-subrc 0. WRITE: / 存储地点, lv_lgort, 存在. ELSE. WRITE: / 没有存储地点发料前必须先补 MARD. ENDIF.逻辑说明第一段查 MARA 确认物料主记录存在第二段查 MARC 确认工厂视图和 MRP 参数第三段查 MARD 确认至少有一条存储地点记录。p_matnr 是物料号p_werks 是工厂。程序不修改数据只输出结果适合在 SE38 中执行也可转成后台报表做全量扫描。输出中如果“工厂视图”或“存储地点”缺失就说明该物料没有进入 PP/PM/QM 的可选范围。2.3 BOM、工艺路线、功能位置与设备主数据是四个模块的中枢PP 的 BOM物料清单和工艺路线决定“按什么制造”PM 的功能位置IFLOT和设备EQUI决定“在哪儿维护、维护哪台设备”QM 的检验计划头PLKO和检验计划操作PLPO决定“每个工序检什么”。这四类主数据看似分属不同模块实际都绑定到物料或对象编码上。常见错误是 PP 顾问把生产 BOM 建得很完整PM 设备主数据里却没有“装配 BOM”维修工单发料时看不到备件。另一个常见问题是 QM 检验计划使用用途与 PP 工艺路线不一致。PP 工艺路线里带检验工序QM 又单独挂一套检验计划两处标准不同最后只能用 QM 的标准覆盖 PP业务人员很难接受。我一般会在方案里用主数据关系图先画一遍物料 - BOM - 工艺路线 - 检验计划 - 功能位置 - 设备每个箭头都标出负责模块。这样再往下讨论 SD 销售订单如何触发生产PM 工单如何触发检验才有共同语言。3. 从销售订单跑到维修工单SD、PP、PM、QM 的流程集成3.1 SD 销售订单到 PP 计划订单ATP 和计划策略先把数据喂对SD 销售订单创建后会做 ATP 可用性检查检查结果来自工厂库存和计划接收量。很多项目把 ATP 只看成 SD 的检查逻辑实际上是 PP 的 MRP 结果在支撑。如果 MRP 没跑或者计划策略不对SD 看到的可用量永远是空。方案设计时先定三个参数计划策略MTS 常用 10MTO 常用 20、可用性检查规则用总需求还是纯库存、检查范围工厂级还是存储地点级。这三个参数不统一SD 提交的销售订单无法正确触发 PP 计划订单。例如计划策略 20 下必须维护需求类型和“无 BOM 展开”的限制否则 MRP 拿不到组件需求车间排产自然缺料。3.2 PP 生产订单触发 QM 检验批何时生成、如何关联当生产订单下达或工序完成时物料主数据 QM 视图中分配的检验计划和 QM 控制码决定是否自动生成检验批QALS。检验批上的 KDAUF/KDPOS 记录销售订单号AUFNR 记录生产订单号。运维时要把三个号码串起来看下面这段 ABAP 就能做到TYPES: BEGIN OF ty_qals_report, prueflos TYPE qals-prueflos, matnr TYPE qals-matnr, werk TYPE qals-werk, vdatu TYPE qals-vdatu, sales_order TYPE vbak-vbeln, prod_order TYPE afko-aufnr, END OF ty_qals_report. DATA: lt_report TYPE TABLE OF ty_qals_report, lv_prueflos TYPE qals-prueflos. PARAMETERS: p_prueflos TYPE qals-prueflos OBLIGATORY. SELECT qals~prueflos, qals~matnr, qals~werk, qals~vdatu, vbak~vbeln AS sales_order, afko~aufnr AS prod_order FROM qals LEFT OUTER JOIN vbak ON vbak~vbeln qals~kdauf LEFT OUTER JOIN afko ON afko~aufnr qals~aufnr INTO TABLE lt_report WHERE qals~prueflos p_prueflos. IF sy-subrc 0. LOOP AT lt_report INTO DATA(ls_report). WRITE: / ls_report-prueflos, ls_report-matnr, ls_report-werk, ls_report-sales_order, ls_report-prod_order. ENDLOOP. ELSE. WRITE: / 检验批未找到检查 QALS 与 QM 控制码. ENDIF.参数说明p_prueflos 是质量检验批号在 QM 标准事务 QPR1 中可查。程序以 QALS 为主表LEFT OUTER JOIN VBAK 取销售订单再 JOIN AFKO 取生产订单。如果 sales_order 为空但 prod_order 有值说明该检验批来自内部生产而非客户补货这是正常情况。调试时重点看 QALS 的 KDAUF 和 AUFNR 两个字段如果都没值就要检查检验来源HERKUNFT是否正确。3.3 PM 工单与 QM 缺陷通知的闭环PM 维修工单在 IW31/IW32 中创建完工后做技术确认和结算。QM 在检验过程中发现缺陷会生成缺陷记录QAVE实际项目里更常用的是通过 QN01 创建质量通知再把质量通知转给 PM 做维修。这个闭环里最容易断的是“责任”。QM 人员录完缺陷就认为流程结束但 PM 维修订单没有自动产生设备故障没人修。方案里要定义质量通知的合作伙伴功能例如将质量通知中的“维护负责人”自动带入 PM 订单责任人。如果没有合作伙伴配置至少要加一道用户状态让 QM 在通知释放时强制选择 PM 接收人。3.4 跨模块接口的排错入口排错不能一头扎进 BAPI 和 RFC。我一般按“主数据 - 订单 - 过账”的顺序排查。先用 MMBE 看库存再用 FB03 看会计凭证最后才回到模块报表。下面这个表是常用的排错切入点症状可能原因检查路径SD 可用量不足但 PP 报告有库存可用性检查范围设置太严格MD04 看供需检查 ATP 规则生产订单确认时报错工艺路线状态未发布CA03 查工艺路线维修工单发料失败物料主数据维护视图未开MM02 检查维护视图检验批一直挂在后处理使用决策未完成QA32 完成检验批 UD这里要注意PM 工单也使用 AFKO/AFPo 相关表与 PP 生产订单共用一部分数据结构。所以排错时不要只按模块分人要让 PP 和 PM 顾问都理解“AFKO 里的订单类型字段不同”否则会把对方的数据误判成自己的问题。4. 项目中最常见的 5 个 SD/PP/PM/QM 配置参数和它们的坑4.1 计划策略决定 SD 需求能否进 MRP计划策略配置在物料主数据 MRP 视图的“策略组”里常用策略 10 代表按库存生产20 代表按订单生产。SD 销售订单产生“独立需求”还是“客户需求”取决于策略组里的消费模式和需求类型。我常用一段很短的 ABAP 查物料当前的策略组和 MRP 类型PARAMETERS: p_matnr TYPE marc-matnr, p_werks TYPE marc-werks. SELECT SINGLE stratgr, dispr FROM marc INTO DATA(ls_pp) WHERE matnr p_matnr AND werks p_werks. IF sy-subrc 0. WRITE: / 策略组, ls_pp-stratgr, MRP类型, ls_pp-dispr. ELSE. WRITE: / 物料不存在或工厂视图缺失. ENDIF.如果输出策略组 20但 MRP 类型还是 ND不跑 MRP销售订单需求就永远到不了 PP。单独改策略组没有用必须同时确认 MRP 类型和需求类型维护好。4.2 质量库存是否参与 ATP 检查ATP 可用性检查默认不包含质检状态库存。物料收货后进入质量库存SD 看到可用量不足仓库却有实物这是典型的“账有货、可承诺没有货”。处理方式是在可用性检查规则里勾选“质量检验库存”作为可用的库存类型但并不是所有公司都愿意这么做因为未放行的库存理论上不能承诺客户。建议在方案里区分两类场景MTO 订单对质量库存严格禁用MTS 订单可以放开。如果项目上线初期质检速度跟不上宁可先放开再通过 QM 后处理时限控制风险。4.3 QM 缺陷代码与 PM 损坏代码是两套目录QM 用缺陷组、缺陷代码描述问题PM 用损坏代码和损坏组记录故障原因。它们各自有目录后台不一统计报表很难合并。常见解法是 QM 缺陷组与 PM 损坏组做一对一映射在单据上约定“外部代码”统一写法。例如 PM 设备故障“轴承过热”QM 检验缺陷也写“轴承过热”如果两边代码分别是 0031 和 B-031报表就分叉。方案里最好先统一编码规则在同一套目录体系下扩展而不是各建一组。4.4 PM 工单状态参数不能被 QM 自动更新PM 工单常常有技术完成、业务完成、开票标识等状态。QM 通知产生缺陷后如果只是发送消息而没有触发 PM 工单状态更新工单会自动关闭维修任务被搁置。配置方法是给 PM 工单定义用户状态参数文件在 QM 通知释放的动作里触发该用户状态例如 TECO 之前先置为“待维修”。这块配置跨 QM 和 PM职责容易互相推必须在蓝图阶段明确由谁负责状态矩阵。4.5 权限按订单类型拆结果连发料都报错很多项目给 PP 顾问授生产订单权限给 PM 顾问授维修工单权限看起来合理但 PM 工单发料需要物料移动权限和库存地点权限SD、PP、PM 都会操作同一个存储地点的物料移动。如果权限按模块切PM 用户经常在 MIGO 发料时被卡。我一般建议按“工厂订单类型移动类型”授权并单独设置 PM 发料的移动类型和缺省存储地点。移动类型放不开再好的主数据也跑不起来。5. 把 124 页 PPT 变成一张模块矩阵评审时只需要一张表5.1 模块矩阵和“三号串查”124 页 PPT 评审时不可能逐页看我习惯先做一张模块矩阵把每个模块的主数据、关键流程、常用事务代码和主要输出表压实到一页。下面是压缩后的版本模块主数据对象关键流程事件常用事务代码主要输出表SD客户、物料、价格、交货工厂销售订单 - 交货 - 开票VA01 / VL01N / VF01VBAK / VBAP, LIKP / LIPS, VBRK / VBRPPP物料、BOM、工艺路线、计划策略MRP - 计划订单 - 生产订单 - 报工MD04 / MD02 / CO41 / CO02 / CO11NPLAF, AFKO / AFPO, AFRUPM功能位置、设备、任务清单维修通知 - 工单 - 发料 - 结算IW31 / IW32 / MIGOIFLOT / EQUI, AFKO / AFPOQM检验计划、缺陷目录、采样方案收货/工序检验 - 检验批 - UDQA32 / QPR1 / QS41 / QS42QALS, QAMR, QAVE评审开始时我只看这张表核对每个模块的关键事务代码是否与流程图匹配再看跨模块的公共主数据是否在同一行。PPT 里每多一章就追问这一章改了矩阵里的哪一格。实际验证跨模块流程时有一个“三号串查”技巧在 SE16H 中打开 QALS输入检验批号或销售订单号能看到 KDAUF销售订单号和 AUFNR生产订单号复制 AUFNR 到 CO11N 查生产订单报工再复制物料凭证到 MMBE 查库存状态。这样从销售订单到检验批到生产订单的号码链就完整了。四模块的集成方案能不能落地最直观的验证方式就是这条号码链能不能从一头查到另一头。本文还有配套的精品资源点击获取