Odoo 19 工作流调试概览与排错实操

调试 Odoo 19 会涉及 Python 模型、OWL、JSON-RPC 与记录规则。HTTP / OWL / 前端打包也有变化,部分旧习惯会失效。优先用可落地的检查手段。

1. 看 JSON-RPC 正文,别只看 HTTP 状态码

多数业务错误仍返回 HTTP 200,真正异常在 JSON-RPC 的 error 里:

json 复制代码
{
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": 200,
    "message": "Odoo Server Error",
    "data": {
      "name": "odoo.exceptions.ValidationError",
      "debug": "Traceback ...",
      "message": "The field 'email' is required."
    }
  }
}

HTTP 重构后已无 exception_type------请用 data.name。

客户端取值:response.error?.data?.name。

2. 服务端调试日志

配置文件 odoo.conf:

ini 复制代码
[options]
log_level = debug
log_handler = :DEBUG

启动命令:

bash 复制代码
python odoo-bin --log-level=debug --log-handler=:DEBUG -c odoo.conf

按模块定点输出日志,减少噪音:

bash 复制代码
--log-handler=odoo.addons.your_module:DEBUG

参考文件:odoo.conf.debug.sample

3. 方法内断点(仅开发环境使用)

python 复制代码
def action_confirm(self):
    breakpoint()  # 或: import pdb; pdb.set_trace()
    return super().action_confirm()

⚠️ 切勿留在生产环境------进程会挂起且不一定有明确报错。

4. 拦截前端 RPC

按钮 / OWL 触发的流程常走 /web/dataset/call_kw。

操作:浏览器 DevTools → Network,过滤 XHR,查看请求/响应 JSON。

临时 RPC 包装脚本(上线提交前务必删除):static/src/rpc_debug_snippet.js。

5. 抛出正确的异常类

python 复制代码
from odoo.exceptions import UserError, ValidationError, AccessError, MissingError

raise UserError("You can't confirm an order without a customer.")
raise ValidationError("The delivery date cannot be in the past.")
raise AccessError("You don't have rights to approve this record.")
raise MissingError("Record missing.")

建议:少用裸 ValueError / Exception------前端映射与调试信息较差。

示例代码:models/sale_order.py

6. 自动化可能"静默无果"

服务器动作 / 定时任务 / 字段自动化有独立事务。

  • 域名不匹配 → 0 行数据处理 → 不报错
  • 抛出真实异常 → 事务回滚、前端弹窗提示

无 SSH 时,直接查询 ir_logging 日志表:

sql 复制代码
SELECT name, level, message, create_date
FROM ir_logging
WHERE level IN ('ERROR', 'WARNING')
ORDER BY create_date DESC
LIMIT 50;
相关推荐
ZGi.ai1 天前
Agent 查资料停不下来,何时该结束?
工作流·任务管理·aiagent·zgi·agentruntime·资料检索
ZGi.ai2 天前
Agent 输出格式总变,工作流怎么接?
工作流·数据校验·aiagent·结构化输出·zgi·agentruntime
ZGi.ai3 天前
Agent Runtime 改配置,怎样避免影响正在运行的任务?
工作流·aiagent·zgi·agentruntime·运行记录·配置变更
UMI赋能企业4 天前
AI合作需求清单:从业务场景到交付与验收
人工智能·工作流·ai应用
UMI赋能企业4 天前
AI实战交流的提问模板:从业务描述到可分析的问题
人工智能·工作流·ai应用
ZGi.ai12 天前
Agent 同时处理多份文件,怎样安排并发?
并发控制·工作流·批量处理·aiagent·zgi·agentruntime
wewowilling13 天前
工作流 .... coze平台--AI--Agent--RAG--Function Calling
python·低代码·agent·零代码·工作流·coze
ZGi.ai14 天前
Agent 权限怎么配?先按动作拆开
工作流·工具调用·aiagent·zgi·agentruntime·权限配置
奈落2415 天前
规则引擎还是大模型?AI 工作流与传统自动化的分工边界:确定性流程照旧,‘每次都不太一样‘的知识型工作才交给 AI
运维·人工智能·自动化·大模型·工作流·ai 办公