云计算百科
云计算领域专业知识百科平台

如何通过Odoo 18创建与配置服务器操作

如何通过Odoo 18创建与配置服务器操作

服务器操作是Odoo实现业务流程自动化的核心工具,允许你在服务器端执行自动化任务,通常由按钮点击或自动化工作流等事件触发。这些操作使用 Python 编写,能够执行复杂的业务逻辑,从而增强 Odoo 系统的功能。 本指南将详解服务器操作的创建流程,并通过实战案例演示字段同步功能的实现。

服务器操作功能概览

要查看 Odoo 中所有可用的服务器操作,首先要启用开发者(调试)模式。启用后,进入 “设置” 菜单,导航到 “技术” 部分,然后选择 “服务器操作”。 在这里插入图片描述

在这里,你可以查看环境中配置的所有服务器操作列表。 在这里插入图片描述

Odoo 18 中服务器操作的功能

服务器操作功能多样,可以自动化广泛的操作。其主要功能包括:

  • 执行 Python 代码:使用 Python 脚本自动化自定义逻辑。
  • 创建新记录:在任何 Odoo 模型中自动生成新记录。
  • 更新现有记录:根据预定义的条件修改记录,以确保数据的准确性。
  • 发送电子邮件和短信消息:在特定事件发生时向相关人员触发通知。
  • 管理关注者:自动为重要记录分配关注者。
  • 安排后续活动:自动创建跟进任务,以简化工作流程。
  • 链接多个操作:通过链接多个服务器操作来构建复杂的工作流。

实战案例:联系人电话同步。

实现目标:将res.partner模型中电话字段值自动同步至手机字段。

步骤1:XML定义服务器操作

要创建此服务器操作,导航到 Odoo 18 自定义模块的 “data” 目录。打开 ir_action_data.xml 文件,并使用以下 XML 代码定义操作:

<record id="copy_phone_to_mobile" model="ir.actions.server">
<field name="name">电话同步手机号</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="binding_model_id" ref="base.model_res_partner"/>
<field name="binding_view_types">list</field>
<field name="state">code</field>
<field name="code">
action = records.action_copy_phone_to_mobile()
</field>
</record>

参数说明:

name: 服务器操作的描述性名称,会显示在服务器操作菜单中。
model_id:操作绑定的数据模型(在本例中为res.partner)。
binding_model_id:将操作绑定到该模型,因此只有在处理 res.partner 时该操作才可用。
binding_view_types:操作可见视图(列表/表单),“list” 表示它将在列表视图中可用。
state:指定操作的类型,“code” 表示它将执行 Python 脚本。
code:包含触发操作时将执行的 Python 脚本。

步骤2:Python方法实现

接下来,定义服务器操作将调用的 Python 函数。在res.partner模型扩展文件中添加:

def action_copy_phone_to_mobile(self):
for record in self:
if record.phone and not record.mobile:
record.write({'mobile': record.phone})

代码解释: action_copy_phone_to_mobile:此函数检查 res.partner 记录是否有电话号码但没有手机号码。如果是,则将电话号码复制到手机号码字段。 完成上述操作后,你会发现新创建的服务器操作已经可用。 在这里插入图片描述

步骤3:操作执行与验证 服务器操作后,它将在联系人列表视图中可用。要测试它,请按照以下步骤操作: 1、进入 “客户” 模块。 2、选择几个 “电话” 字段有数据但 “手机” 字段没有数据的客户。 3、在 “操作” 菜单下,你应该会看到新创建的名为 “电话同步手机号” 的服务器操作。 在这里插入图片描述

4、点击该操作,Odoo 将把电话号码复制到相应的手机号码字段中。 在这里插入图片描述

高级配置技巧

1、触发条件扩展:

·添加domain过滤:

<field name="domain_force">[(′phone′,′!=′,False)]</field>[(′phone′,′!=′,False)]
</field>

·集成工作流引擎:作为审批节点动作。

2、多操作链式执行:

<field name="code">
actions = [
records.action_step1(),
records.action_step2(),
env.ref('module.action_external').run()
]
</field>

3、动态参数传递:

  • 通过context获取环境变量。
  • 使用eval处理动态表达式。

总结

通过实现这个服务器操作,你可以在 Odoo 中自动化数据处理任务,例如同步字段。这种小型但强大的自动化有助于确保数据的一致性,并节省日常任务的时间。 服务器操作为 Odoo 18 中的流程自动化和工作流优化提供了无限可能。通过探索和自定义服务器操作,你可以显著提高 ERP 系统的效率并减少手动干预。 通过灵活运用服务器操作,企业可实现:

  • 业务流程标准化;
  • 人工干预减少80%+;
  • 数据一致性保障;
  • 跨系统集成扩展;
  • 运营效率显著提升。
赞(0)
未经允许不得转载:网硕互联帮助中心 » 如何通过Odoo 18创建与配置服务器操作
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!