当前位置: 首页 > news >正文

如何通过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%+;
  • 数据一致性保障;
  • 跨系统集成扩展;
  • 运营效率显著提升。

相关文章:

  • 楼宇自控系统的结构密码:总线与分布式结构方式的差异与应用
  • Jackson 库进行 JSON 序列化时遇到了 ‌无限递归(Infinite Recursion)‌ 问题
  • 嵌入式笔记 | 正点原子STM32F103ZET6 5 | 串口通信
  • kafka的文章
  • C#从入门到精通(1)
  • 路由Vue Router基本用法
  • QEMU 中 x86_cpu_realizefn 到 ept_emulation_fault 的调用流程解析(macos)
  • 数据库的两种模式
  • 国内首家,百度智能云千帆AppBuilder全面兼容MCP协议
  • dfs(二十一)46. 全排列 中等
  • 【Linux】信号:产生信号
  • 夜莺监控 v8.0 新版通知规则 | 对接飞书告警
  • 【数据分析】数据筛选与访问行列元素3
  • VLLM专题(十九)—兼容 OpenAI 的服务器
  • [极客大挑战 2019]Http_3.19BUUCTF练习day3(1)
  • 聚类算法api初步使用
  • ArcGIS10.X影像智能下载!迁移ArcGIS Pro批量智能高清影像下载工具至ArcGIS!
  • 音频进阶学习二十——DFT离散傅里叶变换
  • html相关常用语法
  • 【docker】--- 详解 WSL2 中的 Ubuntu 和 Docker Desktop 的区别和关系!
  • 本科生已发14篇SCI论文被指由其教授父亲挂名,重庆大学成立工作组核实
  • 汪明荃,今生不负你
  • 4月深圳新房、二手房成交同比均上涨,“5月有望延续积极向好的发展态势”
  • 央行宣布优化两项支持资本市场的货币政策工具
  • 上海虹桥机场至北京首都机场快线试运行跨航司自愿签转服务
  • 上海模速空间“北斗七星”与“群星”生态布局,正在做些什么?