Skip to content

节点配置

BPMN 流程由多种节点通过连线串联构成。不同节点类型在审批引擎中承担不同角色——开始事件触发流程、用户任务驱动审批、网关控制分支、脚本任务执行业务逻辑、结束事件标记流程终点。其中用户任务节点是配置的核心,涉及审批人、审批方式、服务端方法与代码、抄送人等全部审批相关设置。

节点类型

节点类型图标特征作用是否需要配置
StartEvent(开始)圆圈流程入口,一个流程有且仅有一个否,创建实例后自动触发执行
EndEvent(结束)加粗圆圈流程终点,到达后实例状态变为 已完成是,仅配置抄送人
UserTask(用户任务)圆角矩形 + 用户图标审批节点,需人工操作(提交/同意/拒绝)是,核心配置对象
ScriptTask(脚本任务)圆角矩形 + 脚本图标自动执行 Python 代码,无需人工交互是,仅需配置脚本代码
ExclusiveGateway(排他网关)菱形 + X条件分支,按连线条件选一条路径执行排他网关本身不需要配置,但是排他网关之后的流转必须配置
ParallelGateway(并行网关)菱形 + +并行分支,所有分支同时执行

用户任务节点配置

用户任务(UserTask)是审批流程的核心节点,一个流程中可以有一个或多个。每个用户任务代表一个审批环节,审批人需要在 Odoo 中手动点击同意/驳回来完成审批。

配置项字段说明
用户user_ids多选用户列表,选中的用户均有审批权限
用户组group_ids多选用户组列表,组内所有成员均有审批权限
领导审批is_leader_approval布尔开关,勾选后自动将上一步审批人的直属上级设为当前节点审批人
并行审批is_parallel_approval布尔开关,关闭为或签(一人通过即通过);开启为会签(所有人通过才通过)。并行审批只验证 用户 中的配置,开启后,会自动隐藏 用户组并行审批
抄送人cc_user_ids多选用户列表,审批到达本节点时抄送人收到通知
批准执行方法approve_server_method同意时调用的 Python 表达式,如 self.button_confirm()
驳回执行方法reject_server_method驳回时调用的 Python 表达式,如 self.button_draft()
批准执行代码approve_code同意时执行的 Python 代码块,支持多行,预置变量参考
驳回执行代码reject_code驳回时执行的 Python 代码块,支持多行,编码范例参考

结束节点只需要配置 抄送人,可根据实际业务决定是否配置

脚本任务节点配置

步骤操作备注说明
1进入BPMN流程设计器需要在流程图中配置
2选中脚本任务节点在右侧属性面板中找到 Script 选项并打开,Type 选择 Inline script,录入 Script
3脚本格式标准python语法,如 self.state = 'sent',self 就是发起审批的那条业务单据记录;如果什么都不做,可以配置 pass;复杂脚本配置如下所示:
python
if self.state == 'draft':
self.state = 'processing'

# 创建关联记录
self.env['sale.order.line'].create({
    'order_id': self.id,
    'product_id': 1,
    'product_uom_qty': 10,
})

# 发送邮件
template = self.env.ref('sale.email_template_edi_sale')
template.send_mail(self.id)

# 记录日志
self.message_post(body='订单已自动处理')

排他网关流转配置

步骤操作备注说明
1进入BPMN流程设计器需要在流程图中配置
2选中排他网关后面的连线在右侧属性面板中找到 Condition 选项并打开,Type 选择 Expression,录入 Condition Expression
3条件表达式格式标准python语法,如 self.amount_total>5000,self 就是发起审批的那条业务单据记录,排他网关后面连线中的判断条件为必填项

学习交流

操作预览