企业工作流的办理人不能只保存一个姓名或账号。更合理的设计是:流程模型保存“由谁办理”的业务规则,任务到达节点时,再结合流程发起人、当前办理人、业务数据和组织关系,解析出当时真正具备办理资格的用户。
用户、部门、角色、岗位和动态关系不是五种相互替代的选人控件,而是五个不同维度。用户回答“具体是谁”,部门回答“在哪个组织范围”,角色回答“具有什么业务资格”,岗位回答“承担什么组织职务”,动态关系回答“相对于谁、沿哪条组织路径、满足什么条件”。只有把这五个维度拆开,工作流才能适应组织调整、人员兼职和复杂审批关系。
一、核心结论与问题边界
先给答案:流程模型保存规则,任务创建时解析人员
如果把“张三”直接写进流程模型,张三调岗或离职后,模型立即失效;如果只写“财务部经理”,系统又无法判断是发起人所在部门的经理、当前办理人上级部门的经理,还是全公司的财务经理。
完整的办理人链路应由四部分组成:设计阶段保存稳定的业务规则;运行时确定关系上下文;组织能力负责展开部门、角色和岗位;任务创建时把结果映射为独办、候选认领或多人审批。历史记录同时保存规则、上下文和解析结果,才能解释当时为什么由这些人办理。
五类办理人分别解决什么问题

| 类型 | 核心含义 | 典型配置 | 主要风险 |
|---|---|---|---|
| 用户 | 固定到具体自然人账号 | 档案管理员、法人代表 | 离职、调岗、维护成本 |
| 部门 | 在组织范围内选择人员 | 财务部、采购部 | 范围过大、无人负责 |
| 角色 | 按业务权限或资格选择 | 费用审核员、法务审核员 | 全局授权过宽、缺少组织边界 |
| 岗位 | 按组织职务选择 | 部门经理、成本会计 | 空岗、多人任职、兼职冲突 |
| 动态关系 | 根据流程上下文实时计算 | 发起人上级、项目所属区域负责人 | 锚点含糊、组织变化、空结果 |
五类规则最终都要落到“谁有权看见并办理任务”,但不应在设计阶段被强行转换成同一种静态数据。设计器保存的是选择意图,运行时解析的是具体人员,二者之间必须有清晰的组织语义层。
流程引擎与企业组织模型的边界
主流流程引擎通常只负责保存最终任务关系,例如指定某个人直接办理、允许一组候选人认领,或者为多名审批人分别创建任务。它并不了解企业里的部门层级、岗位任职、业务角色、兼职关系和发起人上级等概念。
这种边界是合理的。组织结构属于企业主数据,流程引擎不应复制一套难以同步的组织体系。工作流平台应在任务创建前完成组织语义解析,再把最终用户或候选范围交给引擎。这样既保留引擎的通用性,也允许组织体系独立演进。
二、关键概念与能力差异
用户办理人什么时候最合适
固定用户适合责任长期稳定、人员范围很小的节点,例如档案管理员、法人代表或专门的系统运营人员。配置时应保存不可变的用户标识,姓名只用于界面展示;流程发布和任务创建前,还要检查用户是否有效、是否被禁用以及是否仍属于允许的组织范围。
用户办理人的优点是明确,缺点是维护成本高。把每个审批节点都绑定到个人,会把组织变动变成流程模型变更。业务语义是“某个人”时使用固定用户;业务语义是“某类责任人”时,应优先使用角色、岗位或动态关系。
部门办理人为什么不能等于部门所有人
部门表示组织范围,不天然表示审批责任。将“财务部”直接展开为财务部所有员工,可能产生几十个候选人,既泄露业务信息,也没有明确的首责人。
部门规则至少要回答四个问题:是否包含下级部门,是否只取本部门,是否叠加岗位或角色资格,以及多人结果采用认领还是分别审批。常见做法是先确定部门范围,再用岗位、角色或其他资格条件缩小人员集合。这样,“部门”和“责任资格”能够分别配置、分别审计。
角色和岗位到底有什么区别
角色是业务授权维度,例如费用审核员、合同管理员;岗位是组织任职维度,例如部门经理、成本会计。一个人可以在多个组织中承担相同岗位,也可以拥有跨组织的专业角色。两者都能映射到用户,但治理方式不同。
角色规则必须明确适用范围:全公司、当前组织、发起人部门还是指定区域。岗位规则必须明确任职组织、主兼职处理方式以及空岗和多人任职策略。只配置“经理”或“审核员”而没有组织边界,结果通常会过宽。
三、模型架构与运行机制
动态关系办理人是什么
动态关系办理人是一条运行时计算规则:先确定关系锚点,再沿组织路径定位范围,最后叠加岗位、角色或业务条件,得到具体用户。它不是第五套独立的组织数据,而是组合前四类身份的计算语言。

