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

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

http://www.kler.cn/a/594438.html

相关文章:

  • 从需求到智能管理:用 AntSK 和 DeepSeek-R1 打造企业级知识库与测试用例生成系统
  • PyTorch 深度学习实战(19):离线强化学习与 Conservative Q-Learning (CQL) 算法
  • 210、【图论】课程表(Python)
  • 高可用环境下Nginx服务管理脚本优化实践
  • VUE中使用路由router跳转页面
  • 传统金融和分布式金融
  • 五、AIGC大模型_10多模态大语言模型基础知识与示例
  • vue3之写一个aichat---已聊天组件部分功能
  • 文献检索与下指南
  • 神来之笔!Profinet转DeviceNet网关书写OTC焊机机器人连接传奇
  • PHP与Python无缝融合,开启跨语言开发新纪元
  • Web开发-JS应用原生代码前端数据加密CryptoJS库jsencrypt库代码混淆
  • 25.单例模式实现线程池
  • HW华为流程管理体系精髓提炼华为流程运营体系(124页PPT)(文末有下载方式)
  • 【QA】策略模式在QT有哪些应用
  • LabVIEW运动控制(二):EtherCAT运动控制器的多轴示教加工应用(下)
  • Unity音频混合器如何暴露参数
  • 用python制作一个俄罗斯方块小游戏
  • js 力扣100题 非负整数加一
  • 大白话详细解读React框架的diffing算法