管理员使用手册
MT 审批工作流管理者手册
本文档面向系统管理员、实施顾问和运维支持人员,说明如何安装、配置、维护和排查 MT 审批工作流。普通用户操作请参考 04-业务用户操作手册.md。
模块、安装与权限
当前交付模块:
-
MT_Bpmn_Designer:BPMN 设计器,负责流程图编辑、节点属性、连线条件。
-
MT_Approval_Workflow:审批工作流核心,负责流程定义、按钮绑定、流程实例、审批中心、通知提醒。
-
MT_Workflow_Demo_Data、MT_Workflow_Demo_Data_EN、MT_Workflow_Demo_Data_ES:演示数据模块,仅建议用于培训、演示或测试库。
生产环境通常只安装 MT_Bpmn_Designer 和 MT_Approval_Workflow。如流程使用岗位、部门、汇报线指派审批人,请先准备 hr 相关基础数据。
建议安装顺序:
-
安装 Odoo 基础业务模块,例如 mail、hr、sale、product。
-
安装 MT_Bpmn_Designer。
-
安装 MT_Approval_Workflow。
-
测试库按需安装演示数据模块。
权限建议:
-
Workflow / User:普通用户,可发起流程、处理自己的审批、办理和抄送。
-
Workflow / Administrator:管理员,可维护流程定义、全局提醒配置、查看全部实例。
生产环境升级和大批量配置调整前,请先备份数据库,并优先在测试库验证。
流程定义与按钮绑定
菜单路径:
- 审批中心 -> 配置 -> 流程定义
配置流程前先确认:
-
目标业务模块已经安装,业务单据可正常使用。
-
需要绑定的业务按钮已经存在,并知道按钮类型和方法名,例如 action_confirm。可以打开debug模式查看


样例如下


样例如下
-
相关业务用户已经创建并可登录。
-
如使用 HR 指派,员工已绑定用户,部门、岗位、上级关系维护完整。
-
如发送邮件,用户邮箱、发件服务器、web.base.url 配置正确。
流程定义主要字段:

-
工作流名称:流程名称,建议包含业务对象和适用场景。
-
相关业务模型:绑定业务模型,例如 sale.order。
-
优先级:优先级,数字越小越优先。
-
启用:是否启用。
-
触发按钮类型:触发按钮类型,当前主要使用 对象按钮。
-
触发按钮名称:业务按钮方法名,例如 action_confirm。
-
触发按钮标签:按钮显示名称快照,便于用户识别。
-
启动条件:启动条件,使用 Odoo 域选择器。
-
审批通过后行为:审批通过后的处理方式。
-
自动跳过已审批人:同一流程中,用户已审批过时是否自动跳过后续重复审批。
-
审批中锁定单据:流程中禁止更新单据。(取审批发起时刻的状态)
-
工作流说明:记录适用场景、审批规则、节点说明、通知规则和测试注意事项。
-
返回提醒:设置退回时的提醒模板。

按钮绑定要求:
-
触发按钮名称 必须是目标模型上真实存在的方法名。
-
常见示例:销售订单确认 action_confirm,报价发送 action_quotation_send。
-
保存启用的流程定义时,系统会校验业务模型和按钮方法。
启动条件示例:
[('state', 'in', ['draft', 'sent'])]
[('amount_total', '>=', 10000)]
配置建议:
-
同一模型、同一按钮存在多套流程时,必须用启动条件区分。
-
启动条件尽量互斥,避免同一单据同时命中多个流程。
-
空条件或 [] 表示适用于所有记录。
-
具体场景使用较小优先级数字,兜底流程使用较大数字。
审批通过后的行为:
-
审批通过后手动重试:审批通过后,用户回到业务单据,再点击一次原业务按钮。
-
审批通过后自动执行:审批通过后,系统自动尝试执行原业务按钮。
上线初期建议优先使用 审批通过后手动重试。业务按钮逻辑简单、无二次弹窗、无复杂交互时,再评估启用自动执行。
BPMN设计与节点配置
详细见MT设计器介绍
提醒、实例与人员维护
全局提醒配置路径:
- 审批中心 -> 配置 -> 全局提醒配置
当前为单例配置。可配置待办汇总邮件和节点提醒邮件。这里控制的是提醒内容、频率规则和邮件模板;真正的后台执行时间由 Odoo 定时任务控制。
全局提醒常用配置:
-
启用待办任务汇总邮件:是否启用待办汇总邮件。
-
汇总频率:汇总频率,可配置每日或每周。
-
汇总日期:每周汇总时的发送日期。
-
汇总邮件主题:汇总邮件标题模板。
-
汇总邮件正文模板:汇总邮件正文模板。
-
汇总任务行模板:汇总邮件中每一条待办的行模板。
-
Enable Custom Reminder Email:是否启用自定义提醒邮件。
-
Reminder Email Subject:节点提醒邮件标题模板。
-
Reminder Email Body Template:节点提醒邮件正文模板。
待办汇总邮件可用占位符:
{user_name}、{task_count}、{pending_approval_count}、{pending_handling_count}、{pending_cc_count}、{tasks_list}、{base_url}。
任务行模板可用占位符:
{record_name}、{record_url}、{node_name}、{task_type}、{deadline}。
节点提醒邮件可用占位符:
{record_name}、{node_name}、{user_name}、{deadline}、{url}。
建议先使用默认模板,确认邮件链路稳定后再调整文案和样式。
定时任务时间配置:
-
进入 Odoo 技术菜单中的 Scheduled Actions,搜索 Workflow:。
-
Workflow: Process Timed-out Approval Tasks:处理审批任务超时,默认每 10 分钟执行。
-
Workflow: Process Timed-out Handling Tasks:处理办理任务超时,默认每 10 分钟执行。
-
Workflow: Send Pending Task Reminders:发送节点提醒,默认每 5 分钟执行。
-
Workflow: Send Pending Digest:发送待办汇总邮件,默认每天执行。
调整建议:
-
超时处理和节点提醒不建议设置得过于频繁,避免给系统和邮件服务造成压力。
-
待办汇总邮件通常设置为每天一次或每周一次。
-
修改定时任务前先确认服务器时区、Odoo 时区和用户时区。
-
关闭定时任务会导致对应提醒或超时处理不再自动执行。
实例管理路径:
- 审批中心 -> 配置 -> 所有流程

