跳至内容

操作手册Handbooks 13

Studio 与系统配置 Studio & Configuration

无代码定制、自动化与审批。 Low-code customization, automation and approvals.

Odoo 19 企业版 Studio 与系统配置操作手册

适用版本:Odoo 19 Enterprise 涉及模块:web_studio(Studio)+ base_automation(自动化规则)+ base_setup(基础设置) 适用角色:系统管理员、Odoo 实施顾问 贯穿场景:定制视图 → 添加字段 → 创建应用 → 设置自动化规则 → 导出模块


模块概述

Studio 能力矩阵

Odoo Studio(无代码定制工具)
├── 视图编辑        ← 修改表单/列表/看板布局
├── 字段管理        ← 添加/修改/删除字段
├── 菜单管理        ← 创建菜单项和顶级应用
├── 自动化规则      ← 触发器+动作的无代码自动化
├── 报表设计        ← 自定义PDF报表模板
├── 审批流程        ← 在按钮上增加审批控制
├── 访问权限        ← 模型/视图级访问控制
└── 模块导出        ← 将定制打包成可部署模块

第一章:Studio 基础操作

1.1 进入 Studio 模式

方法一:顶部右侧 Studio 图标按钮 方法二:Settings → Technical → Studio → 激活(需企业版许可证)

进入 Studio 后,当前页面周围出现蓝色边框,右侧出现 Studio 工具栏。

注意:Studio 操作直接修改数据库定义,建议在测试环境先验证后再应用到生产环境。

1.2 Studio 界面构成

┌───────────────────────────────────────────────────────┐
│  普通应用视图(实时预览)                              │
│                                                         │
│  [字段选择区] ←→ [视图画布] ←→ [属性配置面板]          │
│                                                         │
│  左侧:字段类型面板    右侧:选中元素属性              │
└───────────────────────────────────────────────────────┘

第二章:字段管理

2.1 添加新字段

场景:在客户档案(res.partner)上添加"客户分级"字段

操作步骤:

  1. 打开客户列表页(联系人 → 客户)
  2. 点击 Studio 图标进入 Studio 模式
  3. 在表单视图中,点击一个空白区域或"+"添加字段
  4. 从左侧字段类型面板选择"选择"(Selection)字段
  5. 在右侧属性面板配置:
字段名称(技术名):x_customer_level
字段标签(显示名):客户分级
字段类型:选择(Selection)
选项值:
  bronze    → 铜牌客户
  silver    → 银牌客户
  gold      → 金牌客户
  vip       → VIP客户
默认值:bronze
  1. 点击"保存"

2.2 Studio 支持的字段类型

字段类型(中文)技术类型使用场景
文本(单行)Char简短文字(名称、编码)
文本(多行)Text描述、备注
整数Integer数量、计数
小数Float重量、精确数值
金额Monetary价格、金额(与货币字段配合)
布尔值Boolean开关(是/否)
日期Date日期(年月日)
日期时间Datetime精确时间
选择Selection枚举(状态、类型)
多对一Many2one关联另一模型的记录
一对多One2many子表格(明细行)
多对多Many2many标签、多选关联
HTMLHtml富文本内容
图片Binary图片/附件

2.3 创建自定义模型

场景:需要一个"设备维保记录"功能,现有模块中没有

操作步骤:

Studio → 新建应用 → 开始创建

应用名称:设备维保管理
菜单位置:顶级菜单(或挂载到现有菜单下)
模型选项(可多选):
  ☑ 消息功能(use_mail)        ← 支持Chatter
  ☑ 归档功能(use_active)      ← 支持隐藏记录
  ☑ 负责人字段(use_responsible) ← 记录负责人
  ☑ 关联联系人(use_partner)   ← 关联客户/供应商
  ☑ 日期字段(use_date)         ← 维保日期
  ☑ 阶段管理(use_stages)       ← 看板阶段
  ☑ 标签(use_tags)             ← 分类标签
  ☑ 明细子表(lines)            ← 维保明细行

系统自动创建:

  • 模型 x_维保记录(技术名 x_device_maintenance)
  • 看板视图
  • 表单视图
  • 列表视图
  • 顶级菜单"设备维保管理"

第三章:视图编辑

3.1 编辑表单视图

场景:在销售订单表单上添加"销售渠道"字段

  1. 进入销售订单表单
  2. 开启 Studio
  3. 在左侧找到已创建的字段"x_sale_channel"
  4. 拖拽到表单的目标位置
  5. 调整标签和位置
  6. 保存

