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

如何使用Python XMLRPC在Odoo中创建Backorder(欠单)?

Odoo XMLRPC调用调拨单校验生成欠单解决方案

你调用button_validate返回的字典是Odoo的前端向导触发信号,说明当前调拨单未完成,需要确认是否生成欠单,XMLRPC场景下只需按以下步骤操作即可自动完成欠单创建:

  • 第一步:调用调拨单的button_validate方法,捕获返回的向导动作参数
  • 第二步:根据返回的向导模型stock.backorder.confirmation和上下文参数,创建向导实例
  • 第三步:调用向导的process方法完成校验和欠单生成

以下是可直接使用的Python代码示例:

import xmlrpc.client

# Odoo连接配置
url = "你的Odoo服务地址"
db = "你的数据库名称"
username = "你的登录账号"
password = "你的登录密码"

# 建立XMLRPC连接
common = xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/common')
uid = common.authenticate(db, username, password, {})
models = xmlrpc.client.ServerProxy(f'{url}/xmlrpc/2/object')

# 待校验的出库调拨单ID
picking_id = 27

# 调用调拨单校验方法
validate_res = models.execute_kw(db, uid, password, 'stock.picking', 'button_validate', [[picking_id]])

# 判断是否触发欠单确认向导
if validate_res.get('res_model') == 'stock.backorder.confirmation':
    # 创建欠单确认向导记录,默认值从返回的context中自动获取
    wizard_id = models.execute_kw(
        db, uid, password,
        'stock.backorder.confirmation',
        'create',
        [{}],
        {'context': validate_res['context']}
    )
    # 调用向导方法生成欠单,完成当前调拨单校验
    models.execute_kw(
        db, uid, password,
        'stock.backorder.confirmation',
        'process',
        [[wizard_id]]
    )

补充说明:如果不需要生成欠单,希望把未完成的数量标记为无需处理,只需将最后一步调用的process方法替换为process_cancel_backorder即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 13:30:00