管理员可查看全部流程实例,包括来源单据、流程状态、自动执行状态、审批项、办理项、抄送项和日志。必要时可以取消未结束流程;取消会关闭未处理任务和提醒事项,开关这个流程的相关单据的锁定不锁定,请谨慎操作。
批量人员替换路径:
- 审批中心 -> 配置 -> 全部实例 -> 批量替换

该菜单当前默认隐藏,如需使用需由实施人员启用。适用于离职、长期休假、岗位调整和流程交接。
人员离职或转岗时,建议管理员重点检查:
-
离职人员是否仍有待审批任务。
-
离职人员是否仍有待办理任务。
-
离职人员是否仍在抄送接收人中。
-
流程定义中是否固定指定了该用户。
-
运行中实例快照中是否保留了该用户。
-
是否存在实例级后续转办规则。
批量人员替换可处理:
-
待审批任务。
-
待办理任务。
-
待抄送事项。
-
实例级转办规则。
-
流程定义中的固定用户。
-
运行中实例快照中的固定用户。
执行人员替换前建议:
-
先备份数据库。
-
优先在测试库验证。
-
优先选择少量实例试运行。
-
记录替换原因和执行人。
验证、排查与配置建议
新增或修改流程后,至少验证:
-
流程定义可以保存。
-
Design Diagram 可以打开,BPMN 图保存后可再次回读。
-
目标业务按钮点击后能进入工作流判断。
-
不满足启动条件的单据可以正常走原业务逻辑。
-
满足启动条件的单据可以创建流程实例。
-
审批人能在 My Approvals 看到待办。
-
审批同意、拒绝后的流程状态符合预期。
-
办理任务能出现在 My Handling。
-
抄送任务能出现在 CC to Me。
-
Diagram 能显示流程图和日志。
-
如启用邮件,邮件能正常发送并打开单据链接。
-
如启用自动执行,审批通过后原业务动作结果符合预期。
常见排查:
-
流程定义保存时报按钮不存在:检查业务模型、按钮类型、按钮方法名、目标业务模块是否正确。
-
用户点击按钮没有进入审批:检查流程是否启用、模型和按钮是否匹配、启动条件是否命中、是否已有运行中实例。
-
审批人没有收到待办:检查 BPMN 节点类型、审批人规则、员工用户绑定、用户权限和实例日志。
-
自动执行失败:检查原按钮是否打开向导、是否依赖当前用户权限、单据状态是否变化,并查看 auto_execute_error。
-
邮件没有发出:检查邮件服务器、用户邮箱、web.base.url、全局提醒、节点邮件渠道和 cron。
推荐配置方式:
-
先配置一条最小流程,只包含一个审批节点。
-
验证按钮绑定、发起、审批、查看日志。
-
再加入办理、抄送、分支条件。
-
再启用提醒、超时、加签。
-
最后评估是否启用自动执行。
维护原则:
-
一个流程定义只负责一个清晰业务场景。
-
同一按钮的多套流程必须用启动条件清晰区分。
-
流程说明要记录业务规则和变更原因。
-
调整生产流程前,先在测试库跑完整链路。