驰骋BPM工作流引擎技术白皮书2026版

一、产品定位

驰骋 BPM(CCFlow / CCBPM) 是一套面向企业级审批与流程自动化的工作流引擎,核心能力覆盖流程设计、表单绑定、组织权限、运行期流转与运维监控。与仅提供「画流程图 + 简单审批」的轻量产品不同,驰骋引擎在分合流、父子流程、接收人规则、表单方案等维度做了深度建模,适合复杂政企、集团型组织的流程场景。

从代码规模看,后端 BP.WF 模块约 600+ 个 C# 源文件,前端 Vue3/src/WF1200+ 个 Vue/TS 文件——这不是薄封装层,而是经过长期业务沉淀的完整 BPM 产品栈。


二、技术架构概览

2.1 整体分层

数据与平台

引擎核心 BP.WF

接口层 HttpHandler

前端 Vue3

FlowDesignerV2 流程设计器

FoolFormDesigner 表单设计器

WorkOpt 运行期操作

CCForm 表单渲染

Comm 元数据驱动 UI

WF_MyFlow

WF_WorkOpt

WF_Admin_*

CCFlowAPI / Dev2Interface

WorkNode 发送引擎

GenerWorkFlow 实例

FindWorker 找人规则

ExecEvent 事件体系

多数据库

组织架构 Port

BP.En30 实体框架

2.2 后端技术栈

