尧图精选

驰骋 BPM 平台实体数据流程化处理技术说明书驰骋BPM驰骋低代码低代码工作流引擎

🕒 发布时间:2026/10/2 12:01:23 📁 来源:尧图网络
驰骋 BPM 平台实体数据流程化处理技术说明书文档编号CCBPM-TECH-ENT-FLOW-001版本号V1.0编制依据Vue3/src/CCFast/CCBill、Vue3/src/bp/en/Map/MapRefMethod.ts及后端BP.CCBill.WF_CCBill适用范围实体Dict / EntityNoName与流程Flow的数据交互设计与配置实施修订记录版本日期说明V1.02026-06初版五种实体数据处理模式、代码映射、设计评估及通用 BPM 对标摘要驰骋 BPMCCBPM将流程对实体数据的操作抽象为五种配置化模式新增模式、批处理模式、修改模式、多次业务模式、宿主流程模式。本文档从实体概念出发说明流程如何对单个实体一行数据与实体集合多行数据进行增、改、查、绑态等操作结合前端Vue3/src源码给出实现映射并从合理性、可操作性、可实践性三方面评估该划分对开发人员的减负效果文末附通用 BPM 平台的同类处理方式对照。一、实体概念与本文研究范围1.1 实体的定义在驰骋 BPM 中实体是对现实世界事物的数字化建模例如车辆、固定资产、员工、供应商等。概念含义代码/存储对应实体现实世界中的一个具体事物实例业务表中的一行数据主键为OID或No实体集合同一类事物的全部或部分实例业务表中的多行数据由实体列表页Search展示实体表单FrmDict / EntityNoName实体的元数据与 UI 定义Sys_MapDataEntityType 2实体或3/5编号实体等// Vue3/src/WF/Admin/FrmLogic/MapData.ts // EntityType: 0独立表单 1单据 2实体 map.AddTBInt(EntityType, 0, 业务类型, true, true);打开一条实体记录时前端由MyDictFrameWork.vue加载卡片页浏览实体集合时由 Search 系列页面如useSearchNoName.ts加载列表页。1.2 本文研究范围本文不讨论流程引擎内部的节点流转、分合流、父子流程等机制而聚焦一个问题流程如何对单个实体与实体集合进行操作驰骋 BPM 的答案是通过五种MethodModel模式在配置层区分「操作对象是一行还是多行」「数据是否回写」「是否与实体长期绑定」开发人员按模式选型 向导配置即可完成大部分场景无需重复编写集成代码。1.3 五种模式一览序号模式MethodModel操作对象核心行为1新增模式FlowNewEntity实体集合列表流程走完 →增加一行实体记录2批处理模式FlowEntityBatchStart实体集合多选多行实体 →一条流程3修改模式FlowBaseData单个实体一行发起变更流程 → 结束后回写该行4多次业务模式FlowEtc单个实体一行带入实体信息 → 流程独立存档、不回写5宿主流程模式FlowHostBill单个实体一行状态字段 WorkIDOf{FlowNo}唯一绑定总结实体与流程的关系就是通过流程来操作一行数据、多行数据、修改数据、增加数据。二、操作维度单个实体 vs 实体集合驰骋 BPM 在 UI 与配置层将操作入口分为两类与「一行 / 多行」严格对应flowchart LR subgraph 实体集合_列表页 C1[Collection 集合操作] C1 -- N[新增模式 FlowNewEntity] C1 -- B[批处理模式 FlowEntityBatchStart] end subgraph 单个实体_卡片页或行操作 M1[Method 实体方法] M1 -- U[修改模式 FlowBaseData] M1 -- E[多次业务模式 FlowEtc] M1 -- H[宿主流程模式 FlowHostBill] end入口类型存储表挂载位置典型操作对象CollectionFrm_Collection列表页工具栏IsSearchBar零行新建或多行批处理MethodFrm_Method卡片页侧边栏 / 列表行操作IsList当前一行实体方法类型常量在GPN_Method.ts中统一定义// Vue3/src/CCFast/CCBill/Method/GPN_Method.ts export class MethodModel { public static readonly FlowBaseData FlowBaseData; public static readonly FlowEtc FlowEtc; public static readonly FlowNewEntity FlowNewEntity; // FlowHostBill、FlowEntityBatchStart 在向导中单独注册 }三、五种模式详解3.1 新增模式FlowNewEntity业务定义走完流程之后在实体表中增加一笔新记录。通常在实体列表表格上增加按钮例如「发起车辆采购流程」。流程审批通过后系统将流程表单数据写入实体表实体集合多一行。操作对象实体集合列表页不依赖已选行从「无记录」到「有新记录」。典型场景按钮文案效果发起车辆采购流程审批通过后车辆台账新增一条发起入职流程审批通过后员工档案新增一条代码实现组件路径方法实体Method/MethodFlowNewEntity.ts列表集合Collection/CollectionFlowNewEntity.ts列表发起hooks/useSearchNoName.ts、hooks/useSearchBill.ts列表页点击后调用后端CreateWorkID打开流程页// useSearchNoName.ts const workID await menu.DoMethodReturnString(CreateWorkID); baseComp.value?.openIframe({ src: /#/WF/MyFlowGener?FlowNo data.FlowNo FrmID data.FrmID WorkID workID ... });后端设计意图MethodFlowNewEntity.ts注释流程实例标记FlowNewEntity1PWorkID与实体新行 ID 对齐流程结束后自动写入 Dict。配置要点挂载CollectionIsSearchBarDTS通常DTSWhenFlowOver true流程结束回写开发人员无需编写 INSERT 逻辑配置流程与方法即可3.2 批处理模式FlowEntityBatchStart业务定义在实体列表上勾选多行记录一次性发起一条流程将选中实体的信息批量带入流程。面向实体集合的批量操作。操作对象实体集合多行选中合并为一条流程实例处理。代码实现组件路径集合实体Collection/CollectionFlowEntityBatchStart.ts列表 Hookhooks/useSearchNoName.tshandler.AddPara(WorkIDs, tableConfigs.checkedItems.join(,)); const data await handler.DoMethodReturnString(MyDict_DoFlowBatchBaseData_StartFlow);与新增、修改模式的边界模式选中行结果新增无需选中流程结束后新增行批处理多行多行数据进入一条流程修改单行变更一行并回写3.3 修改模式FlowBaseData业务定义在一笔已有记录单个实体上发起基础资料变更流程例如「车辆基础资料变更」、「纳税人基础资料变更流程」。流程结束后按配置将变更字段同步回写到该实体行。操作对象单个实体一行主键通过PWorkID关联。典型场景法人变更、车牌变更、纳税人识别号变更需留痕、需审批的主数据变更代码实现组件路径方法实体Method/MethodFlowBaseData.ts向导创建GPN_Method.ts→FlowBaseData_SaveFlowDevModel1极简模式历史列表Method/GL_FlowEtcList.ts按PWorkIDFK_Flow查询GPN_Method.Docs11官方说明操作当前一行数据流程结束后系统就会把这些字段同步到实体中去。DTS 配置各 Method 通用配置项修改模式典型值DTSDataWay1 或 2全部/指定字段DTSWhenFlowOvertrueDTSWhenNodeOver可选节点级同步配置要点挂载MethodIsList或卡片页IsMyBillToolBar向导一键从实体表单复制字段到流程开始节点开发人员无需编写 UPDATE 回写代码由 DTS 引擎完成3.4 多次业务模式FlowEtc业务定义在一笔记录单个实体上发起流程将当前实体信息传递到流程开始节点表单。流程发起后与实体不再有持续关系不回写实体数据。同一实体可多次发起每次产生独立流程实例。操作对象单个实体一行每次发起时复制字段快照。典型场景流程行为用车申请流程带入车辆信息申请记录仅存流程库物业费缴纳、维修申请、奖惩评定历史可查不影响实体主数据代码实现组件路径方法实体Method/MethodFlowEtc.ts发起接口MyDict_DoFlowEtc_StartFlow流程列表GL_FlowEtcList.tsRefMethodMapRefMethod.AddRM_StartFlow每次新建不绑定 WorkIDOfGPN_Method.Docs12启动流程的时候单据数据 copy 到开始节点上。流程运行完毕后就作为业务查询数据。卡片页嵌入流程历史MyDictFrameWork.vue!-- methodModal FlowEtc -- EnNameGL_FlowEtcListWorkID...FlowNo...FrmID...与修改模式的本质区别对比项多次业务修改是否回写实体否是业务语义附属申请、记录主数据变更DTS 典型配置DTSDataWay0DTSWhenFlowOvertrue3.5 宿主流程模式FlowHostBill业务定义实体上设计一个状态枚举字段其取值由流程运行中、结束后的事件决定此类流程称为宿主流程。需同时设计状态字段如车辆状态正常 / 维修中 / 维修完毕 / 报废WorkIDOf{FlowNo}字段如流程编号001→ 字段名WorkIDOf001存储当前绑定流程的WorkID约束同一时间点只能有一个有效WorkID该流程结束后才可再次发起并覆盖。典型场景车辆维修流程启动 → 车辆状态 维修中WorkIDOf001 当前 WorkID流程结束分支→ 状态 维修完毕或报废流程节点/结束事件更新实体表状态字段代码实现组件路径方法实体Method/MethodFlowHostBill.ts字段约定MapRefMethod.AddRM_StartHostFlow发起 UIWF/Comm/En.vueRefMethodType.StartHostFlow单次规则FrmBillFlowSingleRole.ts强制单实例hooks/useSearchMethod.ts宿主不走多流程列表直接发起WorkIDOf 自动注册MapRefMethod.tsconst fieldID WorkIDOf flowNo; // 如 WorkIDOf001 if (!this.attrs.find((attr) attr.Key fieldID)) { this.AddTBInt(fieldID, null, ${title}WorkID, true, true, false); }发起逻辑En.vueWorkIDOf 0时创建流程并回写 WorkID否则打开已有MyView。向导创建FlowDevModel 3宿主专用FlowEtc_SaveFlowModelFlowHostBill。Demo 参考App/Demo/SingleRecord/StudentFlowComponent.tsWorkIDOf058、App/Demo/Resume.ts手工发起示例。状态机示意stateDiagram-v2 [*] -- 正常: WorkIDOf0010 正常 -- 维修中: 发起维修流程 维修中 -- 维修完毕: 流程结束事件 维修中 -- 报废: 流程结束事件 维修完毕 -- 正常: WorkIDOf001 归档/清零四、公共机制与接口对照4.1 实体—流程关联键字段位置用途PWorkIDWF_GenerWorkFlow实体主键OID / NoPFlowNoWF_GenerWorkFlow实体 FrmIDWorkIDOf{FlowNo}实体业务表宿主模式当前绑定 WorkID4.2 后端接口接口适用模式CreateWorkID新增MyDict_DoFlowBatchBaseData_StartFlow批处理MyDict_DoFlowEtc_StartFlow修改 / 多次业务 / 宿主FlowBaseData_Save/FlowEtc_Save向导创建流程4.3 模式选型速查需求模式操作对象审批通过后入库新增集合 → 新行勾选多行统一审批批处理集合 → 一条流程变更档案并写回修改单行申请类、不影响主数据多次业务单行状态机 唯一在途流程宿主单行五、设计评估合理性、可操作性、可实践性本节基于驰骋 BPM 对实体—流程关系的概念划分从架构与落地角度评估其对开发人员的价值。5.1 合理性Conceptual Soundness5.1.1 划分是否贴合业务本质评估点结论说明一行 vs 多行合理与「实体 / 实体集合」领域语言一致Collection 对集合、Method 对单行职责清晰回写 vs 不回写合理修改模式与多次业务模式分离避免「申请流程误改主数据」的常见设计错误新增独立成模式合理「流程产单」是 OA/ERP 高频场景与「改已有行」目标不同不应混在同一 MethodModel宿主单独成模式合理唯一 WorkID 状态枚举是状态机语义与可多次发起的 FlowEtc 本质不同强行合并会导致并发发起与状态不一致5.1.2 概念正交性五种模式在三个维度上近似正交维度1操作对象 → 单行 | 多行 | 无行新增 维度2数据回写 → 回写 | 不回写 | 双向宿主 维度3实例约束 → 无约束 | 唯一在途宿主开发人员选型时可按业务问答式决策降低架构讨论成本。5.1.3 可改进点用户口述「三种模式」实际为五种建议在培训材料中统一口径避免实施歧义。FlowHostBill在 UI 文案中为「寄宿流程」与「宿主流程」混用建议文档与界面术语统一为宿主流程。批处理与流程属性中的IsBatchStart流程级批量名称相近实施时需向配置人员说明实体 Collection 批处理与流程设计器批量发起的差异。5.2 可操作性Operability5.2.1 配置化程度能力配置入口代码开发量创建流程 复制实体表单GPN_Method向导零代码按钮挂载位置IsList/IsSearchBar/IsMyBillToolBar零代码字段同步DTSDataWayDTSWhenFlowOver零代码常规字段流程历史查询GL_FlowEtcList内置零代码宿主 WorkIDOf 字段AddRM_StartHostFlow自动追加零代码向导/RefMethod状态变更节点/流程事件SQL 或业务单元少量配置5.2.2 实施路径清晰flowchart TD A[确认业务场景] -- B{选型五种模式之一} B -- C[GPN_Method / Collection 向导] C -- D[自动创建流程并复制表单] D -- E[配置 DTS 与显示位置] E -- F{是否宿主?} F --|是| G[设计状态字段 WorkIDOf 流程规则] F --|否| H[上线验证] G -- I[配置流程事件更新状态] I -- H5.2.3 权限与规则内置各 Method 均挂接PCenters权限子表可按组织/角色控制按钮可见性。宿主模式提供FrmBillFlowSingleRole单次流程规则支持「仅允许一次发起」等约束减少硬编码校验。5.2.4 可操作性评分维度评分简要理由配置人员实施顾问★★★★☆向导覆盖 80% 场景宿主状态机与事件仍需一定 WF 经验业务人员★★★★☆按钮语义与业务动作一致「变更」「申请」「维修」开发人员★★★★★标准场景无需写集成层复杂逻辑可下沉 RefMethod / 事件5.3 可实践性Practicability5.3.1 对开发工作量的节省若自行开发无模式划分驰骋配置模式替代编写「发起流程 传参」ControllerMyDict_DoFlowEtc_StartFlow统一入口维护实体字段 → 流程字段映射表启动时同名自动复制 DTS 配置流程结束监听写回实体DTSWhenFlowOver查询某实体关联的全部流程GL_FlowEtcListPWorkID 检索防止宿主流程重复发起WorkIDOf{FlowNo}FrmBillFlowSingleRole列表「新建实体」按钮CollectionFlowNewEntityCreateWorkID结论对于车辆、资产、员工等标准主数据 周边流程类项目实施人员通过配置五种模式即可交付开发人员主要承担实体 Map 设计字段、状态枚举非常规逻辑RefMethod、流程事件、外挂WaiGuaBaseEntity前端个性化 UI非标准 Search / 卡片5.3.2 代码结构对实践的支撑MethodModel 常量贯穿前后端Search HookuseSearchNoName.ts、useSearchMethod.ts、useSearchBill.ts按类型分支扩展新模式时有明确挂点。MapRefMethod提供AddRM_StartFlow/AddRM_StartHostFlow/AddRM_SearchFlow代码级实体与配置级 Method语义一致便于从配置迁移到代码或反向。单据需求文档§九 已维护方法类型清单利于团队知识传承。5.3.3 实践风险与规避风险规避建议误用 FlowEtc 做应回写的变更选型阶段强制区分「变更主数据」与「附属申请」宿主流程未配事件状态不更新实施 checklist状态字段 WorkIDOf 结束事件三者齐套批处理选中行过多导致流程表单过大业务上限 分批发起或改用子表 Dtl 承载字段名不一致导致复制失败向导「重新导入实体字段」或统一命名规范5.3.4 可实践性总评驰骋 BPM 将实体—流程交互产品化为五种 MethodModel在合理性上覆盖了企业主数据管理的主流范式在可操作性上通过向导、DTS、内置列表降低实施门槛在可实践性上显著减少重复集成代码使「配置即交付」成为可达成目标。对开发人员而言工作重点从「写流程对接胶水代码」转向「选好模式 设计实体字段与事件」整体人天可节省约 50%70%标准 CRUD流程类需求视项目复杂度浮动。六、总结模式操作对象一句话新增实体集合流程走完 → 集合多一行批处理实体集合多选多行 →一条流程修改单个实体一行 → 流程 →回写同一行多次业务单个实体一行 →多次流程不回写宿主单个实体一行 ↔唯一在途流程状态由流程驱动实体 一行数据实体集合 多行数据。流程对实体的五种处理方式本质是驰骋 BPM 在配置层对「增、改、批量、申请、绑态」的产品化封装使开发人员以模式选型 向导配置为主、编码为辅。七、通用 BPM 平台的同类处理方式业界 BPM / 工作流产品与驰骋五种模式在语义上高度对应实现层次与术语各异。下表便于集成设计与技术对标。7.1 概念对照驰骋 BPM通用 BPM 术语典型实现新增模式Process-initiated creation结束监听器 / External Task 调 API 创单批处理模式Bulk initiation多 businessKey 写入流程变量修改模式Master data change approval快照 审批后 MERGESAP MDG 等多次业务模式Ad-hoc / detached subprocess仅传 businessKey不更新主记录宿主流程模式Case management / stateful binding状态机 activeProcessInstanceId7.2 通用集成模式模式说明对应驰骋Business Key流程实例绑定业务主键PWorkIDPFlowNoCopy-on-start发起时主数据快照进流程MyDict_DoFlowEtc_StartFlowService Task 回写节点/结束调业务 APIDTSWhenFlowOver/ 事件状态机 单实例业务对象唯一活动流程WorkIDOf{FlowNo} 宿主规则Bulk variables多 ID 集合进一条流程FlowEntityBatchStart7.3 主流产品参考平台与驰骋最接近的能力Camunda / FlowableBusiness Key Listener 回写 ≈ PWorkID DTSPower Automate Dataverse行绑定 单活动实例 ≈ 宿主流程ServiceNow FlowTable 记录 Flow Context ≈ 实体 PWorkIDSAP MDG变更请求审批激活 ≈ 修改模式CMMNCase 文件项绑定 ≈ 宿主 状态机7.4 差异摘要维度通用 BPM驰骋 BPM模式划分通常不预置集成层自定五种 MethodModel 开箱即用字段同步Connector / 自研DTS 配置化宿主单实例自定义锁WorkIDOf 流程规则UI 入口门户 / 自研按钮Method Collection表单独立建模从实体一键复制7.5 对外集成建议统一Business Key↔PWorkID实体类型 ↔PFlowNo。修改/新增必须定义回写字段清单与时机对齐 DTS。宿主场景在外部系统维护statusactiveWorkId与WorkIDOf{FlowNo}对齐。批处理约定流程变量名承载多主键列表对齐WorkIDs参数。附录 A关键源码索引主题路径MethodModel 常量Vue3/src/CCFast/CCBill/Method/GPN_Method.ts新增模式Vue3/src/CCFast/CCBill/Method/MethodFlowNewEntity.ts修改模式Vue3/src/CCFast/CCBill/Method/MethodFlowBaseData.ts多次业务Vue3/src/CCFast/CCBill/Method/MethodFlowEtc.ts宿主流程Vue3/src/CCFast/CCBill/Method/MethodFlowHostBill.ts批处理Vue3/src/CCFast/CCBill/Collection/CollectionFlowEntityBatchStart.ts列表新建Vue3/src/CCFast/CCBill/Collection/CollectionFlowNewEntity.tsRefMethod APIVue3/src/bp/en/Map/MapRefMethod.ts宿主发起Vue3/src/WF/Comm/En.vue流程历史Vue3/src/CCFast/CCBill/Method/GL_FlowEtcList.ts列表 HookVue3/src/CCFast/CCBill/hooks/useSearchNoName.ts行级 HookVue3/src/CCFast/CCBill/hooks/useSearchMethod.ts卡片框架Vue3/src/CCFast/CCBill/MyDictFrameWork.vueDemoVue3/src/App/Demo/SingleRecord/StudentFlowComponent.ts附录 B实施配置 Checklist明确操作对象单行 / 多行 / 新建选定 MethodModel五种之一向导创建流程并确认表单字段已从实体复制配置 DTS修改/新增/宿主按需配置按钮位置IsList / IsSearchBar / IsMyBillToolBar宿主模式状态枚举 WorkIDOf{FlowNo} 流程事件 单次规则权限PCenters 子表验证发起、审批、回写/不回写、重复发起约束— 文档结束 —
上一篇/下一篇内容由系统自动关联 返回资讯列表 →