3.2 视图可编辑元素

元素操作
字段添加、移动、隐藏、必填控制
标签修改显示文字
分隔符/标题添加视觉分组
按钮添加智能按钮或自定义动作
选项卡添加新选项卡、重排序
子表格修改明细行显示字段

3.3 编辑列表视图

在列表视图开启 Studio:

  • 拖拽调整列的顺序
  • 增删列(字段)
  • 设置默认排序

3.4 编辑看板视图

在看板视图开启 Studio:

  • 修改每个卡片显示的字段
  • 调整列(阶段)配置
  • 设置颜色规则

3.5 编辑搜索视图

在搜索栏旁开启 Studio:

  • 添加快速搜索字段
  • 添加默认分组选项
  • 配置收藏过滤器

第四章:报表设计

4.1 修改 PDF 报表

场景:在销售报价单上增加公司 LOGO 和免责声明

操作路径:Studio → 报表(当前模型的报表列表)

选择报表:报价单(Quotation)
编辑模式:
  ├── 布局:页眉/页脚设置
  ├── 内容:拖拽字段到报表
  └── 样式:字体/颜色/边框

支持的报表元素:

  • 文本字段
  • 数字字段(带格式)
  • 日期字段
  • 表格(明细行)
  • 图片(公司Logo)
  • 二维码/条码

4.2 纸张格式

可设置:A4/Letter/自定义尺寸,横向/纵向,页边距。


第五章:自动化规则(base_automation)

5.1 自动化规则概述

自动化规则 = 触发条件 + 执行动作

操作路径:设置 → 技术 → 自动化规则 → 新建

5.2 触发器类型(全部17种)

记录变更类

触发器使用场景
创建时新建记录后立即执行
创建或编辑时新建或修改后执行(推荐常规使用)
更新时记录被修改时(已废弃,建议用上一个)
阶段设置为看板阶段变化时(如:移入"赢单"阶段)
用户被设置记录被分配给特定用户时
标签被添加打上特定标签时
状态设置为状态字段变更时(如:state变为sale)
优先级设置为优先级变化时
归档时记录被归档(active→False)
取消归档时记录被还原时
删除时记录被删除前

基于时间类

触发器使用场景
基于日期字段在某日期字段的前后N天/小时
创建后记录创建后N天(create_date)
最后更新后记录更新后N天(write_date)

消息与交互类

触发器使用场景
收到消息时记录收到新消息
发送消息时记录发出消息
UI界面变更时表单中实时字段变化(仅Python代码)
Webhook触发时外部HTTP请求触发

5.3 动作类型

动作类型说明
创建记录创建关联记录(如:创建活动)
修改记录更新字段值
执行代码执行Python代码(高级)
发送邮件发送邮件通知
发送短信发送短信(需配置SMS服务)
添加关注者订阅用户到chatter
创建活动创建待办活动提醒

5.4 实战场景1:商机逾期提醒

需求:商机预计关闭日期过期2天仍未赢单,自动发邮件提醒销售员

自动化规则配置:
  名称:商机逾期提醒
  模型:CRM商机(crm.lead)
  触发器:基于日期字段
    字段:预计关闭日期(date_deadline)
    延迟:+2天(超过截止日期2天后)
  过滤条件:stage_id.is_won = False(排除已赢单)
  动作:发送邮件
    收件人:负责销售员(user_id)
    模板:商机逾期提醒邮件

5.5 实战场景2:订单确认后自动创建任务

需求:销售订单确认后,自动在"实施项目"中创建"开始实施"任务

自动化规则配置:
  名称:销售订单→自动创建实施任务
  模型:销售订单(sale.order)
  触发器:状态设置为
    状态值:sale(已确认)
  动作:执行Python代码
    代码:
      project = env['project.project'].search([
          ('name', '=', '客户实施项目')
      ], limit=1)
      if project:
          env['project.task'].create({
              'name': f'[{record.name}] 开始实施',
              'project_id': project.id,
              'user_ids': [(6, 0, [record.user_id.id])],
              'date_deadline': record.commitment_date,
          })

5.6 实战场景3:采购订单3天未审批自动升级

自动化规则配置:
  名称:采购订单审批超时升级
  模型:采购订单(purchase.order)
  触发器:基于日期字段
    字段:提交日期(date_approve)
    延迟:+3天
  过滤条件:state = draft(仍在草稿/待审批)
  动作:
    1. 发送邮件给采购总监
    2. 创建活动:分配给采购总监,提醒审批

