成品下挂虚拟件再挂另一个成品MD41跑不出MPS计划订单的问题(AI分析)

"成品1 → 虚拟半成品1(Phantom) → 成品2",即 一个成品(成品2)被挂在另一个成品(成品1)的BOM下,且中间通过虚拟件连接。

这是一个典型的 "成品作为子件"(Finished Goods as Component) + "虚拟件展开" 的混合结构。

您观察到的现象完全符合 SAP 的标准逻辑,但原因确实容易被误解。下面我将逐层拆解、精准定位根本原因。

✅ 您的场景结构还原

物料A:成品1(MRP类型 = M0,运行MPS)

└── BOM项:半成品虚拟件1(标记为 Phantom)

└── BOM项:成品2(本身也是可销售的成品,MRP类型 = M0)

您对 成品1 运行 MD41(MPS) → 成品2 无计划订单生成 ❌

您单独对 成品2 运行 MD41 → 能生成计划订单 ✅

🔍 根本原因:MPS 不会为"相关需求"生成计划订单

这是最关键的一点!

▶ 当您对 成品1 运行 MPS:

系统为 成品1 创建 独立需求(PIR);

展开 BOM 时,因 半成品虚拟件1 是 Phantom,系统跳过它,直接将需求传递给其子件 ------ 成品2;

但此时,成品2 的需求是"相关需求"(Dependent Requirement),不是独立需求;

MPS(MD41)只处理"独立需求"(如 PIR、销售订单),不处理"相关需求";

因此,即使成品2 的 MRP 类型是 M0,MPS 也不会为其生成计划订单。

💡 MPS 的设计初衷:只规划"面向市场的关键物料"(如主成品),不规划由上层派生的内部需求。

▶ 当您单独对 成品2 运行 MD41:

您实际上是人为将其视为"主计划对象";

系统假设存在 成品2 的独立需求(即使没有 PIR,MD41 也会尝试运行);

因其 MRP 类型 = M0,MPS 允许为其创建计划订单。

⚠️ 注意:这种"单独跑"成功,是因为您绕过了需求来源的上下文,强制触发了 MPS 逻辑。

📌 关键区分:独立需求 vs 相关需求

需求类型 来源 MPS(MD41)是否处理?


独立需求(Independent) PIR(MD61)、销售订单 ✅ 是

相关需求(Dependent) 上层物料的 BOM 展开 ❌ 否

在您的场景中:

成品2 在成品1 的 BOM 下 → 需求是 相关需求 → MPS 忽略;

单独跑成品2 → 系统当作 独立需求对象 → MPS 处理。

✅ 正确解决方案

方案一:✅ 对成品2 使用 MRP(PD),而非 MPS(M0)

将 成品2 的 MRP 类型改为 PD(Material Requirements Planning);

保持 成品1 的 MRP 类型 = M0;

运行流程:

  1. MD41:为成品1 运行 MPS → 生成成品1 的计划订单;
  2. MD02:对成品1 或全厂运行 MRP → 自动展开 BOM,为成品2 生成采购/生产建议(计划订单或PR)。
    ✅ 这是 SAP 标准分层计划最佳实践:
    MPS 管顶层成品,MRP 管下层所有物料(包括作为子件的成品)。
    方案二:⚠️ 强制让成品2 参与 MPS(不推荐)
    保留成品2 的 MRP 类型 = M0;
    但必须手动为成品2 创建 PIR(MD61),或确保有销售订单;
    这样 MPS 才会为其生成计划订单;
    ❌ 问题:无法自动响应成品1 的需求变化,需人工维护 PIR,易出错。
    方案三:🔧 检查虚拟件配置(次要)
    确认 半成品虚拟件1 确实标记为 Phantom:
    在 BOM(CS02)中,项目类别 = "Phantom";或
    在物料主数据(MM02)MRP 视图中,勾选 "Phantom assembly"。
    若未正确标记,系统不会展开,但您说"单独跑成品2能出",说明展开是成功的,此项大概率无误。

🔧 验证步骤(推荐操作)

  1. 为成品1 创建 PIR(MD61);
  2. 运行 MD41(仅成品1);
  3. 查看 MD04(成品2):
    应看到一条 "Dependent Reqmt"(相关需求),但无计划订单;
  4. 运行 MD02(针对成品2 或全厂);
  5. 再查 MD04(成品2):
    应出现 "Planned Order"(若 MRP 类型 = PD)。

✅ 总结

根本原因:

MPS(MD41)只响应"独立需求",而成品2 在成品1 的 BOM 下产生的是"相关需求",因此被忽略。

正确做法:

成品2 不应使用 MPS(M0),而应设为 MRP(PD);

先跑 MPS(成品1),再跑 MRP(全厂或成品2),即可自动生成成品2 的计划订单。

这不是配置错误,而是 SAP MPS/MRP 分层逻辑的正常行为。

将"作为子件的成品"纳入 MPS 范围,本身就是一种反模式(anti-pattern),会导致计划冗余和冲突。

💡 记住:只有直接面向市场的物料才进 MPS,内部流转的物料一律走 MRP。

相关推荐
美洽技术3 小时前
客服机器人训练手册:从0到90%准确率的5步实操路径
经验分享
德思特4 小时前
德思特产品 | 掌握波束之核:Vaunix可编程移相器与巴特勒矩阵如何定义下一代无线测试
经验分享
弓乙图4 小时前
弓乙图 先后天八卦的演化源头
经验分享·微信
岁岁的O泡奶5 小时前
NSSCTF_crypto_[SWPU 2020]happy
经验分享·python·算法·密码学
做cv的小昊5 小时前
【TJU】信息检索与分析课程笔记和练习(4)中文文献检索—CNKI
大数据·经验分享·笔记·学习·信息可视化·全文检索·信息检索
朱 欢 庆6 小时前
Jenkins任务执行完成后发送邮件
前端·经验分享·jenkins
Wpa.wk7 小时前
接口测试 - 了解接口测试和接口协议
经验分享·接口测试·接口协议
Wpa.wk7 小时前
接口测试 - 接口测试用例设计
经验分享·测试用例·接口测试·postman
洛白白7 小时前
升维与时间的魔法:让问题在更高处自然蒸发
经验分享·学习·生活·学习方法