当前位置:   article > 正文

odoo16实用功能之创建/自定义服务器动作_odoo16 自定义web客户端

odoo16 自定义web客户端

目录

1、什么是服务器动作(ir.actions.server)

2、编写需要执行的python函数

3、编写动作

效果图:

参数说明:


服务器动作的应用场景

Odoo中,服务器动作(Server Action)是一种执行预定义操作的机制,通常在后端执行。它们可以在各种场景下用于自动化和扩展功能。以下是一些服务器动作的应用场景:

  1. 自动化业务流程

    • 创建销售订单时,自动触发服务器动作生成相关的发货单或发票。
    • 客户付款后,自动将订单状态更新为“已付款”。
  2. 批量处理数据

    • 执行定期的批量数据处理任务,如清理过期数据、计算统计信息等。
    • 执行数据导入后的一系列操作,确保数据的完整性和一致性。
  3. 邮件通知

    • 在特定条件下,如订单交付日期逼近或库存水平低于阈值,发送自动化的邮件通知。
    • 定期发送报表或摘要电子邮件。
  4. 集成外部系统

    • 与外部系统进行集成,例如通过调用外部API执行某些操作。
    • 实时同步数据,确保Odoo中的数据与外部系统保持一致。
  5. 自定义业务逻辑

    • 执行定制的业务逻辑,例如根据客户需求进行特定的计算。
    • 在特定条件下执行定制的数据处理步骤。
  6. 自动化报表生成

    • 根据特定的条件生成和分发报表,确保相关人员能够及时获得所需的信息。
  7. 自动化集成测试

    • 在系统更新后,执行自动化测试以确保新功能没有破坏现有功能。
    • 定期执行数据一致性和完整性检查。
  8. 触发客户端动作

    • 通过触发客户端动作,在前端进行用户界面的交互,例如显示通知或执行一些前端脚本。


1、什么是服务器动作(ir.actions.server)

        在Odoo中,服务器动作(Server Action)是一种用于执行后端(服务器端)逻辑的配置项。通过服务器动作,你可以定义一些操作,这些操作在特定的触发条件下会执行后端的Python代码或者其他动作。服务器动作通常与菜单、按钮、工作流等组件关联,用于在特定的事件发生时触发相应的逻辑。

        服务器动作允许你配置在后端执行的逻辑,这些逻辑可以在特定的条件下触发,为Odoo定制化和扩展提供了很大的灵活性。

2、编写需要执行的python函数

  1. # 批量关机
  2. def action_auto_stop(self):
  3. for i in self:
  4. i.qeum_stop() # 循环记录执行方法

3、编写动作

下面是一个简单的服务器动作示例,它在特定模型选中记录时执行关机函数

  1. <record id="model_cec_cc_action_stop" model="ir.actions.server">
  2. <field name="name">批量关机</field>
  3. <field name="model_id" ref="cec_cc.model_cec_cc"/>
  4. <field name="binding_model_id" ref="cec_cc.model_cec_cc"/>
  5. <field name="binding_view_types">form,list</field>
  6. <field name="state">code</field>
  7. <field name="code">action = records.action_auto_stop()</field>
  8. </record>

效果图:

参数说明:

<record>标签:定义一个记录(记录类型为ir.actions.server

id:该记录的唯一标识符

model:指定该记录的模型为ir.actions.server,即服务器动作模型。

name:服务器动作的名称,显示在Odoo用户界面上,此处为“批量关机”。

model_id:指定服务器动作关联的模型,即model_cec_cc

model_id-ref:引用模型的外部标识符,确保关联到正确的模型

binding_model_id:指定与此动作关联的模型。

binding_model_id-ref:引用关联的模型的外部标识符

binding_view_types:指定动作绑定到的视图类型,此处为“form”和“list”。

state:指定触发动作的条件,此处为code,表示在服务器端执行的代码中触发动作。

code:包含要执行的 Python 代码

action = records.action_auto_stop() :在记录(模型为model_cec_cc)上调用 action_auto_stop 方法

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/208446
推荐阅读
相关标签
  

闽ICP备14008679号