为什么在Odoo v11中删除了工作流程?

时间:2018-01-01 12:00:33

标签: python xml python-2.7 odoo odoo-11

当我在Odoo 10中使用它时,我有一个非常好用的模块。但是,在Odoo 11中,工作流程的一部分并不起作用。

我是Odoo 11的新手,我无法找到有关工作流程的信息。 Odoo 10和Odoo 11之间的工作流程有何不同?我认为我必须更改.xml文件。

提前致谢。

1 个答案:

答案 0 :(得分:9)

从版本11开始,Odoo中不再使用工作流程。它们在版本9和10中开始被删除(但它们仍然可以在这些版本中使用)。由于缺乏灵活性,他们被认为更难迁移和处理。

因此,您必须删除所做的工作流程。而不是它们,您必须只使用按钮调用的Python方法,并在这些按钮方法中检查必须遵循的方式,并手动调用您的过程必须遵循的其他方法。当然,您必须从那里调用ORM write方法来修改记录的状态。

示例

使用工作流程,你有类似的东西:

XML视图

<button name="cancel" states="draft,sent" string="Cancel Quotation" groups="base.group_user"/>

XML工作流程

<record id="act_draft" model="workflow.activity">
    <field name="wkf_id" ref="wkf_sale"/>
    <field name="flow_start">True</field>
    <field name="name">draft</field>
</record>

<record id="act_cancel" model="workflow.activity">
    <field name="wkf_id" ref="wkf_sale"/>
    <field name="name">cancel</field>
    <field name="flow_stop">True</field>
    <field name="kind">stopall</field>
    <field name="action">action_cancel()</field>
</record>

<record id="trans_draft_cancel" model="workflow.transition">
    <field name="act_from" ref="act_draft"/>
    <field name="act_to" ref="act_cancel"/>
    <field name="signal">cancel</field>
</record>

现在,您应该将其转换为以下内容:

XML视图

<button name="action_cancel" states="draft,sent" string="Cancel Quotation" groups="base.group_user"/>

Python代码

@api.multi
def action_cancel(self):
    ...
    self.write({
        'state': 'cancel',
    })