【问题标题】:Why have workflows been removed in Odoo v11?为什么在 Odoo v11 中删除了工作流?
【发布时间】:2018-01-01 12:00:32
【问题描述】:

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

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

提前致谢。

【问题讨论】:

  • 您是否想过简单地询问 odoo 的制造商?
  • @Muhsin k 我的回答解决了你的问题吗?

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


【解决方案1】:

从版本 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',
    })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    相关资源
    最近更新 更多