例如“发起人上级部门经理”可以拆成三步:锚点是流程发起人;组织路径是发起人部门的上一级部门;资格条件是经理岗位。拆开以后,配置可以预览,结果可以解释,组织变更时也能重新计算。
动态关系必须明确锚点、路径和资格
锚点决定从谁或什么对象开始计算,常见锚点包括流程发起人、当前办理人、业务单据中的人员或组织。组织路径决定从锚点向哪里查找,例如当前部门、上一级部门、顶级组织、同级组织或指定区域。资格条件负责从组织范围中筛出岗位、角色或满足业务条件的人。
任何一段含糊都会产生错误。只写“上级领导”,无法判断是发起人的上级、当前办理人的上级,还是业务负责人的上级;只写“区域负责人”,也必须明确区域来自发起人组织还是业务单据。
四、核心场景与处理策略
流程发起人关系和当前办理人关系必须分开
流程发起人在流程实例创建后通常保持稳定,当前办理人则随着任务推进不断变化。采购申请中的“发起人部门经理”应始终围绕申请人计算,而“当前审批人的上级”可能在每个节点得到不同结果。
平台界面不能笼统显示“上级部门”或“上级领导”,应明确显示关系锚点。流程启动时还应保存发起人的组织上下文,以免发起人后续调岗导致正在运行的流程出现不可解释的办理人变化。
组织范围与角色资格为什么经常需要取交集
角色单独使用容易跨组织过宽,组织单独使用又缺少办理资格。许多审批规则本质上是两个集合的交集,例如“当前区域内具有法务审核资格的人”或“发起人部门及其下级部门中的成本会计”。
正确的计算顺序是:先确定组织范围并展开其中的有效人员,再展开具备指定角色或岗位的人员,最后取交集。解析记录要保留范围来源、资格来源和过滤原因,不能只留下最终名单。
五、数据、规则与状态设计
业务数据驱动选人应该怎样设计
项目负责人、合同经办人、资产所属部门和客户区域等办理依据通常来自业务单据。此类规则应先声明数据代表的是用户、部门、角色还是岗位,再进行格式校验和有效性校验,最后通过组织能力展开为具体用户。
业务数据不能因为字段为空或值无效而静默生成无人办理的任务。平台应提供发布校验和运行时异常策略,并在流程提交前告诉用户缺少哪项选人依据。对跨系统规则,可以调用受控的外部决策服务,但必须具备超时、鉴权、熔断、缓存和可观测能力。
办理人解析为什么要分层

办理人设计适合分为五层:流程设计器负责表达业务规则;规则模型保存类型、范围、条件和组合方式;上下文层提供发起人、当前办理人和业务数据;组织与身份能力负责展开用户、部门、角色和岗位;任务映射层根据人数和业务语义生成最终任务关系。
分层的价值在于解耦。组织系统可以从本地组织库切换到统一身份平台,流程模型不需要重写;业务规则可以增加新的关系类型,流程引擎仍只接收最终人员结果。每一层都能独立测试,也能在解析日志中给出清晰证据。
六、工程实现与系统集成
多条办理人规则是并集还是交集
规则组合必须显式。用户甲或角色乙表示并集;部门甲且岗位乙表示交集;角色甲但排除流程发起人表示差集。多人结果还可能叠加人数上限、优先级、轮询或负载均衡。