维度实现
运行时.NET 8.0BP.WF.csproj
Web 集成ASP.NET Core(Microsoft.AspNetCore.App
数据访问自研 BP.DA 层,参数化 SQL
实体模型BP.En30 实体框架(Entity / Attr / Map)
序列化Newtonsoft.Json
调度Quartz(超时、自动发起等)

2.3 数据库支持

引擎在 Glo.cs 等核心类中对多种数据库做了方言适配,开箱支持:

  • SQL Server、MySQL、PostgreSQL
  • Oracle、达梦(DM)、人大金仓(KingBase R3/R6)
  • 南大通用 GBase、优炫 UX、瀚高 HGDB 等

这对国产化替代、混合云部署场景是实际优势,而非仅文档宣称。

2.4 部署运行模式

代码中通过 CCBPMRunModel 区分:

  • Single:单组织单体部署
  • GroupInc:集团多组织
  • SAAS:多租户 SaaS(OrgNo 隔离贯穿待办、节点、权限查询)

同一套引擎代码可支撑从私有化到 SaaS 的多种商业模式,技术团队无需维护多套分支。


三、流程引擎核心能力

3.1 运行模型(RunModel)

节点运行模式在 EnumLib.RunModel 中明确定义,是引擎路由分发的核心枚举:

枚举含义
0Ordinary普通线形节点
1HL合流节点
2FL分流节点
3FHL分合流节点
4SubThreadSameWorkID同表单子线程
5SubThreadUnSameWorkID异表单子线程

WorkNode.cs 中按运行模式拆分发送逻辑,例如:

  • NodeSend_11 — 普通节点到普通节点
  • NodeSend_24_SameSheet — 同表单分流下发
  • NodeSend_24_UnSameSheet — 异表单多路径分流
  • NodeSend_53_SameSheet_To_HeLiu / 异表单合流 — 子线程汇总后激活干流程

这种按模式分派、而非单一状态机硬编码的设计,使复杂拓扑(并行会签、多表单分流、合流通过率)在引擎层有清晰边界,便于定位问题与二次扩展。

3.2 四大流程形态(功能规模)

根据项目内功能点统计(doc/CCFlow主要流程功能统计汇总报告.md),四大模块合计 769 个功能点:

模块功能点技术要点
线性流程324顺序审批基座:发起模式、接收人、按钮权限、方向条件、超时回滚
异表单分合流184多路径分流、各节点独立 ND{NodeID} 物理表、ToNodes 多选
父子流程136FrmSubFlow + WF_NodeSubFlow,手动/自动/延续/前置导航四种启动
同表单分合流125FID 关联干流程与子线程,共用 Flow.PTable

线性流程是其他模块的共用基座;同表单与异表单分合流在实例模型上互斥(同一分流点不可混发 RunModel 4 与 5),父子流程则是跨流程嵌套,与子线程并行模型不同——边界在代码与文档中均有明确约束,避免误用。

3.3 流程实例状态(WFState)

WFState 枚举覆盖完整生命周期:BlankDraftRuningCompleteEndHungupReturnStaShiftDeleteAskforFix12+ 种状态。运行期不仅支持「进行中/已完成」,还支持挂起、加签、冻结、非正常完成等运维场景,适合长周期、多干预的企业流程。

3.4 节点类型(NodeType)

除普通用户节点外,引擎原生支持:

  • RouteNode — 路由节点(条件路由、自动跳转)
  • CCNode — 抄送节点
  • SubFlowNode — 子流程节点

前端 FlowDesignerV2 通过 userNodesrouteNodesccNodessubFlowNodes 四类图元与之对应,设计态与运行态模型一致。


四、接收人规则(找人引擎)

4.1 规则规模

DeliveryWay 枚举定义了 50+ 种接收人计算方式,FindWorker.cs(约 3200 行)集中实现。前后端常量对齐(DeliveryWay.tsEnumLib.cs),配置在设计器保存后由运行期统一解析。

代表性规则包括:

类别示例规则
组织维度按部门、按角色、部门与角色交集、分管领导
表单驱动主表人员字段、从表明细行、部门编号字段、权限组
路由类部门路由(ByFromDeptToEmp)、字段路由(ByFromAttrToEmp
主管链连续多级主管(ByMLeader0/1/2
子线程专用按明细表拆分子线程、SQL 确定子线程接收人与数据源
外部集成WebAPI(ByAPIUrl)、数据源(ByGenerDBSrc)、字典表(BySFTable
预置处理人发送前固定或自由选择(PreplaceWokerFix/Free

4.2 技术价值

国内 BPM 项目的难点往往不在「画流程图」,而在**「这一步该找谁」**。驰骋将找人逻辑抽象为可配置、可扩展的规则引擎,并针对子线程、父子流程、合流节点提供专用规则——这是相对开源/轻量工作流产品最显著的差异化能力之一。

中肯说明:规则种类多意味着配置项丰富,实施阶段需要熟悉各 DeliveryWay 的适用边界,建议配合测试容器与轨迹工具验证,而非仅靠设计器直觉配置。


五、父子流程与子线程

5.1 父子流程

  • 组件层FrmSubFlow(表单内子流程组件)
  • 绑定层WF_NodeSubFlow(节点与子流程关系)
  • 启动类型:手动、自动触发、延续、前置导航
  • 联动策略AllSubFlowOverRole(全部完成后送父流程下一步 / 结束父流程)、SubFlowRunModel(按子流程结束或指定节点驱动父流程)
  • 数据反填BackCopyRole(字段自动匹配、格式匹配、混合模式)

典型场景:主项目流程 + 投标/采购子审批、按明细行批量发起子流程、子流程会签式全部完成后推进父流程。

5.2 同表单 vs 异表单子线程

对比项同表单(RunModel=4)异表单(RunModel=5)
数据表共用 Flow.PTableFID 关联各节点独立 ND{NodeID}
分流路径单条同表单路径可多选异表单子线程并行
选人 UI单选ToNodes.vue 多选
核心 APINodeSend_24_SameSheetNodeSend_24_UnSameSheet

异表单适合财务/法务/技术等多表单并行填报;同表单适合多部门会签同一份主表数据。引擎在物理数据模型层面做了区分,而非仅用 UI 区分。


六、表单与流程一体化

6.1 表单方案

节点可绑定傻瓜表单(FoolForm)、嵌入式表单、独立表单等多种 NodeFormTypeCCFlowAPI.GenerWorkNode 统一组装表单元数据(Sys_MapDataSys_MapAttr、附件、版本号 FrmVer),并在加载前后触发 ExecEvent 表单事件。

6.2 审核组件

运行期 WorkCheck.vue 支持多种展示模式(normalModetrackModetrackTimeMode),对应轨迹、时间轴、手写签批、立场、附件等能力。异表单分合流模块中审核相关功能点达 27 项,说明审核不仅是「意见框」,而是可配置的合规组件。

6.3 表单设计器

FoolFormDesigner 提供可视化字段、从表、扩展属性(MapExt)配置;支持 VSTO 集成(DesignerVSTO)、AI 辅助建表(GPN_AIFlow.tsWF_Admin_AIFlow.cs)。流程与表单在同一产品内闭环,减少「流程引擎 + 第三方表单」的集成成本。


七、前端技术架构

7.1 技术选型

模块技术
框架Vue 3 + TypeScript
流程设计器@vue-flow/core(FlowDesignerV2)
UI 组件Ant Design Vue
通信HttpHandler 统一调用后端 Handler
元数据 UIBSEntity / Entity / Map 驱动(Comm/En.vueGenerList.vue

7.2 FlowDesignerV2 亮点

  • 基于 Vue Flow 的画布:节点、连线、标签、小地图、自动布局(useFlowLayout
  • 右键菜单、连线条件编辑、节点属性抽屉(GroupPageEdit
  • 流程检查:SSE 实时推送 + 轮询降级(EventSource + IsChecking),设计期即可发现配置错误
  • 设计器内嵌表单设计入口(FrmDesignerWrapper

7.3 运行期 WorkOpt

WorkOpt 目录涵盖发送(Send.ts)、抄送、移交、退回、加签、子线程管理(ThreadDtl)、轨迹查看(OneWork/Track.vue)等完整操作链。发送实体通过 Map 声明字段与弹窗选人(SetPopTreeEns 懒加载组织树),前后端契约清晰。

7.4 测试与运维

TestingContainer/FlowInstance.vue 提供流程实例运维:跳转、删除、移交、强制结束、轨迹查看——便于实施与二开阶段不依赖生产数据做流转验证。


八、二次开发与集成

8.1 Dev2Interface — 对外编程接口

Dev2Interface.cs(约 15000+ 行)是二开主入口,文档注释约定命名规范:

前缀含义
Flow_流程操作
Node_节点操作
Port_组织架构
WorkOpt_工作处理器
Frm_表单/打印
DTS_调度任务
DB_返回结果集的查询

接口以静态方法暴露,便于在 ASP.NET 业务系统中直接调用,无需深入 WorkNode 内部状态机。

8.2 事件扩展

ExecEvent 在流程、节点、表单多个生命周期挂载事件:

  • 表单:FrmLoadBefore/AfterSaveBefore/AfterCheckStart/Over……
  • 节点:通过 FrmEventsOverrideFile 支持无侵入重写

适合在不修改引擎源码的前提下注入校验、同步外部系统、自定义消息。

8.3 HttpHandler 接口层

运行期与设计期 API 按职责拆分:WF_MyFlow(我的流程)、WF_WorkOpt(工作操作)、WF_Admin_AttrFlow(流程属性)、WF_Admin_Cond(方向条件)等 30+ 个 Handler。前端 HttpHandler 类按类名与方法名路由,约定统一,利于生成接口文档与 Mock。

8.4 CCFlowAPI

CCFlowAPI.GenerWorkNode 等工作节点数据组装 API,可供移动端、第三方门户、低代码页面以 DataSet 方式消费流程+表单一体数据。


九、扩展生态(同一引擎上的增值模块)

BP.WF 不仅包含纯工作流,还集成了:

模块路径/类能力
CCFastCCFast/低代码门户、DataV 大屏、AI 辅助
CCBillCCBill/单据、台账、实体权限
CCPrjCCPrj/项目协同、文件评审
FreeTaskFreeTask/自由任务(非固定流程图的协作任务)
CCOACCOA/办公扩展

这意味着选型驰骋不仅是选一个流程引擎,而是选一个可渐进扩展的 BPM 平台底座;若只需极简审批,部分模块可能用不到,需按场景裁剪部署。


十、AI 与智能化(新兴能力)

  • AI 生成流程WF_Admin_AIFlow 解析自然语言/图片描述,输出 Flow/Node 的 JSON 并导入设计器
  • AI 表单WF_Admin_AICCFastGPN_AIFlow.ts 等辅助建表与布局
  • 智能找人ByPreviousNodeFormStationsAI 等规则预留 AI 辅助选人

中肯评价:AI 能力处于快速迭代阶段,适合作为设计期提效工具;核心流转仍由确定性引擎执行,生产环境的关键业务规则建议以显式配置 + 事件代码为准,AI 生成结果需经人工审核与流程检查。


十一、核心优势总结

  1. 功能纵深:769 项流程功能点(统计口径见内部需求文档),覆盖线性、分合流、父子流程全谱系,少见「能做 80% 但复杂 20% 做不了」的断层。
  2. 找人规则引擎:50+ 种 DeliveryWay,直面国内企业组织、表单、主管链、子线程拆单等真实痛点。
  3. 同/异表单分合流双模型:数据层区分而非仅 UI 区分,适合会签与多部门并行填报两类本质不同的场景。
  4. 技术栈现代且可私有化:.NET 8 + Vue 3,多数据库与国产化支持,Single/集团/SaaS 模式一套代码。
  5. 二开友好Dev2Interface + 事件重载 + HttpHandler 分层,15 年量级沉淀的 API 面。
  6. 设计运维闭环:FlowDesignerV2 流程检查、TestingContainer 实例运维、完整轨迹与审核组件。
  7. 表单流程一体:降低集成成本,适合「审批即业务单据」的 OA/ERP 场景。
  8. 开源可掌控:源码交付,适合对合规、定制、长期演进有要求的甲方与集成商。

十二、客观说明与选型建议

12.1 学习曲线

引擎历史悠久,核心类(如 WorkNode.cs11000 行)承载了大量边界场景。新开发者建议路径:

  1. 先掌握线性流程 + Dev2Interface 常用 API
  2. 再理解 RunModelFID/WorkID 实例模型
  3. 最后深入分合流、父子流程

不建议在未理解 DeliveryWay 与节点运行模式的情况下直接上复杂流程。

12.2 架构风格

后端采用自研实体框架 + HttpHandler,而非 Spring Activiti/Flowable 那类 BPMN 标准引擎。优势是中国企业场景贴合度高;若团队强依赖 BPMN 2.0 标准导入导出或 Camunda 生态,需要评估迁移与互操作成本。

12.3 适用场景

更适合需审慎评估
政企/集团复杂审批仅需 3~5 节点极简审批
多组织、多租户 SaaS强依赖 BPMN 标准引擎
国产化数据库环境团队无 .NET 运维能力
深度定制与源码掌控不愿投入流程建模学习成本
表单+流程一体化业务纯微服务编排(可考虑专用编排引擎)

十三、典型技术场景示例

场景推荐模块关键技术点
请假/报销顺序审批线性流程DeliveryWay、方向条件、按钮权限、超时 OutTimeDeal
多部门会签同一单据同表单分合流FID 关联、PassRate 合流通过率
财务+法务+技术并行填报异表单分合流ToNodes 多选、USSWorkIDRole
主项目+子项目审批父子流程SubFlowHand/AutoAllSubFlowOverRole
按报销明细行指定审批人同表单 + ByDtlAsSubThreadEmps明细驱动子线程
与 ERP 同步ExecEvent + Dev2Interface节点/表单事件、调度 DTS_
移动端待办CCFlowAPI + Dev2Interface待办数量、GenerWorkNode 数据包

十四、结语

驰骋 BPM 工作流引擎是一套以运行期深度为核心竞争力的企业级产品:代码体量、枚举完备度、分模式发送实现和找人规则引擎,都指向「复杂组织里的真实审批」而非演示级流程图。

从技术选型角度,若贵方需要:

  • 在私有化或国产化环境中运行完整的流程+表单平台;
  • 处理分合流、父子流程、主管链、子线程等高阶流程模式
  • 保留源码级定制与长期演进能力;

驰骋引擎是值得重点评估的国产 BPM 方案之一。同时,应预留实施团队对 RunModelDeliveryWay 和事件扩展的学习周期,并善用设计器流程检查与测试容器降低上线风险。


附录:关键代码索引

主题路径
发送引擎CCFlow/Components/BP.WF/WF/WorkNode.cs
运行模式枚举CCFlow/Components/BP.WF/EnumLib.csRunModel
找人规则CCFlow/Components/BP.WF/Template/FindWorker.cs
二开接口CCFlow/Components/BP.WF/Dev2Interface.cs
工作节点 APICCFlow/Components/BP.WF/CCFlowAPI.cs
事件执行CCFlow/Components/BP.WF/WF/ExecEvent.cs
流程设计器Vue3/src/WF/Admin/FlowDesignerV2/index.vue
发送操作Vue3/src/WF/WorkOpt/SendAndCC/Send.ts
审核组件Vue3/src/WF/WorkOpt/WorkCheck.vue
接收人规则(前端)Vue3/src/WF/Admin/AttrNode/AccepterRole/DeliveryWay.ts
功能点统计doc/CCFlow主要流程功能统计汇总报告.md

本文档由 CCFlow 代码库分析生成,功能点数据引用项目内统计报告,具体行为以实际部署版本为准。

代码转载自:https://pan.quark.cn/s/8ce4326d996e 对于在 CentOS 7 系统中修改网卡配置文件后无法使设置生效的情况,经过实践验证,可以通过使用 nmcli 命令来进行调整。完成修改之后,需要重新启动虚拟机以使更改生效,这样操作流程即告完成。如果设置仍然无法生效,则表明虚拟机在启动过程中所获取的 IP 地址配置并非针对 eth0,此时可以对其它网卡的配置文件进行修改或将其移除。在 CentOS 7 系统中,网络配置的管理机制与早期本存在差异,主要体现为采用了 Network Manager 服务来负责网络接口的管理。在某些情形下,尽管修改了 `/etc/sysconfig/network-scripts` 目录下的 `ifcfg-eth0` 文件,但网络配置却未能即时生效。此类问题的发生通常源于 CentOS 7 采用了不同于以往的配置读取方法。接下来将具体阐述如何借助 nmcli 命令来处理这一挑战。 以 root 用户身份登录系统并打开终端界面。nmcli 是 Network Manager 提供的命令行界面工具,它支持在命令行环境下执行网络连接的建立、编辑、查询及管理任务。针对修改 eth0 网卡配置的需求,可以遵循以下步骤进行操作: 1. 导航至 `/etc/sysconfig/network-scripts` 目录: ``` cd /etc/sysconfig/network-scripts ``` 2. 检查该目录内是否存在 `ifcfg-eth0.bak` 文件,该备份文件可能是先前调整配置时遗留下来的,若存在可能造成冲突。若发现该文件,可以选择将其删除: ``` [root@localhost netw...
代码转载自:https://pan.quark.cn/s/46fd08fb879c 网管教程 从入门到精通软件篇 ★一。★详尽的xp修复控制台指令及其应用!!! 放入xp(2000)的光盘,安装时选择R,执行修复! Windows XP(涵盖 Windows 2000)的控制台指令是在系统遭遇某些意外状况时的一种极具效用的诊断、检测以及恢复系统功能的工具。笔者确实一直期望能够将这方面的指令进行归纳,此次由老范辛苦整理了这份极具价值的秘籍。 Bootcfg bootcfg 命令用于启动配置与故障恢复(对大多数计算机而言,即 boot.ini 文件)。 带有特定参数的 bootcfg 命令仅在运用故障恢复控制台时方可使用。能够在命令行界面下运用带有不同参数的 bootcfg 命令。 用法: bootcfg /default 设定默认引导选项。 bootcfg /add 向引导清单中增添 Windows 安装。 bootcfg /rebuild 重复整个 Windows 安装流程并让用户选择需添加的项目。 注意:运用 bootcfg /rebuild 之前,应先借助 bootcfg /copy 命令备份 boot.ini 文件。 bootcfg /scan 探查用于 Windows 安装的全部磁盘并展示结果。 注意:这些结果被静态存储,并用于当前会话。若在当前会话期间磁盘配置发生变动,为获取更新的探查结果,必须先重启计算机,然后再次探查磁盘。 bootcfg /list 列示引导清单中已有的项目。 bootcfg /disableredirect 在启动引导程序中禁用重定向。 bootcfg /redirect [ PortBaudRrate] |[ useBio...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驰骋低代码、工作流、表单引擎

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值