当前位置: 首页 > news >正文

驰骋JFlow父子流程-功能清单

CCFlow 父子流程需求列表

依据代码整理:CCFlow/Components/BP.WFVue3/src/WF/Admin/AttrNode/SubFlowVue3/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 管理入口流程设计器节点属性中分类维护子流程
组件管理组件禁用清理禁用时删除对应GroupField(CtrlID=SubFlowND{NodeID}关闭组件后表单不再显示子流程区域

(二)设计配置 — 新建子流程向导(GPN_NewSubFlow)

功能类别功能名称功能说明需求场景概述
向导创建手工启动子流程选择目标流程(排除当前父流程),创建SubFlowType=0,跳转SubFlowHand编辑审批人按需手工发起子流程
向导创建自动触发子流程创建SubFlowType=1,节点SubFlowAutoNum自增,跳转SubFlowAuto编辑发送/到达时按规则自动发起
向导创建延续子流程创建SubFlowType=2,跳转SubFlowYanXu编辑父节点发送后冻结,转入延续流程
向导创建前置导航子流程创建SubFlowType=3,跳转SubFlowGuide编辑;对开始节点有效先选子流程实例再发起父流程(如报销选采购单)
向导创建重复绑定校验主键{NodeID}_{SubFlowNo}_{SubFlowType},已存在则提示防止同一节点重复绑定同一子流程
向导创建流程分组选择FlowSort分组展示可选流程列表大量流程时分组快速定位

(三)设计配置 — 手动启动子流程(SubFlowHand)

功能类别功能名称功能说明需求场景概述
基本属性子流程编号/名称绑定目标子流程SubFlowNoSubFlowName指定要发起的子流程模板
基本属性子流程状态SubFlowSta:禁用 / 启用 / 只读临时关闭某个子流程入口或只读展示
基本属性启动文字标签SubFlowLab,覆盖默认「启动子流程」如「发起投标流程」「创建合同审批」
基本属性子流程模式SubFlowModel:下级子流程 / 同级子流程下级挂当前 WorkID;同级挂父流程 PWorkID 并记录 SL 参数
基本属性轨迹显示位置SubFlowShowNodeID,绑定设计器子流程图标节点子流程实例显示在父流程轨迹图指定位置
基本属性显示顺序Idx,支持上移/下移(DoUp/DoDown多个子流程时控制列表排序
节点运动父流程自动运行到下一步ParentFlowSendNextStepRole:不处理 / 子流程结束 / 子流程到指定节点子流程完成后自动推进父流程
节点运动父流程结束规则ParentFlowOverRole:同上三档子流程完成后自动结束父流程
节点运动指定子流程节点 IDSubFlowNodeID,配合「到指定节点」规则子流程到某审批节点即触发父流程联动
节点运动同级子流程结束规则IsAutoSendSLSubFlowOver:不处理 / 同级自动下一步 / 结束同级平级子流程全部完成后驱动发起它的同级流程
限制规则仅能被调用 1 次StartOnceOnly同一父实例下该子流程只能发起一次
限制规则结束后才可重新发起CompleteReStart上次实例归档后才允许再次发起
限制规则指定流程启动后才能启动IsEnableSpecFlowStart+SpecFlowStart(逗号分隔多流程)子流程 B 必须在子流程 A 启动后才能发起
限制规则指定流程结束后才能启动IsEnableSpecFlowOver+SpecFlowOver子流程 B 必须在子流程 A 完成后才能发起
数据传递父→子字段拷贝SubFlowCopyFields,格式@父字段=子字段@...发起时把父流程数据带入子流程表单
数据传递子→父字段反填规则BackCopyRole:不反填 / 自动匹配 / 按设置格式 / 混合子流程结束后回填父流程
数据传递子→父字段映射ParentFlowCopyFields,格式@子字段=父字段@...精确映射;签批字段建议用「按设置格式」
启动模式单条手工启动SubFlowStartModel=0一次发起一条子流程(SubFlow.vue 表格模式)
启动模式简单数据源批量启动SubFlowStartModel=1按数据源多行批量发起
启动模式分组数据源批量启动SubFlowStartModel=2分组展示后批量发起
启动模式树形结构批量启动SubFlowStartModel=3树形选择后批量发起
展现模式表格模式SubFlowShowModel=0父子行可展开表格(当前 Vue 实现)
展现模式列表模式SubFlowShowModel=1非单条启动时切换为 List 展现
配置入口发起模式配置页DoStartModel→ SubFlowStartModel 配置设计期配置批量/树形等启动方式
配置入口显示模式配置页DoShowModel→ SubFlowShowModel 配置设计期配置展现风格

(四)设计配置 — 自动触发子流程(SubFlowAuto)

功能类别功能名称功能说明需求场景概述
触发时机调用时间InvokeTime:发送时(0) / 工作到达时(1)(前端另有流程结束时选项)父节点发送后或工作到达时自动触发
触发时机自动发送方式SendModel:给当前人开始节点待办 / 发送到下一节点子流程创建后停在开始节点或自动流转
触发时机发送方式校验选「发送到下一节点」时,下一节点接收人规则不能为「由上一步选择」保证自动触发无需人工选人等
启动限制仅调用 1 次同手动子流程防止重复自动发起
启动限制结束后才可重新发起同手动子流程控制重复触发
启动限制指定流程启动后/结束后同手动子流程,支持多流程逗号分隔串行依赖的自动子流程链
启动限制按指定 SQL 配置IsEnableSQL+SpecSQL,SQL 返回值>0 才触发按表单/SQL 动态判断是否触发
启动限制按平级子流程节点完成IsEnableSameLevelNode+SameLevelNode(格式流程,节点;...仅平级模式;指定平级节点完成后触发
启动数据源当前表单主表数据DBSrcType=0,发起单个子流程并用主表赋值一对一自动发起
启动数据源指定 SQL 数据源DBSrcType=1+DBSrcDoc,每行发起一个子流程,列名匹配子流程字段按子表明细批量自动发起(如每行物料一条子流程)
节点运动父流程联动规则同 SubFlowHand(下一步/结束/指定节点/同级规则)自动子流程完成后的父流程驱动
数据传递父→子 / 子→父SubFlowCopyFieldsBackCopyRoleParentFlowCopyFields自动发起与结束时数据同步
待办控制发送后隐藏父流程待办SubFlowHidTodolist,设置父流程待办IsPass=100批量/自动发起子流程后,父流程待办暂时隐藏
待办控制子流程结束后恢复父待办所有同类型子流程结束后,恢复IsPass=0子流程全部完成后再显示父流程待办
轨迹显示轨迹显示位置SubFlowShowNodeID同手动子流程

(五)设计配置 — 延续子流程(SubFlowYanXu)

功能类别功能名称功能说明需求场景概述
延续特性延续子流程绑定节点仅可配置延续子流程;发送时转入子流程,当前节点活动冻结主流程暂停,由延续流程承接后续处理
延续特性子流程模式下级 / 同级,建立 PWorkID 或 SLWorkID 关系延续流程作为下级或平级分支
延续特性延续到的节点YanXuToNode,多节点逗号分隔,空则到子流程开始节点延续可直接送到子流程中间节点
延续特性条件表达式ExpType:按 SQL / 按参数;CondExp控制是否走延续按条件决定是否进入延续流程
延续特性接收人规则延续子流程开始节点须能明确计算接收人(角色/部门/绑定人员等)发送延续流程时自动确定处理人
退回控制越轨子流程退回方式YBFlowReturnRole:不能退回 / 退父开始 / 退父任意 / 退父启动 / 退指定节点延续子流程开始节点可退回到父流程
退回控制要退回的节点ReturnToNode,下拉选择父流程节点配合「退指定节点」使用
运行时父待办隐藏提示延续启动后提示「待办不可见,需等子流程完成」用户知晓父流程被挂起
运行时撤销发送处理WorkUnSend中识别越轨状态并删除延续子流程父流程撤销时清理延续子流程

(六)设计配置 — 前置导航子流程(SubFlowGuide / SubFlowHandGuide)

功能类别功能名称功能说明需求场景概述
前置导航流程级前置导航配合StartGuideWay.SubFlowGuide/SubFlowGuideEntity开始节点先选已有子流程实例再创建父流程
前置导航批量发起前置导航IsSubFlowGuide+SubFlowGuideSQL(须含 No、Name 列)从 SQL 列表勾选多条记录批量发起子流程
前置导航分组 SQLSubFlowGuideGroup导航列表按分组展示
前置导航实体字段映射SubFlowGuideEnNoFiledSubFlowGuideEnNameFiled自定义 SQL 结果列名
前置导航树形结构IsTreeConstruct+ParentNo树形前置导航选择
批量发起多选批量发起SubFlowGuid_Send,线程池并发SendSingleSubFlow一次选中多条记录并行发起子流程
应用场景先子后父费用报销选采购申请单:子流程先存在,完成后出现父流程经典「先出现子流程,后出现父流程」业务

(七)运行时 — 子流程组件 UI(SubFlow.vue)

功能类别功能名称功能说明需求场景概述
列表展示表格模式父行显示子流程名称;子行展示已发起实例(发起人、标题、节点、状态、处理人、时间)审批表单内查看/管理子流程
列表展示行展开expandRowByClick,点击展开查看实例列表折叠展示多个子流程绑定
列表展示流程状态文本草稿/新工作/归档/挂起/退回/转发/删除/加签等快速识别子流程运行状态
列表展示过滤草稿与 FID跳过WFState=0FID!=0的记录只展示有效主实例
权限控制组件启用 + 子流程启用SFSta=1SubFlowSta=1且非只读才可启动双重开关控制
权限控制跨节点只读当前FK_Node与组件绑定节点不一致时,子流程置为只读累加表单场景防止非绑定节点误操作
权限控制只读模式isReadonly=true或组件/子流程只读时禁止启动查看模式、已办查看
数据权限显示控制SFShowCtrl=0查全部;=1仅查Starter=当前用户多人协作时的实例隔离
启动操作下级子流程启动PWorkID=当前WorkIDPNodeIDPFlowNoPFID标准父子关系
启动操作同级子流程启动PWorkID=父PWorkID,并带SLWorkID/SLNodeID/SLFlowNo与父流程平级的旁支子流程
启动操作平级过滤SLWorkID过滤,只显示当前流程发起的平级子流程避免看到其他节点发起的同级子流程
启动操作启动链接文字使用SubFlowLab或默认[启动子流程]可配置的业务入口文案
查看操作打开子流程iframe 打开MyView,带PageFrom=SubFlow在父流程内查看/处理子流程
交互子流程完成后刷新监听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批量/导航模式从工具栏入口发起
工具栏删除子流程DelSubFlowFlow_DeleteSubThread手工删除误发起的子流程实例
删除联动删除父流程时删子流程CB_IsDeleteSubFlow选项删父流程时级联删除子流程

(九)运行时 — 父流程联动与待办

功能类别功能名称功能说明需求场景概述
单个子流程联动子流程结束→父流程下一步ParentFlowSendNextStepRole=FlowOver一个子流程完成即推进父流程
单个子流程联动子流程结束→父流程结束ParentFlowOverRole=FlowOver子流程完成即结束父流程
单个子流程联动子流程到指定节点→父流程下一步ParentFlowSendNextStepRole=SpecifiedNodes+SubFlowNodeID子流程到某节点即触发父流程
全部子流程联动全部结束→父流程下一步组件AllSubFlowOverRole=SendParentFlowToNextStep多子流程会签式全部完成后推进
全部子流程联动全部结束→父流程结束组件AllSubFlowOverRole=OverParentFlow全部子流程完成后结束父流程
全部子流程联动运行中子流程计数Flow_NumOfSubFlowRuning判断是否全部完成防止部分完成就触发父流程
同级子流程联动同级自动下一步IsAutoSendSLSubFlowOver=1平级子流程完成后推动发起它的流程
同级子流程联动结束同级子流程IsAutoSendSLSubFlowOver=2平级子流程完成后结束发起流程
流程属性级子流程到该节点父流程自动下一步流程属性IsToParentNextNode(子流程节点级)子流程到达特定节点时驱动父流程
自动发送模拟父流程处理人登录发送SubFlowOver_ParentFlowAutoSendNextSetp切换用户上下文发送无人值守自动推进父流程
待办恢复隐藏待办后恢复同类型子流程全部结束且SubFlowHidTodolist=true时恢复IsPass=0子流程全完成后再出现父待办

(十)运行时 — 数据反填(子→父)

功能类别功能名称功能说明需求场景概述
反填规则不反填BackCopyRole=None子流程与父流程数据独立
反填规则字段自动匹配同名字段自动 Copy内置表单、字段名一致时零配置
反填规则按设置格式ParentFlowCopyFields精确映射字段名不同或签批字段反填
反填规则混合模式自动匹配 + 按设置格式同时生效通用字段自动、特殊字段手工映射
反填范围Work + Rpt 双表更新同时更新节点 Work 与流程 Rpt表单与报表数据一致
反填扩展签批信息拷贝签批字段对应 Track 记录(ActionType=22)复制到父流程子流程审批意见汇总到父流程轨迹

(十一)运行时 — 阻塞与发送校验

功能类别功能名称功能说明需求场景概述
节点阻塞指定子流程未完成不能发送BlockModel=SpecSubFlowBlockExp配置节点,流程;...父节点必须等指定子流程完成
节点阻塞指定子流程未到指定节点不能发送BlockModel=SpecSubFlowNode,配置节点,流程,子流程节点子流程到某节点前父流程不能往下走
节点阻塞平级子流程未完成不能发送BlockModel=SameLevelSubFlow平级分支全部完成才能继续
节点阻塞阻塞错误提示列出未完成子流程 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

前置导航 SubFlowGuide

SubFlowModel

PWorkID = 父WorkID

PWorkID = 父PWorkID + SL参数

子流程实例

结束事件 SubFlowEvent

数据反填 / 父流程联动 / 待办恢复


四、典型业务场景映射

业务场景推荐配置组合
工程主流程 + 投标子流程,投标结果回填主流程手动启动 +BackCopyRole反填 + 父流程自动下一步
采购主单按明细行自动生成审批子流程自动触发 + SQL 数据源 + 批量发起
主流程暂停,转交专门审批线处理后再回来延续子流程 + 父待办隐藏 + 子流程结束联动
报销前先选多张采购申请单前置导航子流程 + 开始节点SubFlowGuide
并行多个子审批,全部完成后主流程才往下走组件AllSubFlowOverRole+ 节点SpecSubFlow阻塞
同一父流程下多人各发起自己的子流程SFShowCtrl=仅看自己发起的

五、相关代码路径

模块路径
后端子流程模板CCFlow/Components/BP.WF/Template/SFlow/
后端运行逻辑CCFlow/Components/BP.WF/WF/WorkNode.csWorkNodePlus.cs
前端配置实体Vue3/src/WF/Admin/AttrNode/SubFlow/
前端运行组件Vue3/src/WF/WorkOpt/SubFlow.vue
父子流程组件配置Vue3/src/WF/TSClass/FrmSubFlowNode.ts

文档生成依据 CCFlow 代码库当前实现整理。

http://www.zskr.cn/news/1534888.html

相关文章:

  • DLSS Swapper深度解析:智能DLSS版本管理工具的技术架构与实战应用
  • Web 渗透测试课程学习心得
  • 青甘大环线7日亲子研学游攻略|2-8人精致小团,适配老人小孩轻松漫游西北 - 纯玩旅游攻略指南
  • TranslucentTB实战指南:如何让Windows任务栏变透明
  • SketchUp-STL插件开发:从3D打印文件格式支持到跨平台UI框架的完整技术实现
  • ViGEmBus虚拟游戏控制器驱动:解决Windows游戏控制器兼容性问题的完整方案
  • 如何将微信聊天记录永久保存为可搜索的HTML文档:WeChatExporter开源工具详解
  • ImageGlass图像浏览器终极指南:如何免费查看90+种图片格式
  • 【新手入门】完整版 OpenClaw 配置教学 附常见故障解决办法(含安装包)
  • 微信聊天记录导出终极指南:3分钟掌握精准备份技巧
  • 2026视频号视频保存到相册的方法,手机通用实操教程
  • 从“憋标题”到“10分钟搞定”,我用AI批量生成标题的方法
  • 2026主管护师备考避坑!高分考生都在用的刷题APP推荐 - 品牌鉴赏师
  • 揭秘qmcdump:轻松突破QQ音乐加密格式限制的实战指南
  • 最新!国产电导率仪十大品牌揭秘 - 仪表人叶工
  • 卡地亚梵克雅宝首饰分级榜单|2026 哈尔滨品牌首饰回收 S/A 评级,S 级认准添价收黄金奢侈品回收 - 薛定谔的梨花猫
  • 【JAVA毕设源码分享】基于Spring Boot框架的自行车购物商城系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • MonkeyCode代码审查:AI做你的24小时Code Reviewer,代码质量肉眼可见提升
  • 如何免费使用PDown突破百度网盘限速:2024年最新高速下载指南
  • 3大核心功能+5分钟上手:MAA明日方舟助手完整使用指南
  • 3分钟搞定B站会员购抢票:免费开源工具biliTickerBuy终极指南
  • 快速解决Kodi观影无字幕困扰:字幕库插件完整指南
  • 2026张掖本地防雷检测哪家专业?TOP 正规机构榜单 + 防雷装置 + 接地电阻 + SPD 检测 附电话地址 - 中安检测集团
  • Python Turtle不是玩具:可视化执行流与具身编程入门法
  • 7大关键技术解析:如何彻底解决Visual C++运行环境依赖问题
  • 2026杭州西湖卖包指南!迪奥回收价差密码,内行从不外露 - 逸程
  • paperxie 期末结课论文救星!课程论文 AI 智能写作一站式解决期末周写作难题
  • 【JAVA毕设源码分享】基于springboot的高校大学生交友平台(程序+文档+代码讲解+一条龙定制)
  • 2026浙江|石油化工耐高压非标异形件|极端工况适配 - 年度推荐企业名录
  • 2026年安徽省哪所中职学校有酒店管理专业?哪些学校值得报? - 小张zc