🔧 Studio 与系统配置
无代码定制、自动化与审批流
- 模块概述
- Studio 能力矩阵
- 第一章:Studio 基础操作
- 1.1 进入 Studio 模式
- 1.2 Studio 界面构成
- 第二章:字段管理
- 2.1 添加新字段
- 2.2 Studio 支持的字段类型
- 2.3 创建自定义模型
- 第三章:视图编辑
- 3.1 编辑表单视图
- 3.2 视图可编辑元素
- 3.3 编辑列表视图
- 3.4 编辑看板视图
- 3.5 编辑搜索视图
- 第四章:报表设计
- 4.1 修改 PDF 报表
- 4.2 纸张格式
- 第五章:自动化规则(base_automation)
- 5.1 自动化规则概述
- 5.2 触发器类型(全部17种)
- 5.3 动作类型
- 5.4 实战场景1:商机逾期提醒
- 5.5 实战场景2:订单确认后自动创建任务
- 5.6 实战场景3:采购订单3天未审批自动升级
- 第六章:审批流程(Studio Approval)
- 6.1 在按钮上添加审批
- 第七章:系统基础配置
- 7.1 公司信息配置
- 7.2 邮件服务器配置
- 7.3 用户与权限管理
- 7.4 多公司配置
- 7.5 计划任务(ir.cron)
- 第八章:导出 Studio 自定义模块
- 8.1 为什么需要导出
- 8.2 导出操作
- 8.3 安装导出的模块
- 附录:Studio 快捷键
- 附录:自动化规则触发器速查
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)上添加"客户分级"字段
操作步骤:
- 打开客户列表页(联系人 → 客户)
- 点击 Studio 图标进入 Studio 模式
- 在表单视图中,点击一个空白区域或"+"添加字段
- 从左侧字段类型面板选择"选择"(Selection)字段
- 在右侧属性面板配置:
字段名称(技术名):x_customer_level
字段标签(显示名):客户分级
字段类型:选择(Selection)
选项值:
bronze → 铜牌客户
silver → 银牌客户
gold → 金牌客户
vip → VIP客户
默认值:bronze
- 点击"保存"
2.2 Studio 支持的字段类型
| 字段类型(中文) | 技术类型 | 使用场景 |
|---|---|---|
| 文本(单行) | Char |
简短文字(名称、编码) |
| 文本(多行) | Text |
描述、备注 |
| 整数 | Integer |
数量、计数 |
| 小数 | Float |
重量、精确数值 |
| 金额 | Monetary |
价格、金额(与货币字段配合) |
| 布尔值 | Boolean |
开关(是/否) |
| 日期 | Date |
日期(年月日) |
| 日期时间 | Datetime |
精确时间 |
| 选择 | Selection |
枚举(状态、类型) |
| 多对一 | Many2one |
关联另一模型的记录 |
| 一对多 | One2many |
子表格(明细行) |
| 多对多 | Many2many |
标签、多选关联 |
| HTML | Html |
富文本内容 |
| 图片 | 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 编辑表单视图
场景:在销售订单表单上添加"销售渠道"字段
- 进入销售订单表单
- 开启 Studio
- 在左侧找到已创建的字段"x_sale_channel"
- 拖拽到表单的目标位置
- 调整标签和位置
- 保存
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_change |
UI界面变更时 |
on_time |
基于日期字段 |
on_time_created |
创建后N天 |
on_time_updated |
最后更新后N天 |
on_message_received |
收到消息时 |
on_message_sent |
发送消息时 |
on_webhook |
Webhook触发时 |
文档版本:Odoo 19 Enterprise | 更新日期:2026-03-04