You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Odoo V15:如何区分生产订单(MO)与欠料订单,避免自动化动作误触发

在Odoo V15中区分生产订单与欠料订单的方法

欠料订单(Backorder)与原始生产订单同属mrp.production模型,可通过以下方式区分,确保自动化动作仅作用于原始生产订单:

核心区分字段:backorder_id

Odoo中,欠料订单会通过backorder_id字段关联到其对应的原始生产订单,而原始生产订单的backorder_id为空。以此为判断依据,可精准筛选目标订单。

1. 自动化规则中添加过滤条件

在配置自动化规则时,在过滤条件中添加:

  • 字段:Backorder(对应模型字段backorder_id)
  • 条件:is not set

这样规则只会触发在backorder_id为空的原始生产订单上。

2. 服务器动作中加入判断逻辑

如果是通过Python代码执行的服务器动作,可在代码开头加入判断:

# 仅处理原始生产订单,跳过欠料订单
if record.backorder_id:
    return

# 后续执行你的自动化动作逻辑
# ...

3. 自定义计算字段(可选)

如果需要在视图或更多场景中直观区分,可给mrp.production模型添加一个计算字段:

from odoo import models, fields

class MrpProduction(models.Model):
    _inherit = 'mrp.production'

    is_backorder = fields.Boolean(compute='_compute_is_backorder', string='Is Backorder')

    def _compute_is_backorder(self):
        for rec in self:
            rec.is_backorder = bool(rec.backorder_id)

添加后,可在自动化规则、视图筛选中直接使用is_backorder = False作为条件,更直观易读。

验证方法

可进入生产订单列表视图,添加Backorder字段列:

  • 原始生产订单的该列值为空
  • 欠料订单的该列值会显示对应的原始生产订单名称,以此验证区分逻辑的准确性。

内容的提问来源于stack exchange,提问作者kayalotta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:45:38