节点配置
流程节点决定实例如何推进、如何生成任务、如何调用外部系统,以及异常时如何恢复。每个节点在设计器中都有稳定 key、显示名称和类型;关键节点建议使用业务可读的 key。
节点类型
| 节点 | 类型 | 是否阻塞流程 | 说明 |
|---|---|---|---|
| 发起人 | start | 否 | 起点,承载发起人表单权限 |
| 审批人 | approve | 是 | 生成审批任务,按审批方式和驳回策略推进 |
| 办理人 | handler | 是 | 生成办理任务,配置方式接近审批人 |
| 抄送 | ccNode | 否 | 生成抄送记录并继续推进 |
| 条件分支 | exclusiveGateway | 否 | 命中第一条满足条件的分支 |
| 并行分支 | parallelGateway | 是 | 所有分支同时执行并汇聚 |
| 包容分支 | inclusiveGateway | 是 | 满足条件的分支同时执行并汇聚 |
| 路由分支 | routeGateway | 否 | 通过决策表或路由结果选择分支 |
| 延迟器 | delay | 是 | 创建等待任务和 delay_wake 作业,到期后继续 |
| 触发器 | trigger | 视类型而定 | HTTP 外呼、回调等待、表单数据更新或删除 |
| 子流程 | subProcess | 视配置而定 | 发起一个或多个子流程,可等待汇聚 |
| 异常捕获 | catchNode | 否 | 接收异常边,通知、转管理员或终止 |
审批人与办理人
处理人来源
| 来源 | 说明 |
|---|---|
| 指定成员 | 节点中直接选择用户 |
| 指定角色 | 取角色成员,并按角色管理范围过滤 |
| 部门负责人 | 取发起人或指定表单部门的负责人 |
| 指定岗位 | 取岗位下启用用户 |
| 部门成员 | 取指定部门成员,可包含子部门 |
| 用户组 | 取用户组成员 |
| 发起人 | 发起人本人 |
| 发起人部门分管领导 | 发起人部门的分管领导 |
| 直属主管 | 按层级向上查找主管 |
| 连续多级上级 | 从直属主管逐级生成审批链 |
| 连续多级部门负责人 | 从发起人部门负责人逐级向上 |
| 表单联系人 | 读取人员字段 |
| 表单内部门 | 读取部门字段并解析负责人 |
| 节点审批人 | 取前序节点实际审批人 |
| 发起人自选 | 发起时选择审批人 |
| 发起人自选范围 | 发起时在用户、角色、部门或用户组范围内选择 |
| 审批人自选 | 上一节点处理时选择下一节点审批人 |
| 决策表 | 通过规则中心决策表输出来源类型和 ID |
| 流程表达式 | 通过表达式计算用户 ID 或用户 ID 数组 |
审批方式
| 方式 | 说明 |
|---|---|
| 或签 | 任一人通过即通过,其余待办跳过 |
| 会签 | 所有人通过才通过 |
| 依次审批 | 按顺序逐个处理 |
| 比例会签 | 达到 approveRatio 百分比即通过 |
| 随机一人 | 从候选人中随机指派一人 |
| 自动通过 | 不需要人工处理,节点自动通过 |
设计态支持 random 和 auto,运行态落库的多人审批方式为 and、or、sequential、ratio。
边界策略
| 策略 | 说明 |
|---|---|
| 空处理人 | 自动通过、转交管理员、自动拒绝、转交指定人员 |
| 发起人与处理人相同 | 自己处理、自动跳过、转直属上级、转部门负责人 |
| 审批人去重 | 后续重复自动通过,或每个节点都重新审批 |
| 节点操作 | 通过、拒绝、评论、手写签名、审批意见必填 |
| 操作按钮 | 可配置通过、拒绝、转办、委派、加签、退回的文案、意见名、附件策略(不显示/选填/必填)和跳转节点 |
驳回与退回
驳回策略用于拒绝动作:
| 策略 | 说明 |
|---|---|
| 终止流程 | 实例进入 rejected |
| 退回上一节点 | 回到最近前序审批/办理节点 |
| 退回发起人 | 回到起点,发起人可重新提交 |
| 退回指定节点 | 按节点 key 回到指定节点 |
退回动作可选择前序审批/办理节点。退回模式支持重新执行后续路径,或目标节点完成后回到原节点继续。
表单权限
审批、办理、抄送和发起人节点可按字段配置权限:
| 权限 | 说明 |
|---|---|
| 只读 | 可见不可编辑 |
| 可编辑 | 可见且可修改 |
| 隐藏 | 当前节点不可见 |
节点权限在运行态全程生效:
- 发起:发起表单隐藏
hidden字段、置灰read字段;服务端按发起节点权限丢弃越权提交的字段值。 - 审批 / 办理:审批详情按当前节点权限过滤
hidden字段;存在edit字段时处理人可直接在详情中修改,随「通过」一并提交(请求体formUpdates),服务端按节点权限白名单过滤后合并进实例formData,会签未推进时同样持久化,后续分支条件使用合并后的数据。 - 字段是否必填仍由表单字段自身配置决定;被节点置为只读的字段不参与必填校验。
超时处理
审批/办理节点可配置节点级超时。到期后由统一作业账本中的 task_timeout 作业处理。
| 配置 | 说明 |
|---|---|
| 时长 | 数值 + 分钟 / 小时 / 天 |
| 动作 | 自动提醒、自动通过、自动拒绝 |
| 最大提醒次数 | 自动提醒模式下重复提醒次数 |
| 提醒耗尽后 | 不处理、自动同意、自动拒绝、转交给上级 |
| 上级层级与兜底 | 转交给上级时指定层级,找不到人时可保持挂起或自动处理 |
分支条件
条件支持字段比较、发起人维度和明细聚合。
| 能力 | 说明 |
|---|---|
| 运算符 | 等于、不等于、大于、大于等于、小于、小于等于、包含在、不包含在、包含、为空、不为空、区间、N 天内、早于 N 天前 |
| 表单字段 | 读取 formData 中的字段值 |
| 发起人维度 | 发起人本人、部门、角色、岗位 |
| 明细聚合 | 对明细字段执行 sum、count、avg 后比较 |
| 条件组 | 支持 and / or 组合 |
条件分支按顺序取第一条命中路径;包容分支会进入所有命中路径;默认分支作为兜底。
延迟器
延迟器支持两种方式:
| 类型 | 说明 |
|---|---|
| 固定时长 | 按分钟、小时或天等待 |
| 指定日期 | 从表单日期字段读取目标时间 |
运行时创建 waiting 任务和 delay_wake 作业。到期后统一 Worker 唤醒任务并继续推进。
触发器
触发器支持 HTTP 请求、HTTP 回调、更新表单数据和删除表单数据。详见 触发器与外部审批。
子流程
子流程节点可发起另一个已发布流程。
| 配置 | 说明 |
|---|---|
| 调用模式 | 单实例或多实例 |
| 等待子流程 | 等待时父流程挂起;不等待时父流程立即继续 |
| 多实例数据源 | 遍历父表单数组字段 |
| 执行方式 | 并行或串行 |
| 子实例发起人 | 父流程发起人、表单字段、指定成员 |
| 入参映射 | 父表单字段或 {{item}} 映射到子流程 |
| 出参映射 | 子流程结束后回填父流程字段;多实例聚合为数组 |
| 子实例驳回 | 中止节点或忽略继续 |
子流程通过 subprocess_spawn 和 subprocess_join 作业发起与汇聚。父子关系写入实例的 parentInstanceId、parentTaskId 和循环项标识,详情页可查看子流程列表。
节点监听器
节点监听器是挂在单个节点上的 Webhook。支持事件:
| 事件 | 说明 |
|---|---|
onCreate | 节点任务创建 |
onApprove | 节点通过 |
onReject | 节点驳回 |
节点监听器适合与单个节点强绑定的外呼。跨流程、可统一管理和重试的外部推送使用 事件总线与事件订阅。