第六章:审批流程(Studio Approval)

6.1 在按钮上添加审批

场景:销售订单确认按钮,需要销售经理审批

操作路径:Studio → 打开销售订单表单 → 选中"确认"按钮 → 右侧属性 → "添加审批"

审批配置:
  审批人:销售经理(用户组)
  可拒绝:☑
  拒绝后状态:保持当前状态(不执行原按钮动作)
  审批消息:请说明审批原因

审批流程:

  1. 销售员点击"确认"→ 弹出请求审批对话框
  2. 销售经理在系统看到待审批通知
  3. 审批通过:订单自动确认
  4. 审批拒绝:订单保持草稿,销售员收到通知

第七章:系统基础配置

7.1 公司信息配置

操作路径:设置 → 通用设置 → 公司

公司名称:明星科技有限公司
税务号:91310000XXXXXXXXXX
地址:上海市松江区XXXXX
LOGO:上传公司Logo(显示在报表/邮件中)
货币:CNY(人民币)
语言:简体中文(zh_CN)
时区:亚洲/上海

7.2 邮件服务器配置

操作路径:设置 → 技术 → 邮件 → 发送服务器

服务器名称:企业邮件服务器
SMTP服务器:smtp.mxtech.com.cn
端口:465(SSL)或587(TLS/STARTTLS)
用户名:no-reply@mxtech.com.cn
密码:(SMTP密码)

测试连接 → 成功后保存

7.3 用户与权限管理

操作路径:设置 → 用户与公司 → 用户

角色权限级别:

级别说明
内部用户可登录 Odoo 后台,可用已分配应用
门户用户仅能访问门户(客户自助服务)
公开用户网站访客

模块内权限组示例(销售):

  • 销售/用户:仅能看到自己的商机和订单
  • 销售/经理:可看到所有销售数据,可审批

7.4 多公司配置

操作路径:设置 → 用户与公司 → 公司

启用多公司:允许用户在多个公司间切换(顶部菜单)
公司间规则:
  ├── 共享联系人(res.partner)
  ├── 独立账套(各公司账套分离)
  └── 共享产品目录(可配置)

7.5 计划任务(ir.cron)

操作路径:设置 → 技术 → 计划动作

常见系统计划任务:

任务名称频率说明
发送计划活动提醒每天提醒即将到期的活动
账龄分析更新每天更新账龄报告数据
自动评估汇率每天从汇率服务获取最新汇率
自动补货规则运行每天执行最小库存补货规则
制造订单可用性检查每天检查原材料可用性
营销自动化活动执行每小时执行自动化营销触发器

第八章:导出 Studio 自定义模块

8.1 为什么需要导出

  • 从测试环境迁移到生产环境
  • 版本管理(使用 Git 管理)
  • 与其他 Odoo 实例共享

8.2 导出操作

操作路径:Studio → "导出"按钮

模块名称(技术名):mxtech_custom
模块标题:明星科技自定义配置
版本:1.0.0
作者:明星科技信息部

导出内容选择:
  ☑ 所有 Studio 自定义内容(字段、视图、菜单)
  ☑ 自动化规则
  ☑ 访问权限
  ☑ 审批规则
  
导出格式:.zip(包含 __manifest__.py 和 Python/XML 文件)

8.3 安装导出的模块

# 将 zip 解压到 custom_addons 目录
# 然后升级 Odoo
./odoo-bin -c odoo.conf -u mxtech_custom

附录:Studio 快捷键

操作说明
点击字段选中并显示属性
拖拽字段移动到新位置
Escape退出 Studio 模式
Ctrl+Z撤销上一步操作

附录:自动化规则触发器速查

触发器值中文名
on_create创建时
on_create_or_write创建或编辑时
on_write更新时(已废弃)
on_stage_set阶段设置为
on_user_set用户被设置
on_tag_set标签被添加
on_state_set状态设置为
on_priority_set优先级设置为
on_archive归档时
on_unarchive取消归档时
on_unlink删除时
on_changeUI界面变更时
on_time基于日期字段
on_time_created创建后N天
on_time_updated最后更新后N天
on_message_received收到消息时
on_message_sent发送消息时
on_webhookWebhook触发时

文档版本:Odoo 19 Enterprise | 更新日期:2026-03-04