设计器应让业务人员直接选择“或、且、排除”,并展示每一步的候选数量。不能依赖配置顺序或隐含数据结构表达集合关系,否则不同维护人员很容易得到相反结果。
解析结果怎样映射到任务模式
解析到一名用户时,可以创建独办任务;解析到多名用户且只需一人处理时,应创建候选认领任务;解析到多名用户且每人都要给出意见时,应创建多人审批任务。
| 业务要求 | 任务模式 | 完成语义 |
|---|---|---|
| 指定一人办理 | 独办任务 | 指定用户完成 |
| 多人抢单 | 候选认领 | 一人认领后完成 |
| 多人会签 | 多人审批 | 按人数、比例或权重汇总 |
| 先选范围再指定 | 候选范围加提交时选人 | 被选用户承担责任 |
| 管理员兜底 | 管理关系或人工改派 | 不直接等同于办理人 |
部门、角色和岗位不应机械映射为同名候选组。只有身份系统能够稳定维护组成员、查询时正确展开并且历史可追溯,才适合保留组关系;否则应在任务创建时解析为用户快照。
七、安全、性能与治理要求
多组织任职怎样避免选错部门
同一用户可能在多个部门任职。只按人员去重,会把不同组织上下文合并,导致用户以兼职部门身份发起,却按主部门审批。多组织系统必须区分“自然人”和“任职关系”。
启动流程时应记录发起人、发起部门和必要的任职信息;后续动态关系优先围绕这份组织上下文解析。用户切换组织、代理发起或业务单据归属其他部门时,也要明确选择哪一个组织身份。
组织变化后应该实时计算还是按快照计算
办理人解析至少发生在三个时间点:流程设计时、流程启动时和任务创建时。固定用户与静态组织配置通常在任务创建时按最新组织数据校验;发起部门等流程语义应保存启动快照;已经创建的候选任务不应因为后台组织同步而无痕改变。
建议同时保存规则快照、上下文快照和解析结果快照。组织调整后是否重新计算,应由明确的迁移或管理员操作触发,并记录变更前后人员。这样既能适应人员变化,也不会让历史审批责任失去依据。
案例实践与迁移路线
空结果、多人结果和异常结果怎么处理
动态关系最危险的不是算错一个人,而是结果为空或范围突然扩大。每条规则都应配置空结果策略:阻止提交、转管理员、回落到指定用户、回落到上级组织,或进入异常处理节点。不能默认跳过审批,也不能自动把所有人设为候选人。
多人结果还要配置任务模式、最大人数和排序规则。外部服务返回重复用户、禁用用户、跨租户用户或没有有效任职信息的用户时,解析层应过滤并给出可解释错误。大范围候选池还要考虑分页、索引和隐私边界。
权限、安全和审计需要记录什么
办理人规则决定谁能看见业务数据,因此也是数据权限规则。外部决策服务只能接收最小必要上下文;组织能力要校验租户和组织边界;配置全局角色、所有用户或跨组织关系时,应要求更高权限。
审计日志至少记录流程实例、节点、规则版本、关系锚点、组织查询条件、集合运算、过滤原因、最终用户和解析耗时。对于人工改派,还要保存原解析结果、修改人和修改理由。
八、平台落地、测试与选型
低代码平台怎样产品化五类办理人
成熟的设计器应让用户先选择固定身份还是动态关系,再逐步配置范围、资格、组合方式、任务模式和异常策略。发布校验要检测失效用户、空岗位、跨组织角色、无效业务数据、不可访问的外部服务,以及可能产生超大候选池的规则。

进一步可以提供规则预览:给定一个模拟发起人和业务单据,直接展示关系锚点、组织路径、交并集过程和最终办理人,让流程管理员在发布前发现配置错误。
上线前应该测试哪些场景
- 用户离职、停用或姓名变化后,固定用户规则能否给出发布警告。
- 部门无人、岗位空缺或一岗多人时,空结果和多人策略是否正确。
- 全局角色、组织角色和部门角色是否严格受组织范围约束。
- 发起人拥有多个部门时,启动组织快照是否参与动态关系解析。
- 当前办理人与流程发起人不是同一人时,两类上级关系是否得到不同结果。
- 多规则并集、交集、差集和排除发起人是否符合预期。
- 业务数据为空、格式错误或引用失效组织时,是否阻止进入节点。
- 外部决策服务超时或组织服务不可用时,是否进入可观测的异常状态。
- 组织在流程运行中调整后,已创建任务和未创建任务是否遵循既定快照策略。
- 多租户、跨组织和大候选池场景是否满足权限与性能要求。
194

被折叠的 条评论
为什么被折叠?



