驰骋JFlow父子流程-功能清单 📅 2026/6/16 11:14:11 CCFlow 父子流程需求列表依据代码整理CCFlow/Components/BP.WF、Vue3/src/WF/Admin/AttrNode/SubFlow、Vue3/src/WF/WorkOpt/SubFlow.vue一、总体架构CCFlow 父子流程采用「节点级父子流程组件FrmSubFlow 子流程绑定配置WF_NodeSubFlow」双层结构层级数据实体作用组件层FrmSubFlow挂接在WF_Node控制表单上子流程区域的显示、权限、汇总规则绑定层SubFlowHand/Auto/YanXu/Guide定义具体子流程编号、启动方式、联动与数据规则子流程类型SubFlowType共 4 种0 手动启动、1 自动触发、2 延续、3 前置导航。二、功能需求明细表一设计配置 — 父子流程组件功能类别功能名称功能说明需求场景概述组件基础父子流程组件启用SFSta禁用 / 启用 / 只读启用后自动在表单创建「父子流程」分组字段GroupCtrlType.SubFlow在审批节点表单嵌入子流程管理区域组件基础显示标签SFLab默认「子流程」控制表单分组标题按业务命名如「关联采购单」「子项目审批」组件基础组件高度SF_H默认 300px控制子流程列表区域在表单中的可视高度组件显示显示方式SFShowModel表格方式 / 自由模式代码标注暂未充分使用预留不同 UI 展现风格组件显示显示控制方式SFShowCtrl可看所有子流程 / 仅看自己发起的多人共办同一父流程时限制子流程实例可见范围组件显示连接标题SFCaption默认「启动子流程」手工启动入口的默认链接文字组件显示可启动子流程编号SFDefInfo多个流程编号逗号分隔限制组件上允许启动的子流程范围组件显示审批格式字段SFFields配置子流程在审核组件中的展示字段组件显示打开子流程显示SFOpenType工作查看器 / 流程轨迹点击子流程实例时打开表单或轨迹图组件联动所有子流程结束规则AllSubFlowOverRole不处理 / 父流程自动下一步 / 父流程结束节点绑定多个子流程时全部完成后统一驱动父流程组件管理子流程类型入口提供「手动启动 / 自动触发 / 延续子流程」三个 RefMethod 管理入口流程设计器节点属性中分类维护子流程组件管理组件禁用清理禁用时删除对应GroupFieldCtrlIDSubFlowND{NodeID}关闭组件后表单不再显示子流程区域二设计配置 — 新建子流程向导GPN_NewSubFlow功能类别功能名称功能说明需求场景概述向导创建手工启动子流程选择目标流程排除当前父流程创建SubFlowType0跳转SubFlowHand编辑审批人按需手工发起子流程向导创建自动触发子流程创建SubFlowType1节点SubFlowAutoNum自增跳转SubFlowAuto编辑发送/到达时按规则自动发起向导创建延续子流程创建SubFlowType2跳转SubFlowYanXu编辑父节点发送后冻结转入延续流程向导创建前置导航子流程创建SubFlowType3跳转SubFlowGuide编辑对开始节点有效先选子流程实例再发起父流程如报销选采购单向导创建重复绑定校验主键{NodeID}_{SubFlowNo}_{SubFlowType}已存在则提示防止同一节点重复绑定同一子流程向导创建流程分组选择按FlowSort分组展示可选流程列表大量流程时分组快速定位三设计配置 — 手动启动子流程SubFlowHand功能类别功能名称功能说明需求场景概述基本属性子流程编号/名称绑定目标子流程SubFlowNo、SubFlowName指定要发起的子流程模板基本属性子流程状态SubFlowSta禁用 / 启用 / 只读临时关闭某个子流程入口或只读展示基本属性启动文字标签SubFlowLab覆盖默认「启动子流程」如「发起投标流程」「创建合同审批」基本属性子流程模式SubFlowModel下级子流程 / 同级子流程下级挂当前 WorkID同级挂父流程 PWorkID 并记录 SL 参数基本属性轨迹显示位置SubFlowShowNodeID绑定设计器子流程图标节点子流程实例显示在父流程轨迹图指定位置基本属性显示顺序Idx支持上移/下移DoUp/DoDown多个子流程时控制列表排序节点运动父流程自动运行到下一步ParentFlowSendNextStepRole不处理 / 子流程结束 / 子流程到指定节点子流程完成后自动推进父流程节点运动父流程结束规则ParentFlowOverRole同上三档子流程完成后自动结束父流程节点运动指定子流程节点 IDSubFlowNodeID配合「到指定节点」规则子流程到某审批节点即触发父流程联动节点运动同级子流程结束规则IsAutoSendSLSubFlowOver不处理 / 同级自动下一步 / 结束同级平级子流程全部完成后驱动发起它的同级流程限制规则仅能被调用 1 次StartOnceOnly同一父实例下该子流程只能发起一次限制规则结束后才可重新发起CompleteReStart上次实例归档后才允许再次发起限制规则指定流程启动后才能启动IsEnableSpecFlowStartSpecFlowStart逗号分隔多流程子流程 B 必须在子流程 A 启动后才能发起限制规则指定流程结束后才能启动IsEnableSpecFlowOverSpecFlowOver子流程 B 必须在子流程 A 完成后才能发起数据传递父→子字段拷贝SubFlowCopyFields格式父字段子字段...发起时把父流程数据带入子流程表单数据传递子→父字段反填规则BackCopyRole不反填 / 自动匹配 / 按设置格式 / 混合子流程结束后回填父流程数据传递子→父字段映射ParentFlowCopyFields格式子字段父字段...精确映射签批字段建议用「按设置格式」启动模式单条手工启动SubFlowStartModel0一次发起一条子流程SubFlow.vue 表格模式启动模式简单数据源批量启动SubFlowStartModel1按数据源多行批量发起启动模式分组数据源批量启动SubFlowStartModel2分组展示后批量发起启动模式树形结构批量启动SubFlowStartModel3树形选择后批量发起展现模式表格模式SubFlowShowModel0父子行可展开表格当前 Vue 实现展现模式列表模式SubFlowShowModel1非单条启动时切换为 List 展现配置入口发起模式配置页DoStartModel→ SubFlowStartModel 配置设计期配置批量/树形等启动方式配置入口显示模式配置页DoShowModel→ SubFlowShowModel 配置设计期配置展现风格四设计配置 — 自动触发子流程SubFlowAuto功能类别功能名称功能说明需求场景概述触发时机调用时间InvokeTime发送时(0) / 工作到达时(1)前端另有流程结束时选项父节点发送后或工作到达时自动触发触发时机自动发送方式SendModel给当前人开始节点待办 / 发送到下一节点子流程创建后停在开始节点或自动流转触发时机发送方式校验选「发送到下一节点」时下一节点接收人规则不能为「由上一步选择」保证自动触发无需人工选人等启动限制仅调用 1 次同手动子流程防止重复自动发起启动限制结束后才可重新发起同手动子流程控制重复触发启动限制指定流程启动后/结束后同手动子流程支持多流程逗号分隔串行依赖的自动子流程链启动限制按指定 SQL 配置IsEnableSQLSpecSQLSQL 返回值0 才触发按表单/SQL 动态判断是否触发启动限制按平级子流程节点完成IsEnableSameLevelNodeSameLevelNode格式流程,节点;...仅平级模式指定平级节点完成后触发启动数据源当前表单主表数据DBSrcType0发起单个子流程并用主表赋值一对一自动发起启动数据源指定 SQL 数据源DBSrcType1DBSrcDoc每行发起一个子流程列名匹配子流程字段按子表明细批量自动发起如每行物料一条子流程节点运动父流程联动规则同 SubFlowHand下一步/结束/指定节点/同级规则自动子流程完成后的父流程驱动数据传递父→子 / 子→父SubFlowCopyFields、BackCopyRole、ParentFlowCopyFields自动发起与结束时数据同步待办控制发送后隐藏父流程待办SubFlowHidTodolist设置父流程待办IsPass100批量/自动发起子流程后父流程待办暂时隐藏待办控制子流程结束后恢复父待办所有同类型子流程结束后恢复IsPass0子流程全部完成后再显示父流程待办轨迹显示轨迹显示位置SubFlowShowNodeID同手动子流程五设计配置 — 延续子流程SubFlowYanXu功能类别功能名称功能说明需求场景概述延续特性延续子流程绑定节点仅可配置延续子流程发送时转入子流程当前节点活动冻结主流程暂停由延续流程承接后续处理延续特性子流程模式下级 / 同级建立 PWorkID 或 SLWorkID 关系延续流程作为下级或平级分支延续特性延续到的节点YanXuToNode多节点逗号分隔空则到子流程开始节点延续可直接送到子流程中间节点延续特性条件表达式ExpType按 SQL / 按参数CondExp控制是否走延续按条件决定是否进入延续流程延续特性接收人规则延续子流程开始节点须能明确计算接收人角色/部门/绑定人员等发送延续流程时自动确定处理人退回控制越轨子流程退回方式YBFlowReturnRole不能退回 / 退父开始 / 退父任意 / 退父启动 / 退指定节点延续子流程开始节点可退回到父流程退回控制要退回的节点ReturnToNode下拉选择父流程节点配合「退指定节点」使用运行时父待办隐藏提示延续启动后提示「待办不可见需等子流程完成」用户知晓父流程被挂起运行时撤销发送处理WorkUnSend中识别越轨状态并删除延续子流程父流程撤销时清理延续子流程六设计配置 — 前置导航子流程SubFlowGuide / SubFlowHandGuide功能类别功能名称功能说明需求场景概述前置导航流程级前置导航配合StartGuideWay.SubFlowGuide/SubFlowGuideEntity开始节点先选已有子流程实例再创建父流程前置导航批量发起前置导航IsSubFlowGuideSubFlowGuideSQL须含 No、Name 列从 SQL 列表勾选多条记录批量发起子流程前置导航分组 SQLSubFlowGuideGroup导航列表按分组展示前置导航实体字段映射SubFlowGuideEnNoFiled、SubFlowGuideEnNameFiled自定义 SQL 结果列名前置导航树形结构IsTreeConstructParentNo树形前置导航选择批量发起多选批量发起SubFlowGuid_Send线程池并发SendSingleSubFlow一次选中多条记录并行发起子流程应用场景先子后父费用报销选采购申请单子流程先存在完成后出现父流程经典「先出现子流程后出现父流程」业务七运行时 — 子流程组件 UISubFlow.vue功能类别功能名称功能说明需求场景概述列表展示表格模式父行显示子流程名称子行展示已发起实例发起人、标题、节点、状态、处理人、时间审批表单内查看/管理子流程列表展示行展开expandRowByClick点击展开查看实例列表折叠展示多个子流程绑定列表展示流程状态文本草稿/新工作/归档/挂起/退回/转发/删除/加签等快速识别子流程运行状态列表展示过滤草稿与 FID跳过WFState0及FID!0的记录只展示有效主实例权限控制组件启用 子流程启用SFSta1且SubFlowSta1且非只读才可启动双重开关控制权限控制跨节点只读当前FK_Node与组件绑定节点不一致时子流程置为只读累加表单场景防止非绑定节点误操作权限控制只读模式isReadonlytrue或组件/子流程只读时禁止启动查看模式、已办查看数据权限显示控制SFShowCtrl0查全部1仅查Starter当前用户多人协作时的实例隔离启动操作下级子流程启动传PWorkID当前WorkID、PNodeID、PFlowNo、PFID标准父子关系启动操作同级子流程启动传PWorkID父PWorkID并带SLWorkID/SLNodeID/SLFlowNo与父流程平级的旁支子流程启动操作平级过滤按SLWorkID过滤只显示当前流程发起的平级子流程避免看到其他节点发起的同级子流程启动操作启动链接文字使用SubFlowLab或默认[启动子流程]可配置的业务入口文案查看操作打开子流程iframe 打开MyView带PageFromSubFlow在父流程内查看/处理子流程交互子流程完成后刷新监听ReloadPage消息关闭 iframe 并重新加载列表发起子流程后自动刷新父表单组件展现切换List 模式切换SubFlowStartModel!0时切换为 List批量/导航模式非单条手工启动走另一套 UI八运行时 — 子流程发起与父子关系功能类别功能名称功能说明需求场景概述关系建立父子流程关联SetParentInfo写入PWorkID/PNodeID/PFlowNo/PEmp建立实例级父子血缘关系建立同级子流程参数AtPara存储SLWorkID/SLNodeID/SLFlowNo/SLEmp标识由哪个同级流程发起发起校验能否发起校验Flow_IsCanStartThisFlow校验开始节点人员权限防止无权限人员发起子流程发起校验启动限制综合判断综合StartOnceOnly/CompleteReStart/SpecFlowStart/SpecFlowOver/SQL等手工与自动发起前统一门禁数据初始化父数据复制到子创建时从父节点 Work 复制再按SubFlowCopyFields映射子流程表单自动带数数据初始化标题同步子流程 Title 可与父流程保持一致代码注释中的设计意图列表中父子标题一致便于识别工具栏发起子流程按钮节点工具栏SubFlowStartModel!0时显示SendSubFlow批量/导航模式从工具栏入口发起工具栏删除子流程DelSubFlow→Flow_DeleteSubThread手工删除误发起的子流程实例删除联动删除父流程时删子流程CB_IsDeleteSubFlow选项删父流程时级联删除子流程九运行时 — 父流程联动与待办功能类别功能名称功能说明需求场景概述单个子流程联动子流程结束→父流程下一步ParentFlowSendNextStepRoleFlowOver一个子流程完成即推进父流程单个子流程联动子流程结束→父流程结束ParentFlowOverRoleFlowOver子流程完成即结束父流程单个子流程联动子流程到指定节点→父流程下一步ParentFlowSendNextStepRoleSpecifiedNodesSubFlowNodeID子流程到某节点即触发父流程全部子流程联动全部结束→父流程下一步组件AllSubFlowOverRoleSendParentFlowToNextStep多子流程会签式全部完成后推进全部子流程联动全部结束→父流程结束组件AllSubFlowOverRoleOverParentFlow全部子流程完成后结束父流程全部子流程联动运行中子流程计数Flow_NumOfSubFlowRuning判断是否全部完成防止部分完成就触发父流程同级子流程联动同级自动下一步IsAutoSendSLSubFlowOver1平级子流程完成后推动发起它的流程同级子流程联动结束同级子流程IsAutoSendSLSubFlowOver2平级子流程完成后结束发起流程流程属性级子流程到该节点父流程自动下一步流程属性IsToParentNextNode子流程节点级子流程到达特定节点时驱动父流程自动发送模拟父流程处理人登录发送SubFlowOver_ParentFlowAutoSendNextSetp切换用户上下文发送无人值守自动推进父流程待办恢复隐藏待办后恢复同类型子流程全部结束且SubFlowHidTodolisttrue时恢复IsPass0子流程全完成后再出现父待办十运行时 — 数据反填子→父功能类别功能名称功能说明需求场景概述反填规则不反填BackCopyRoleNone子流程与父流程数据独立反填规则字段自动匹配同名字段自动 Copy内置表单、字段名一致时零配置反填规则按设置格式ParentFlowCopyFields精确映射字段名不同或签批字段反填反填规则混合模式自动匹配 按设置格式同时生效通用字段自动、特殊字段手工映射反填范围Work Rpt 双表更新同时更新节点 Work 与流程 Rpt表单与报表数据一致反填扩展签批信息拷贝签批字段对应 Track 记录ActionType22复制到父流程子流程审批意见汇总到父流程轨迹十一运行时 — 阻塞与发送校验功能类别功能名称功能说明需求场景概述节点阻塞指定子流程未完成不能发送BlockModelSpecSubFlowBlockExp配置节点,流程;...父节点必须等指定子流程完成节点阻塞指定子流程未到指定节点不能发送BlockModelSpecSubFlowNode配置节点,流程,子流程节点子流程到某节点前父流程不能往下走节点阻塞平级子流程未完成不能发送BlockModelSameLevelSubFlow平级分支全部完成才能继续节点阻塞阻塞错误提示列出未完成子流程 ID、名称、标题、当前处理人明确告知卡在哪条子流程发送校验子流程未完成阻止发送发送前检查已发起子流程WFState有运行中子流程时不允许父流程发送设计校验越轨/子流程发起检查FlowCheckError中检查延续子流程配置发布前发现配置错误十二运行时 — 轨迹、审核与查看功能类别功能名称功能说明需求场景概述轨迹图子流程轨迹显示位置设计器创建子流程 Icon 并绑定SubFlowShowNodeID父流程轨迹图上可视化子流程轨迹图子流程节点坐标X/Y属性存储图标位置设计器拖拽定位审核组件子流程审核信息汇总WF_WorkOpt中输出子流程 Track节点名前缀「(子流程)」父流程审核区展示子流程审批记录审核组件多子流程发起人去重批量发起时发起人只显示一次避免审核列表重复查看父流程查看父流程按钮ShowParentFormEnable处理/查看/抄送页可分别配置子流程处理人跳转查看父流程轨迹配置轨迹图是否显示SFTrackEnable组件区是否展示子流程轨迹轨迹配置历史审核是否显示SFListEnable组件区是否展示历史审核轨迹配置显示所有步骤SFIsShowAllStep轨迹表是否展示全部子流程步骤十三流程/节点级扩展配置功能类别功能名称功能说明需求场景概述节点计数自动子流程数量节点SubFlowAutoNum新建自动子流程时自增标识节点是否配置了自动触发节点计数延续子流程数量节点SubFlowYanXuNum标识节点是否配置延续子流程节点属性发起会签子流程ItIsSendDraftSubFlow工具栏入口草稿/会签场景发起子流程流程属性前置导航-父子流程模式StartGuideWay.ByParentFlowModel流程级前置导航与父子流程集成流程属性前置导航-子流程实例列表StartGuideWay.SubFlowGuide从开始节点选子流程实例移动端移动端子流程组件CCMobile/WorkOpt/SubFlow.vue移动端同等父子流程能力存储统一存储表所有类型子流程存WF_NodeSubFlow主键含类型后缀一种表结构支撑四种类型三、子流程类型与模式对照父流程节点0 下级1 同级FrmSubFlow 组件手动启动 SubFlowHand自动触发 SubFlowAuto延续子流程 SubFlowYanXu前置导航 SubFlowGuideSubFlowModelPWorkID 父WorkIDPWorkID 父PWorkID SL参数子流程实例结束事件 SubFlowEvent数据反填 / 父流程联动 / 待办恢复四、典型业务场景映射业务场景推荐配置组合工程主流程 投标子流程投标结果回填主流程手动启动 BackCopyRole反填 父流程自动下一步采购主单按明细行自动生成审批子流程自动触发 SQL 数据源 批量发起主流程暂停转交专门审批线处理后再回来延续子流程 父待办隐藏 子流程结束联动报销前先选多张采购申请单前置导航子流程 开始节点SubFlowGuide并行多个子审批全部完成后主流程才往下走组件AllSubFlowOverRole 节点SpecSubFlow阻塞同一父流程下多人各发起自己的子流程SFShowCtrl仅看自己发起的五、相关代码路径模块路径后端子流程模板CCFlow/Components/BP.WF/Template/SFlow/后端运行逻辑CCFlow/Components/BP.WF/WF/WorkNode.cs、WorkNodePlus.cs前端配置实体Vue3/src/WF/Admin/AttrNode/SubFlow/前端运行组件Vue3/src/WF/WorkOpt/SubFlow.vue父子流程组件配置Vue3/src/WF/TSClass/FrmSubFlowNode.ts文档生成依据 CCFlow 代码库当前实现整理。