4. 审批人与职责分配策略:固定审批人、角色审批、动态指派、代理与转交
4.1 用户场景与业务问题
在B端系统中,审批流的“人”是核心。不同企业、不同业务场景对审批人的确定方式截然不同。如果系统只支持单一模式,将直接导致流程僵化、管理混乱甚至审批事故。
典型场景一:财务报销——固定审批人冲突
某公司财务部规定,所有金额超过5000元的报销单必须由财务总监张总审批。但当张总休年假时,报销单卡在“财务总监审批”节点3天无人处理。业务员小王因垫付差旅费迟迟未报销,向HR投诉。HR发现系统无法临时更换审批人,只能通过后台手动跳转流程,严重违反财务内控要求。
典型场景二:部门请假——角色审批与动态指派矛盾
某电商公司规定,运营部门员工请假需由“部门经理”审批。但运营部有三位经理:A经理负责内容组、B经理负责活动组、C经理负责数据组。系统如果只按“角色”匹配,会把请假单平均分配给所有经理,导致A经理审批了本不属于自己团队的人的假单,造成管理混乱。业务需求是:根据员工的部门-组别关系,动态指派对应经理。
核心业务问题:审批流系统如何满足“人”的动态变化、组织架构调整、突发缺席等现实情况?固定、角色、动态、代理、转交这五种策略分别解决什么痛点?
4.2 用户访谈与需求拆解
我们对5家企业(制造、零售、IT、金融、医疗)的14位审批相关负责人进行了深度访谈,核心发现如下:
| 痛点关键词 | 访谈原话摘录 | 需求拆解 |
|---|---|---|
| 审批卡死 | “每次领导一请假,流程就卡住了,不能因为一个人耽误整个业务。”——某制造企业采购主管 | 需要支持审批人代理(Deputy)和转交(Transfer)功能,并支持提前设置代理规则。 |
| 误批 | “我的团队的人事变动,不应该由我来批,我根本不知道他们做了什么。”——某IT公司技术总监 | 需要按组织维度(部门/组/项目)进行动态指派,而非简单的角色匹配。 |
| 权责不清 | “财务体系里有‘财务主管’、‘财务经理’、‘财务总监’,谁来审批什么金额,得写死。”——某金融公司财务负责人 | 针对特定场景(如金额、地区、费用类型)需要固定审批人配置。 |
| 公平性问题 | “好几个经理轮班,如何确保审批单自动分配给当值的人?”——某零售运营总监 | 需要支持轮询机制或按负载动态分配。 |
4.3 方案表达:四策略 + 一补充机制
基于上述调研,我们将审批人分配策略归纳为“四种核心策略 + 代理转交补充机制”,产品方案表达如下:
概念速查:
固定审批人:指定具体用户ID,如 user_001(张总)。
角色审批:指定角色Code,如 role_dept_manager,系统按公共角色匹配所有人。
动态指派:指定规则表达式,如
代理与转交:操作层,审批人可临时将任务转给他人。
固定审批人:指定具体用户ID,如 user_001(张总)。
角色审批:指定角色Code,如 role_dept_manager,系统按公共角色匹配所有人。
动态指派:指定规则表达式,如
发起人.department.manager,运行时动态解析。代理与转交:操作层,审批人可临时将任务转给他人。
策略1:固定审批人(Fixed Approver)
- 适用场景:财务审批(金额超过10万)、CEO特批、特定法律文件签字等权责极度明确的场景。
- 配置方式:直接在流程节点绑定具体员工ID或员工编码。
- 避坑:如果该员工离职/调岗,流程Node会彻底失效,必须与HR系统做离职校验。
策略2:角色审批(Role-based Approver)
- 适用场景:通用流程,如部门经理审批、HR审批、法务审批。
- 配置方式:绑定角色(如“部门经理”、“法务专员”)。系统在运行时,查询当前角色下所有在职用户。
- 常见问题:如果角色下有多人(如法务部3人),需配置审批模式:会签(全部同意)、或签(一人同意即可)、顺签(按指定顺序依次审批)。
策略3:动态指派(Dynamic Assignment)
- 适用场景:基于上下文的多维审批,如“根据发起人的直属上级”、“根据费用归属项目的项目经理”。
- 配置方式:使用表达式或DSL(领域特定语言)。
// 动态指派表达式示例(伪代码)
// 规则:发起人的部门主管为审批人
assignee_type: "dynamic_expression"
expression: "initiator.department.manager"
// 规则:费用归属项目的项目经理为审批人
expression: "expense.project.manager"
// 规则:根据金额区分(超20万找财务总监,否则找会计)
if(amount > 200000) { return "user_finance_director" }
else { return "user_accountant" }
策略4:代理与转交(Deputy & Transfer)
- 适用场景:紧急代替、权力下放、节假日轮值。
- 代理(Deputy):系统或管理员提前设置好代理关系。当原审批人无法处理时(如请假、离职状态),系统自动将任务推送给代理人。
- 转交(Transfer):原审批人主动操作,将当前待办任务转给另一个用户处理。
- 业务规则:
代理通常用于“角色”的长期托管;
转交用于“单次任务”的临时变更,且需要记录转交链路。
避坑提示:
1. 不可循环代理:A代理B,B代理A,必须检测并阻断。
2. 转交权限控制:转交不应改变最终审批权责,转交人仍需为结果负责。可将“转交”视为“发起协同”或“会签”的一种特殊形式。
3. 日志强记录:每一次代理/转交操作都必须记录在案,以支持后续审计。
1. 不可循环代理:A代理B,B代理A,必须检测并阻断。
2. 转交权限控制:转交不应改变最终审批权责,转交人仍需为结果负责。可将“转交”视为“发起协同”或“会签”的一种特殊形式。
3. 日志强记录:每一次代理/转交操作都必须记录在案,以支持后续审计。
4.4 审批人分配策略结构图
4.5 方案验证与验收标准
指标验证(可量化)
| 指标 | 验证方法 | 目标值 |
|---|---|---|
| 审批超时率(因人员不可用导致) | 统计30天内,因原审批人休假/离职导致流程卡死超过24小时的工单数 / 总工单数 | ≤ 0.5% |
| 审批指派错误率 | 抽样100个动态指派工单,手动核验指派逻辑是否符合规则 | 0% |
| 代理成功率 | 创建代理关系后,提交10个工单,验证是否正确到达代理人 | 100% |
验收标准(功能用例)
- 固定审批人测试:配置“固定审批人 = user_zhang”。提交工单,审批人应为 user_zhang。将user_zhang账号禁用,提交工单,系统应报错提示“审批人不可用”并进入异常处理(通知/暂停)。
- 角色审批测试:配置“角色 = 部门经理”。部门有2位经理,提交工单,系统应提示选择审批模式(会签/或签),并正确展示待办。
- 动态指派测试:配置“表达式 = initiator.department.manager”。提交一个来自“技术部-后端组”员工的工单,验证审批人是否为技术部部门经理。
- 代理转交测试:A设置代理人为B。A请假后,新工单应自动分配给B。A收到一个工单后,点击“转交”,输入用户C,工单应进入C的待办,并在流程日志中记录
转交链路: A -> C。
4.6 交付物模板
审批人配置规则模板
# 规则模板示例
流程节点: "财务审批-高级金额(>20万)"
审批人策略: "固定审批人"
审批人ID列表: ["user_finance_director"]
流程节点: "财务审批-普通金额(<=20万)"
审批人策略: "角色审批"
角色Code: "role_accountant"
审批模式: "或签" // 任意一人同意即可
流程节点: "部门经理审批"
审批人策略: "动态指派"
规则表达式: "initiator.department.manager"
后备策略: "如果未找到经理,转交至HRBP"
代理/转交配置表
| 原审批人 | 代理人 | 代理范围 | 生效时间 | 失效时间 | 创建人 |
|---|---|---|---|---|---|
| 张总(user_zhang) | 王总监(user_wang) | 全部审批流程 | 2025-07-01 00:00 | 2025-07-15 23:59 | Admin |
产品经理自查清单:
□ 是否已区分固定/角色/动态三种策略?
□ 是否为每种策略配置了后备方案(找不到人时如何处理)?
□ 代理转交功能是否有审计日志?
□ 是否支持批量配置代理规则(如按部门/岗位)?
□ 审批节点是否支持“催办”能力,用于提醒当前审批人?
□ 是否已区分固定/角色/动态三种策略?
□ 是否为每种策略配置了后备方案(找不到人时如何处理)?
□ 代理转交功能是否有审计日志?
□ 是否支持批量配置代理规则(如按部门/岗位)?
□ 审批节点是否支持“催办”能力,用于提醒当前审批人?