ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

SAP按销售订单采购生产:从销售订单到采购申请与生产工单的MRP配置链路

SAP按销售订单采购生产:从销售订单到采购申请与生产工单的MRP配置链路 简介这份文档面向制造业与流通业中从事SAP实施、运维及成本核算的顾问与财务人员聚焦按销售订单采购生产这一典型场景解决从销售订单触发采购、生产到结算全流程的配置与操作落地问题。资源包共1个doc文件约122KB为WORD整理版内容以配置说明与操作步骤为主便于直接查阅与打印。文档围绕无差异模式与有差异模式两种业务场景展开涵盖生产订单结算、销售订单成本控制、结果分析及结算等配置要点并梳理创建物料、BOM、工艺路线、销售订单、按单采购、生产订单、发料、报工、收货、发货过账、开票、成本中心费用实际过账、成本要素分割与计算实际作业价格等完整操作链条。目前已有488人学习适合需要系统掌握按单结算配置逻辑、对照实操与查漏补缺的中高级SAP用户参考。1. 按销售订单采购生产SAP 里最容易被低估的一条链路很多团队上 SAP 之后SD 模块的销售订单能开、MM 模块的采购申请能批、PP 模块的生产工单能建但三件事是断开的。销售订单确认了 100 台采购不知道要买多少料生产不知道要排多少工单计划员每天靠 Excel 手工算净需求这就是典型的「模块都上线了链路没通」。按销售订单采购生产要解决的就是把销售订单作为需求源头自动驱动采购申请和生产工单让 MRP 跑完之后计划员只需要看异常而不是从零算起。这套配置的核心是三个东西销售订单行项目的需求传递策略、物料主数据里的 MRP 参数、以及计划策略组的设定。适合已经上线 SD 和 MM、准备把 PP 的 MRP 跑起来的团队也适合正在做 SAP 实施、需要理解需求传递链路的顾问。下面按配置顺序拆开讲每一步都落到事务代码和字段值上。2. 需求传递的底层逻辑销售订单怎么变成采购申请2.1 计划策略组决定了需求从哪来SAP 里销售订单不会直接生成采购申请中间隔着一层「计划策略」。计划策略组Planning Strategy Group挂在物料主数据的 MRP3 视图上它决定了这个物料的需求是来自销售订单、来自独立需求、还是两者混合。按销售订单采购生产最常用的策略是 20按订单生产和 40按订单生产带最终装配区别在于 40 允许在成品层做装配计划半成品层用 20。策略 20 的逻辑是销售订单行项目产生一个「客户需求」MRP 运行时把这个需求当作唯一的需求来源不参考预测。策略 40 则是在成品层用销售订单驱动但半成品层可以用预测驱动提前备料。选哪个取决于你的交付周期——如果从接单到交付只有两周用 20如果成品装配快但半成品备料周期长用 40。配置路径在 SPRO → 生产 → 物料需求计划 → 计划 → 定义计划策略。这里不需要新建策略SAP 标准交付的策略 20 和 40 已经够用关键是在物料主数据里正确赋值。2.2 需求类型和需求类的作用计划策略背后是需求类型Requirement Type和需求类Requirement Class。需求类型决定需求是「独立需求」还是「客户需求」需求类决定这个需求是否参与净需求计算、是否消耗预测。策略 20 对应的需求类型是 KE需求类是 020。你可以在物料主数据的 MRP3 视图看到「策略组」字段填 20 之后系统自动带出需求类型和需求类。这里有个容易翻车的地方如果物料主数据的 MRP 类型设成了 PDMRP但策略组设成了 10按库存生产那销售订单就不会驱动采购MRP 只会看预测。所以配置顺序是先确认策略组再确认 MRP 类型最后跑 MRP。2.3 销售订单行项目的需求传递开关销售订单行项目上有一个「需求传递」相关的字段在行项目的「计划」标签页里。这个字段叫「需求类型」通常由物料主数据的策略组自动带出但也可以手工覆盖。如果发现销售订单保存后 MRP 跑不出需求第一件事就是去看这个字段是不是空的。另外销售订单行项目的「项目类别」也会影响需求传递。标准项目类别 TAN标准订单会自动传递需求但如果是免费样品或者退货项目类别不同需求可能不传递。配置路径在 SPRO → 销售和分销 → 销售 → 销售凭证 → 销售凭证项目 → 分配项目类别。提示销售订单保存后需求不会立即出现在 MRP 里需要等 MRP 运行或者 MD50/MD51 单独跑这个物料。如果急着验证用 MD50 输入物料和工厂勾选「处理关键字段」能立刻看到需求。3. 从配置到跑通物料主数据、MRP 参数和采购申请生成3.1 物料主数据 MRP 视图的必填字段物料主数据的事务代码是 MM01新建或 MM02修改MRP 相关视图有 MRP1 到 MRP4。按销售订单采购生产以下字段必须正确视图字段推荐值说明MRP1MRP 类型PD参与 MRP 运算MRP1MRP 控制者001计划员代码用于筛选MRP2采购类型F外购如果是自制填 EMRP2特殊采购类空或 3030 用于虚拟件MRP3策略组20 或 40决定需求来源MRP3消耗模式2向后消耗MRP4独立需求1个别需求策略组填 20 之后MRP3 视图的「需求类型」和「需求类」会自动带出 KE 和 020。如果没带出来检查物料主数据的配置是不是被用户出口覆盖了。3.2 MRP 运行参数MD01 和 MD02 的区别MD01 是全厂 MRP 运行MD02 是单物料 MRP。日常计划员用 MD02 比较多因为快。MD02 的初始屏幕有几个关键参数处理代码NETCH净变化计划只跑有变化的物料NEUPL重新生成计划全跑但慢。计划模式1调整计划会保留手工修改的计划订单3删除并重新创建会删掉所有计划订单重新生成。调度勾选「计划行」会同时排产。我一般先用 MD02 加 NETCH 跑单个物料验证确认需求传递没问题再用 MD01 跑全厂。MD01 的缺点是如果主数据有问题会生成大量异常消息计划员看不过来。3.3 采购申请自动生成的配置MRP 跑完之后外购物料会生成采购申请自制物料会生成计划订单。采购申请生成的配置在 SPRO → 物料管理 → 采购 → 采购申请 → 定义采购申请的编号范围以及 SPRO → 生产 → 物料需求计划 → 计划 → 定义计划订单的编号范围。关键配置是「采购申请创建指示器」在物料主数据 MRP2 视图的「采购」区域。如果设成「1」MRP 会自动创建采购申请如果设成「2」只创建计划订单需要手工转换。按销售订单采购生产建议设成「1」减少计划员操作。采购申请生成后用 ME53N 查看可以看到「需求跟踪号」字段这个字段关联到销售订单号。如果需求跟踪号是空的说明需求传递断了回去检查策略组和需求类型。3.4 用 MD04 验证整条链路MD04 是库存需求清单输入物料和工厂能看到所有需求、库存、采购申请、计划订单。按销售订单采购生产的验证方法是先开一张销售订单VA01保存后记下订单号然后 MD04 看这个物料应该能看到一条「客户需求」后面跟着 MRP 生成的采购申请或计划订单。如果 MD04 里只有销售订单需求没有采购申请检查三个地方物料主数据的采购申请创建指示器、MRP 运行的处理代码是不是 NETCH、采购申请的编号范围是不是用完了。# 用 MD04 验证需求传递的检查清单 # 1. 销售订单号VA03 查看行项目需求类型 # 2. 物料主数据MM03 MRP3 视图确认策略组 # 3. MRP 运行MD02 输入物料工厂处理代码 NETCH # 4. 结果查看MD04 看客户需求和采购申请是否对应 # 5. 采购申请ME53N 查看需求跟踪号是否等于销售订单号上面这段不是代码是检查顺序。每一步对应一个事务代码按顺序走一遍基本能定位断点在哪。4. 避坑与排查按销售订单采购生产最常见的 5 个翻车点4.1 销售订单保存后 MD04 看不到需求现象VA01 创建销售订单保存成功但 MD04 里没有客户需求。原因销售订单行项目的「需求类型」字段为空或者物料主数据的策略组是 10按库存生产销售订单不传递需求。解决VA03 打开销售订单行项目 → 计划标签页看需求类型是不是 KE。如果是空的检查物料主数据 MRP3 视图的策略组改成 20 或 40。改完之后需要重新保存销售订单或者用 MD50 单独跑这个物料。4.2 MRP 跑完生成了采购申请但数量不对现象销售订单 100 台BOM 里每个成品用 2 个原料但采购申请只生成了 100 个原料不是 200 个。原因BOM 展开层级没设对或者物料主数据的「展开 BOM」字段设成了空。解决检查物料主数据 MRP4 视图的「展开 BOM」字段成品设成「1」半成品设成「2」。另外检查 BOM 的「基本数量」是不是 1如果是 100那用量要按比例算。4.3 采购申请的需求跟踪号是空的现象ME53N 查看采购申请需求跟踪号字段为空无法关联到销售订单。原因采购申请是手工创建的不是 MRP 自动生成的或者 MRP 运行时没有勾选「创建采购申请」。解决确认物料主数据 MRP2 视图的「采购申请创建指示器」设成了 1。如果是手工创建的采购申请需求跟踪号需要手工填但按销售订单采购生产不建议手工创建。4.4 MD01 跑完全厂计划员收到几千条异常消息现象MD01 用 NEUPL 跑完MD06 里几千条异常计划员无法处理。原因主数据不完整比如物料没有采购提前期、没有 MRP 控制者、没有安全库存。解决先用 MD02 加 NETCH 跑单个物料把主数据补齐。MD01 建议用 NETCH 而不是 NEUPL只跑有变化的物料。异常消息用 MD06 按 MRP 控制者筛选分给对应计划员。4.5 策略 40 下半成品没有提前备料现象成品用策略 40销售订单驱动成品装配但半成品没有提前采购导致装配时缺料。原因策略 40 的半成品层需要单独设预测需求或者用策略 40 的「最终装配」逻辑但半成品的计划策略没设对。解决半成品物料用策略 40 或者 20并且在成品层跑 MRP 时勾选「展开 BOM 到半成品」。如果半成品需要提前备料用 MD61 创建独立需求PIR策略 40 会自动消耗预测。5. 进阶技巧用 MD07 和 MPS 做销售订单的优先级排产5.1 MD07 的用法按销售订单筛选需求MD07 是「库存需求清单的集体显示」可以一次看多个物料。按销售订单采购生产时我习惯用 MD07 加筛选条件「需求跟踪号 销售订单号」这样能看到这张销售订单涉及的所有物料的需求和采购申请状态。MD07 的初始屏幕可以设「MRP 控制者」「工厂」「物料」等筛选条件。跑完之后双击某一行能跳到 MD04 看单个物料的详细情况。这个事务代码适合计划员每天早上花 10 分钟过一遍看有没有缺料风险。5.2 MPS 分析销售订单产生生产工单的增强MPS主生产计划在 SAP 里对应的事务代码是 MD40 到 MD43。按销售订单采购生产时MPS 的作用是把销售订单的需求单独拎出来不跟预测混在一起。如果标准 MPS 不能满足需求比如需要按销售订单的优先级排产可以用用户出口增强。常见的增强点是 MPS 的运行参数用 BAdIMD_MPS_PARAMETERS。这个 BAdI 可以在 MPS 运行时修改需求排序规则比如按销售订单的交期排序而不是按物料号排序。实现方法是创建一个 Z 开头的实现类在方法里读取销售订单的交期然后调整需求的优先级。 MPS 增强的伪代码示例按销售订单交期排序 METHOD if_ex_md_mps_parameters~adjust_requirements. DATA: lt_requirements TYPE TABLE OF mdps, lv_delivery_date TYPE sy-datum. 读取销售订单交期 SELECT SINGLE vdatu FROM vbep INTO lv_delivery_date WHERE vbeln lt_requirements[ 1 ]-vbeln. 按交期排序需求 SORT lt_requirements BY lv_delivery_date ASCENDING. 返回调整后的需求 et_requirements lt_requirements. ENDMETHOD.上面这段是伪代码实际实现需要根据系统版本和 BAdI 定义调整。关键逻辑是MPS 运行时读取销售订单的交期按交期排序需求这样生产工单会优先排交期近的订单。5.3 生产工单和采购申请的联动检查按销售订单采购生产跑通之后验证方法是VA01 创建销售订单 → MD02 跑 MRP → MD04 看采购申请 → ME53N 看需求跟踪号 → 生产工单用 CO02 查看确认工单的「销售订单」字段有值。如果生产工单的销售订单字段是空的检查工单的「需求跟踪号」是不是关联到了销售订单。这个字段在工单的「附加数据」标签页里。如果为空说明 MRP 生成计划订单时没有传递销售订单号回去检查策略组和需求类型。我自己的习惯是每次配置完新物料先开一张测试销售订单跑一遍 MD02然后用 MD04 截图存档。这样后面出问题的时候有对照。按销售订单采购生产这条链路配置不难难的是主数据的一致性。希望帮到你。本文还有配套的精品资源点击获取
返回列表