Openerp 如何在Odoo中触发订单确认代码?

Openerp 如何在Odoo中触发订单确认代码?,openerp,odoo,openerp-8,Openerp,Odoo,Openerp 8,我已经设置了一个ir.server.action,当模型保存并处于手动状态时,它会做出反应。但是,重复的保存将重复触发该操作,因此我必须锁定数据库。目前我有: <record id="filter_order_confirm" model="ir.filters"> <field name="name">By Confirmed Orders</field> <field name="model_id">sale.order<

我已经设置了一个ir.server.action,当模型保存并处于手动状态时,它会做出反应。但是,重复的保存将重复触发该操作,因此我必须锁定数据库。目前我有:

<record id="filter_order_confirm" model="ir.filters">
    <field name="name">By Confirmed Orders</field>
    <field name="model_id">sale.order</field>
    <field name="domain">[('state','=','manual')]</field>
</record>

<record id="action_schedule_emails" model="ir.actions.server">
    <field name="state">code</field>
    <field name="model_id" ref="sale.model_sale_order"/>
    <field name="code">object.schedule_emails()</field>
    <field name="type">ir.actions.server</field>
    <field name="condition">True</field>
    <field name="name">Schedule Emails</field>
</record>

<record id="rule_trigger_email_scheduling" model="base.action.rule">
    <field name="name">Trigger email scheduling when Order is set to confirm.</field>
    <field name="model_id" ref="sale.model_sale_order" />
    <field name="kind">on_create_or_write</field>
    <field name="filter_id" ref="filter_order_confirm" />
    <field name="server_action_ids" eval="[(6,0,[ref('action_schedule_emails')])]" />
</record>

经确认的订单
销售订单
[('state','=','manual')]
代码
object.schedule_emails()
ir.actions.server
真的
安排电子邮件
当订单设置为确认时触发电子邮件计划。
关于创建或写入

如何对工作流中确认的订单做出反应?

您可以修改工作流活动,以在执行时触发任何服务器操作

在您的情况下,您需要修改sale.wkf_sale中的act_路由器活动,这可以通过您的插件完成,如下所示

<record id="sale.act_router" model="workflow.activity">
    <field name="action_id" ref="action_schedule_emails"/>
</record>


通过此修改,确认订单时会触发服务器操作上的代码。

您可以修改工作流活动以在执行时触发任何服务器操作

在您的情况下,您需要修改sale.wkf_sale中的act_路由器活动,这可以通过您的插件完成,如下所示

<record id="sale.act_router" model="workflow.activity">
    <field name="action_id" ref="action_schedule_emails"/>
</record>

通过此修改,确认订单时将触发服务器上的代码操作