选型时常被问「引擎有多强」,却难有可比口径。本文按枚举、属性、设计器面板、对外接口四层逐项清点,并说明统计边界。
统计日期:2026-10-24 统计口径:以当前仓库源码中的枚举项 / 属性常量 / 设计器 map.Add 字段 / 管理端 GPE·GPN 面板为准,逐项清点。 说明:本文回答「有多少配置项、有多少规则」,不展开「每个怎么用」。功能需求粒度(四大流程模式共 769 个功能点)见姊妹文档《该引擎主要流程功能统计汇总报告》。
维度 | 数量 | 统计口径 | 源码锚点 |
|---|---|---|---|
找人规则(DeliveryWay) | 62 | 前端唯一枚举值(后端 59,含注释差异) | DeliveryWay.ts / EnumLib.DeliveryWay |
节点属性字段 | 138 | NodeAttr 常量 | Template/NodeAttr.cs |
流程属性字段 | 93 | FlowAttr 常量 | Template/FlowAttr.cs |
节点属性 UI 配置项 | 69 | NodeExt.ts 中 map.Add* | AttrNode/NodeExt.ts |
流程属性 UI 配置项 | 63 | FlowExt.ts 中 map.Add* | AttrFlow/FlowExt.ts |
按钮/工具栏属性字段 | 135 | BtnAttr 常量 | Template/BtnAttr.cs |
工具栏按钮族 | 40 | BtnLab 中活跃的 *Lab 字段 | AttrNode/BtnLab.ts |
工具栏相关配置项 | 121 | BtnLab 中 map.Add* | 同上 |
退回规则 | 6 | ReturnRole 枚举 | EnumLib.ReturnRole |
删除规则 | 5 | DelWorkFlowRole 枚举 | EnumLib.DelWorkFlowRole |
跳转规则 | 5 | JumpWay 枚举 | EnumLib.JumpWay |
撤销规则 | 4 | CancelRole 枚举 | EnumLib.CancelRole |
阻塞模式 | 8 | BlockModel 枚举 | EnumLib.BlockModel |
多人处理模式 | 5 | TodolistModel 枚举 | EnumLib.TodolistModel |
节点执行方式 | 5 | WhoExeIt(0~4) | whoExeIt.ts / NodeExt |
节点运行模式 | 6 | RunModel 枚举 | EnumLib.RunModel |
方向/条件数据源 | 18 | ConnDataFrom 枚举 | Template/CondEnum.cs |
条件类型 | 5 | CondType 枚举 | 同上 |
节点事件标记 | 26 | EventListNode 常量 | EvenListNode.cs |
流程事件标记 | 7 | EventListFlow 常量 | EvenListFlow.cs |
事件执行类型 | 10 | EventDoType 枚举 | 基础框架组件/Sys/EnumLib.cs |
轨迹动作类型 | 42 | ActionType 枚举 | EnumLib.ActionType |
人员选择器模式 | 16 | SelectorModel 枚举 | EnumLib.SelectorModel |
抄送规则 | 6 | CCRoleEnum 枚举 | EnumLib.CCRoleEnum |
表单方案类型(活跃) | 9 | GPE_FrmSln 中启用的方案 | AttrNode/FrmSln/GPE_FrmSln.ts |
审核组件配置项 | 25 | NodeWorkCheck 的 map.Add* | AttrNode/NodeWorkCheck.ts |
节点管理 GPE/GPN 面板 | 33 | AttrNode/**/GPE_*.ts + GPN_*.ts | Vue3/.../AttrNode/ |
流程管理 GPE/GPN 面板 | 23 | AttrFlow/**/GPE_*.ts + GPN_*.ts | Vue3/.../AttrFlow/ |
对外 API(Dev2Interface) | 307 | public static 成员 | 流程组件/Dev2Interface.cs |
读数提示:同一概念常有两层数字——枚举/常量层(引擎能表达什么)与 UI 层(设计器暴露多少)。例如节点属性常量 138 个,设计器主面板直接展示约 69 项,其余通过 GPE 子面板、参数表、关联实体展开。
接收人规则是流程引擎差异化最明显的能力之一。前端 DeliveryWay.ts 定义 62 个唯一数值(后端 EnumLib.DeliveryWay 活跃枚举约 59 项;前端多出如 ByDeptOrg=101、ZhieJieShangJi601/602 等扩展值)。
分组 | 代表规则 | 说明 |
|---|---|---|
组织结构 | ByStation、ByDept、ByBindEmp、ByDeptAndStation、ByStationOnly、ByDeptLeader、ByDeptSpecer、ByEmpLeader | 角色/部门/人员绑定及领导计算 |
范围交集 | ByStationSpecDepts、ByStationSpecStas、FindSpecDeptEmps* | 指定部门集合 ∩ 角色、指定角色集合 ∩ 部门 |
连续多级主管 | ByMLeader0/1/2、ZhieJieShangJi601/602 | 指定角色、通讯录等级、顶级部门、直属上级 |
与历史节点相同 | ByStarter、ByPreviousNodeEmp、BySpecNodeEmp、BySpecNodeEmpStation | 发起人 / 上一节点 / 指定节点处理人 |
上级部门 | BySenderParentDeptLeader、BySenderParentDeptStations | 发送人上级部门负责人 / 角色 |
表单字段驱动 | ByPreviousNodeFormEmpsField、…FrmDtl、…Team、…Depts、…DeptStations、…StationsAI、…StationsOnly | 主表/从表人员、部门、角色、权限组字段 |
SQL / 数据源 / API | BySQL、BySQLTemplate、ByGenerDBSrc、SubThreadByGenerDBSrc、ByAPIUrl、BySFTable、ByFEE | 外部数据决定接收人 |
人员选择器 | BySelected、BySelected_1/2/3、BySelfUrl、BySelectedEmpsOrgModel、PreplaceWokerFree/Fix | 海选、固定范围、自定义 URL、预置处理人 |
用户组 | ByTeamOnly、ByTeamOrgOnly、ByTeamDeptOnly、ByTeamStationOnly、ByBindTeamEmp | 全集团 / 本组织 / 本部门用户组 |
路由 | ByFromEmpToEmp、ByFromDeptToEmp、ByFromAttrToEmp | 人员/部门/字段路由表 |
子线程专用 | BySQLAsSubThreadEmpsAndData、ByDtlAsSubThreadEmps、BySetDeptAsSubthread | 子线程接收人与数据源 |
项目 / 组织选择 | ByStationForPrj、BySelectedForPrj、BySelectedOrgs、BySelectEmpByOfficer | 项目组、多组织联络员 |
兜底 | By该引擎BPM=100 | BPM 模式兜底处理 |
配置入口:GPE_AccepterRole(节点属性 → 接收人规则)。选择器另有 16 种 SelectorModel(部门/角色/人员/SQL/WebAPI/用户组等)。
层 | 数量 | 含义 |
|---|---|---|
NodeAttr 常量 | 138 | 节点表可持久化的属性键全集 |
NodeExt.ts map.Add* | 69 | 节点属性主面板直接编辑的项 |
AttrNode 下 GPE/GPN | 33 | 复杂规则的独立配置向导 |
NodeExt.ts)分组 | 典型配置项 |
|---|---|
基本属性 | 名称、WhoExeIt(谁执行它,5 档)、已读回执、撤销规则、已阅即完成、游离态、焦点字段、分配人员、投递记忆、排除发送人 |
运行模式 | RunModel(线形/合流/分流/分合流/同表单/异表单,6 种)、通过率、子线程增删移交、异表单 WorkID 规则 |
跳转 | 自动跳转 4 类角色 + 表达式 + 找不到人是否跳转 |
按钮权限 | 内嵌整份 BtnLab(见第四节) |
规则 | 档位数 | 枚举 |
|---|---|---|
谁执行它 | 5 | 操作员 / 机器 / 混合 / 流水线 / 过程 |
运行模式 | 6 | Ordinary / HL / FL / FHL / 同表单子线程 / 异表单子线程 |
多人处理 | 5 | 抢办 / 协作 / 队列 / 共享 / 协作组长 |
阻塞模式 | 8 | 不阻塞 / 当前未完子线程 / 指定子流程 / SQL / 表达式 / 子流程节点 / 平级子流程 / URL |
批处理 | 3 | 不可 / 批量审批 / 分组批量 |
撤销规则 | 4 | 不能 / 仅上一步 / 上一步+开始 / 指定节点 |
跳转规则 | 5 | 不能 / 向后 / 向前 / 任意 / 指定节点 |
退回规则 | 6 | 见第五节 |
子线程删除 | 3 | 不能 / 手工 / 自动 |
抄送规则 | 6 | 不抄送 / 手工 / 自动 / 手+自 / 系统字段 / 发送时 |
分流规则 | 3 | 按人 / 按部门 / 按角色 |
覆盖但不限于:接收人、多人处理、抄送写入、表单方案、批处理、审核组件、流转自定义、阻塞、转向、考核、超时、子流程新建、消息推送、Frm 权限等(GPE_AccepterRole、GPE_TodolistModel、GPE_FrmSln、GPE_BlockModel、GPE_OvertimeRole…)。
NodeWorkCheck.ts 另有 25 个 map.Add* 配置项(签名、立场、附件、显示模式等),是节点属性之外的独立实体。
节点办理页工具栏不是「几个固定按钮」,而是按节点可开关、可改标签、可配规则的能力集合。
数字 | 含义 |
|---|---|
40 | 活跃的工具栏按钮族(每个族通常有「标签 + 启用/规则」) |
121 | BtnLab 实体上设计器可见的配置字段(含标签、开关、规则、打印子项等) |
135 | BtnAttr 常量总数(含查看器/抄送工具栏镜像字段等) |
类别 | 按钮族 |
|---|---|
流转核心 | 发送、延期发送、保存、退回、跳转、结束流程、催办、移交、作废、删除、冻结 |
协作 | 抄送、会签、加主持人、调整未来处理人、预置处理人、子线程 |
信息与辅助 | 轨迹、挂起、关注、确认、小纸条、评论、帮助、流转自定义、二维码、优先级 |
数据 | 数据版本、数据批阅、回滚、切换部门、提交身份 |
打印 | 打印 Html、打印 PDF、打包 Zip、自定义打印 |
公文 | 打开公文、公文版本、下载 VSTO、KK 预览、下载公文正文 |
BtnLab 分组:按钮权限 / 退回 / 打印 / 公文 / 会加签。
ReturnRole)值 | 含义 |
|---|---|
CanNotReturn | 不能退回 |
ReturnPreviousNode | 只能退回上一个节点 |
ReturnAnyNodes | 可退回以前任意节点(默认) |
ReturnSpecifiedNodes | 可退回指定的节点 |
ReturnStartNode | 退回到开始节点 |
ByReturnLine | 由流程图设计的退回路线决定 |
不止 6 个枚举值。退回相关还有:
ReturnNodesReturnAlertIsBackTracking(不允许 / 由退回人决定 / 强制)TeamReturnRole)结论:主规则 6 档;若把配套项算进「退回配置能力」,退回分组在 BtnLab 内单独占一组十余项。
DelWorkFlowRole:
值 | 含义 |
|---|---|
None | 不能删除 |
DeleteByFlag | 按标记删除(需交互、填原因) |
DeleteAndWriteToLog | 删除到日志库(需交互) |
DeleteReal | 彻底删除(无交互) |
ByUser | 由用户决定删除方式 |
工具栏侧 DelEnable 绑定该规则;另有「退回时是否隐藏删除按钮」等配套开关。子线程另有独立的 3 档 ThreadKillRole(不能 / 手工 / 自动)。
层 | 数量 |
|---|---|
FlowAttr 常量 | 93 |
FlowExt.ts map.Add* | 63 |
AttrFlow 下 GPE/GPN | 23 |
FlowExt.ts)分组 | 典型配置项 |
|---|---|
基本属性 | 编号、类别、名称、路由标识、流程标记、事件实体、标题规则、独立启动、草稿规则、测试人、抄送/分享、设计模式、水印 |
数据&表单 | 表单信息、装载上一笔、手机发起、MD5、加密、数据版本、物理表、单据编号格式 |
轨迹 | 轨迹图 / 时间轴 / 时间表、排序方式、共享方案 |
自动发起、发起限制、前置导航、流程共享、数据导入、流程事件、流程消息、批量发起、实例查看权限、回滚权限、数据篡改规则、业务字段、流程实体绑定、版本导入导出/复制/版本管理、未来处理人计算、数据同步等。
方向条件、节点完成条件、流程完成条件共用 Cond 实体。
枚举 | 数量 | 内容 |
|---|---|---|
ConnDataFrom | 18 | 节点表单、独立表单、角色、部门、SQL、SQL 模板、参数、URL、WebApi、审核立场、部门负责人、人员、存储过程、业务单元、从表字段、审核通过率、通用数据源、操作符 |
CondType | 5 | 节点完成 / 流程完成 / 方向 / 启动子流程 / 抄送条件 |
SpecOperWay | 4 | 当前人 / 指定节点人 / 表单人员字段 / 指定人员编号 |
CondAttr 字段 | 25 | 条件实体属性常量 |
项目 | 数量 | 说明 |
|---|---|---|
节点事件标记 | 26 | 发送前/成功/失败、到达、退回前后、撤销前后、移交、催办、抄送、加签、打开、预警逾期等 |
流程事件标记 | 7 | 建单、结束前后、删除前后等 |
事件执行类型 | 10 | 禁用、SP、SQL、URL、WS、SpecClass、EventBase、BuessUnit、WebApi、SFProc |
轨迹动作类型 | 42 | 发起、前进、退回、移交、分流合流、子流程、加签、跳转、抄送、公文…… |
事件与参数机制的设计说明见:《参数与事件:流程引擎的两个可编程接口》。
GPE_FrmSln 当前启用的方案(部分历史类型已注释下线):
方案 | 说明 |
|---|---|
节点表单(经典表单) | 默认 |
累加表单 | FoolTruck |
嵌入式表单 | SelfForm |
SDK 表单 | SDKForm |
单表单(绑定独立表单) | RefOneFrmTree |
多表单 | SheetTree |
绑定高代码 TS | EntityTS |
Excel 表单 | ExcelForm |
Word 表单 | WordForm |
Dev2Interface.cs 中 public static 成员约 307 个(含方法与少量字段/属性),覆盖发起、发送、退回、移交、撤销、抄送、查询待办已办、删除、结束、子线程、会签等运行时能力。这是「引擎可被嵌入」的量化指标——二开主要调这套 API,而不是改内核。
文档 | 口径 | 适合回答 |
|---|---|---|
本文 | 枚举 / 属性 / 面板 / API 配置体量 | 「有多少种找人规则?节点能配多少项?」 |
《该引擎主要流程功能统计汇总报告》 | 线性/同表单/异表单/父子流程需求表 功能点(合计 769) | 「四大流程模式各覆盖多少能力点?」 |
两套数字不互相替代:配置项是「旋钮数量」,功能点是「场景能力条目」。选型或对外说明时,建议两套一起给。
DeliveryWay 以唯一数值为准(前端 62,后端活跃约 59)。 public const string 个数;含主键、隐藏字段,故大于「设计器一眼可见项」。 map.Add*;BtnLab 内嵌进 NodeExt,节点主面板可见项与工具栏配置有重叠,报告时已分开表述。 *Lab 标签字段为「一个按钮族」;同一族可能有多个开关(如打印 Html 的启用 + 查看器显示 + 抄送工具栏显示)。 该平台流程引擎在配置层的体量可以概括为:
62 种找人规则 · 138 个节点属性字段 · 93 个流程属性字段 · 40 个工具栏按钮族 · 6 档退回 · 5 档删除 · 26+7 个生命周期事件 · 307 个对外静态 API。
这些数字说明的不是「功能清单有多长」,而是:同一套发送引擎上,可调旋钮足够密,才能覆盖从行政审批到工业自动化、从线性到分合流/父子流程的落地差异,而不必为每个行业重写内核。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。