制造链路

Odoo 制造单是怎么自己长出来的:BOM、MO 和生产履约链路讲透

很多制造场景看起来像“点了一个制造单”,但背后其实是 BOM、需求触发、库存移动和生产执行一起配合。本文把 MO 链路讲清楚。

Odoo 开发 库存
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 5 阅读

先说结论

在 Odoo 里,制造并不是“单独建一张 MO 然后结束”。

更准确地说,它通常是几层一起配合:

  • 需求从哪里来
  • BOM 定义需要什么原料和产出
  • 制造单承接执行
  • 原料和成品 move 把库存动作落下去

所以制造单不是孤立对象,而是生产履约链的中心节点。


为什么很多人一看制造就只盯 MO

因为界面上最醒目的就是 Manufacturing Order。

但 MO 只是最显眼的业务对象,不代表它是整件事的全部。

如果你只盯 MO,很容易忽略:

  • 需求是怎么触发生产的
  • BOM 怎样决定原料结构
  • 原料消耗和成品入库怎么落到库存对象

所以制造问题很多时候要横着看 BOM、库存和规则,而不是只盯一张单。


BOM 真正解决的是什么

BOM 最本质是在说:

要生产这个成品,系统认为通常需要哪些原料、工序或组成结构。

所以它不是执行对象,而更像“生产配方定义”。

没有这层,制造单就不知道要消耗什么、产出什么。


MO 更像什么

MO 更像:

把生产需求正式落成可执行任务。

它会承接:

  • 生产哪个产品
  • 生产多少
  • 什么时候做
  • 需要哪些原料准备
  • 最终要把什么成品入库

所以 BOM 是定义层,MO 是执行承接层。


为什么生产也离不开库存 move

因为“制造”最终还是会落成库存世界里的变化:

  • 原料被消耗
  • 半成品/成品被生产出来
  • 库位间发生移动

所以很多制造链路最后还是会回到 stock.move / move line 这些对象。

也就是说:

制造不是脱离库存的独立系统,而是把生产业务投影进库存执行的一种方式。


为什么制造需求常常不是手工创建的

因为它也可能来自上游规则。

例如:

  • 销售需求往下传
  • 补货规则触发
  • make_to_order / manufacture 路线命中

这时制造单并不是用户手点新建,而是系统沿着供应链规则把需求推进到制造执行层。

所以“制造单怎么自己出来了”,很多时候并不是 bug,而是路由链正常在跑。


实战里最容易踩的 5 个坑

1. 只盯 MO,不看 BOM 定义

问题根源可能在配方层。

2. 只看制造,不看库存 move

执行层变化会被漏掉。

3. 以为制造需求一定要手工创建

会误判系统自动触发行为。

4. 把 BOM 当执行对象理解

会混淆定义层和执行层。

5. 只看成品,不看原料准备和消耗链

很多异常就查不全。


一句话记忆法

把它记成一句话:

BOM 负责定义“怎么做”,MO 负责承接“这次真的去做”,而原料消耗和成品产出最终还是要落到库存 move 链路里。

理解这一句,Odoo 制造链路会清楚很多。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。