核心用法
Odoo Manager 通过官方 External XML-RPC API 与 Odoo 实例通信,提供三层动态连接解析机制(temporary/user/environment),支持密码或 API Key 双认证模式。核心操作围绕 execute_kw 方法展开,覆盖任意模型的完整 CRUD 生命周期:
- 查询层:
search/search_count/search_read支持分页、过滤域(domain)与字段裁剪 - 数据层:
read单条/create创建/write更新/unlink删除 - 探查层:
fields_get获取字段元数据、ir.model列举可用模型、name_search模糊匹配
预设 res.partner(联系人/公司)快捷流,开箱即用;同时通过 ir.model.fields 支持任意自定义模型的动态 introspection。
显著优点
1. 多环境无缝切换:temporary_* 单次覆盖 + user_* 会话持久 + 环境变量兜底,无需重启即可在 production/staging/客户实例间跳转
2. 零模型限制:所有操作通过通用 execute_kw 执行,不限于预设模型,适配高度定制化的 Odoo 部署
3. 企业级认证兼容:同时支持传统密码与 Odoo 16+ 推荐的 API Key 机制,后者可细粒度控制权限并支持审计
4. 官方协议背书:基于 Odoo 官方文档实现的 XML-RPC 调用,非逆向或私有接口,升级兼容性有保障
潜在局限
- 协议老旧:XML-RPC 相较于 REST/GraphQL Payload 冗余、调试困难,大批量数据传输效率偏低
- 并发与事务:单次调用即独立事务,无原生批量事务或连接池管理,高频写入需客户端自行限流
- 权限黑洞:Odoo 的 ACL/Record Rule 错误仅返回模糊异常,技能层无法区分"记录不存在"与"无权限查看"
- 字段类型复杂性:One2many/Many2many 的 command list 协议(
(0, 0, {})/(2, id)等)未在文档中详述,复杂关联写入需查阅 Odoo 官方文档
适合人群
- ERP 实施顾问:需要跨客户实例快速验证数据或批量修复
- 内部系统集成开发者:将 Odoo 作为主数据源的中间件/ETL 流程
- 多租户 SaaS 运维:同时监控多个 Odoo 实例健康度与数据一致性
常规风险
- 凭证泄露:
ODOO_PASSWORD/ODOO_API_KEY为高敏感信息,若日志未脱敏或环境变量被意外打印,将导致全数据库访问权限外流 - 误操作不可逆:
unlink为物理删除,非 Odoo 前端默认的 archive;批量删除无回收站保护 - 上下文残留:
user_*会话级变量若未主动清除,可能导致后续操作意外落入错误环境 - 网络中间人:XML-RPC 默认无 TLS 强制校验,自托管实例若证书配置不当存在窃听风险
配置建议
- 生产环境强制启用 API Key 并分配最小权限专用账号
- 敏感操作前执行
version()+search_count双重确认,避免域过滤条件错误导致全表扫描 - 批量任务设置合理
limit(建议 ≤200)与指数退避重试