获得;odoo.exceptions.ValidationError:(&"x27;过账日记账分录在更改发票统计时,每个公司必须具有唯一的序列号

获得;odoo.exceptions.ValidationError:(&"x27;过账日记账分录在更改发票统计时,每个公司必须具有唯一的序列号,odoo,odoo-13,Odoo,Odoo 13,我试图通过参考以下文档,使用Web API(Python)将已创建发票的状态从“草稿”更改为“已发布”: 我正在更新发票,如下所示: def makeInvoicePosted(invoice_id): invoice_ids = [] invoice_ids.append(invoice_id) common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url)) print(commo

我试图通过参考以下文档,使用Web API(Python)将已创建发票的状态从“草稿”更改为“已发布”:

我正在更新发票,如下所示:

def makeInvoicePosted(invoice_id):

    invoice_ids = []

    invoice_ids.append(invoice_id)

    common = xmlrpc.client.ServerProxy('{}/xmlrpc/2/common'.format(url))

    print(common)

    uid = common.authenticate(db, username, password, {})

    print("makeInvoicePosted : Odoo Admin User Id : ", uid)

    models = xmlrpc.client.ServerProxy('{}/xmlrpc/2/object'.format(url))

    models.execute_kw(db, uid, password, 'account.move', 'write', [[invoice_id], {'state':"posted"}])
但是我得到了这个错误:odoo.exceptions.ValidationError:(“每个公司发布的日记账分录必须具有唯一的序列号。”,无)\n'

这可能是什么原因造成的?请求中是否缺少某些内容


提前感谢!

我建议在这里通过调用
post
使用Odoo的工作流和业务逻辑,而不是直接编写状态

models.execute_-kw(数据库、uid、密码、'account.move'、'post'、[[invoice_-id]、]

原因:因为在这种方法中有很多检查,也有很多事情要做,所以你可能会错过或者只是做错了(发票非常复杂)。在执行
post
之前,您可能会在调用中发现一些错误,因为签入了它。

谢谢!成功了。有没有办法让我知道在web API上使用Odoo的工作流?文档中没有发布这些信息。没有,您找不到关于它的真正好的文档。更多的是了解工作流作为用户,然后尝试在代码中重述后面的过程(使用了哪些方法,填写了哪些字段等等)。这里的
post
是一个简单的过程,因为它在客户端调试模式和发票上的按钮下非常快。