web工作流管理系统开发之二十 动态创建流程多分支节点
2010-05-30 18:59
309 查看
在工作流系统的实际应用中,经常会有根据流程实例的运行,动态的生成N个分支的情况,且每个分支又是一序列流程化的操作,待每个分支运行完成后,再汇集到一起,继续原来的主流程。
例如,当一个单据填写完成后,提交给审核部门,需要根据每张单据的情况,决定提交给几个部门审核,并且每个部门的审核是一系列流程化的操作,操作完成后,各个审核部门再汇集起来。这样就必须在流程实例运行时,根据预先定义好的单线流程,动态的生成多份分支,最后再汇集在一起,流转到主流程。
流程图例:
分支节点---合并节点 之间的操作是一个模板节点,当流程实际运行时,由前面的分配步骤,动态分配需要创建的分支个数。这之间的流程定义为创建分支的模板,每个分支的实际运行轨迹可以根据参数的不同而运行轨迹不尽相同。
实现过程:
每个业务流程在设计完成后,流程实际运行时,会根据设计的流程过程,每启动一个流程就创建出一个流程实例。流程实例id是唯一标识一条流程记录。业务流程,通常是通过业务表+流程实例id 和流程关联起来,当流程实例运行时,执行流程的动作,并填写相关的业务记录,导致流程的步骤转移,流程实例状态得到升迁,流程得到递进。
但当流程需要动态创建分支,动态分支节点后定义各步骤动作等节点会动态的创建出n份,且这n份的节点信息是相同,有相同的节点id和节点名字,在流程引擎中,无法区分当前节点属于那条分支。因此引入动态节点实例ID,此ID能唯一标识每流程实例的每分支路由。
当流程各分支节点运行时,各分支节点的流程运行轨迹应该是不尽相同,因此需要引入流程动态节点实例的参数(变量),通过对这些参数变量赋予不同值,来达到各分支路由的不同运行轨迹。
动态分支节点实例表,和参数表结构;
在流程运行时候,进入动态分支节点之前,需要执行动态分配步骤,来确定此流程实例需要动态创建几个分支。
创建动态分支,设置参数表单
相关链接;
web工作流管理系统开发之一 工作流概念
web工作流管理系统开发之二 工作流引擎
web工作流管理系统开发之三 可视化流程设计器
web工作流管理系统开发之四 自定义表单
web工作流管理系统开发之五 开源osworkflow之用户系统改造
web工作流管理系统开发之六 表单权限与流程的权限控制
web工作流管理系统开发之八 开源osworkflow之任务管理
web工作流管理系统开发之十 数据库连接及事务设定
web工作流管理系统开发之十一 流程数据与业务数据的交互
web工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件
web工作流管理系统开发之十三 流程与电子表单集成之事件实现篇
web工作流管理系统开发之十四 流程设计器属性页面之实现篇
web工作流管理系统开发之十五 流程变量与表达式
web工作流管理系统开发之十六 主子流程参数传递的实现
例如,当一个单据填写完成后,提交给审核部门,需要根据每张单据的情况,决定提交给几个部门审核,并且每个部门的审核是一系列流程化的操作,操作完成后,各个审核部门再汇集起来。这样就必须在流程实例运行时,根据预先定义好的单线流程,动态的生成多份分支,最后再汇集在一起,流转到主流程。
流程图例:
分支节点---合并节点 之间的操作是一个模板节点,当流程实际运行时,由前面的分配步骤,动态分配需要创建的分支个数。这之间的流程定义为创建分支的模板,每个分支的实际运行轨迹可以根据参数的不同而运行轨迹不尽相同。
实现过程:
每个业务流程在设计完成后,流程实际运行时,会根据设计的流程过程,每启动一个流程就创建出一个流程实例。流程实例id是唯一标识一条流程记录。业务流程,通常是通过业务表+流程实例id 和流程关联起来,当流程实例运行时,执行流程的动作,并填写相关的业务记录,导致流程的步骤转移,流程实例状态得到升迁,流程得到递进。
但当流程需要动态创建分支,动态分支节点后定义各步骤动作等节点会动态的创建出n份,且这n份的节点信息是相同,有相同的节点id和节点名字,在流程引擎中,无法区分当前节点属于那条分支。因此引入动态节点实例ID,此ID能唯一标识每流程实例的每分支路由。
当流程各分支节点运行时,各分支节点的流程运行轨迹应该是不尽相同,因此需要引入流程动态节点实例的参数(变量),通过对这些参数变量赋予不同值,来达到各分支路由的不同运行轨迹。
动态分支节点实例表,和参数表结构;
在流程运行时候,进入动态分支节点之前,需要执行动态分配步骤,来确定此流程实例需要动态创建几个分支。
创建动态分支,设置参数表单
相关链接;
web工作流管理系统开发之一 工作流概念
web工作流管理系统开发之二 工作流引擎
web工作流管理系统开发之三 可视化流程设计器
web工作流管理系统开发之四 自定义表单
web工作流管理系统开发之五 开源osworkflow之用户系统改造
web工作流管理系统开发之六 表单权限与流程的权限控制
web工作流管理系统开发之八 开源osworkflow之任务管理
web工作流管理系统开发之十 数据库连接及事务设定
web工作流管理系统开发之十一 流程数据与业务数据的交互
web工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件
web工作流管理系统开发之十三 流程与电子表单集成之事件实现篇
web工作流管理系统开发之十四 流程设计器属性页面之实现篇
web工作流管理系统开发之十五 流程变量与表达式
web工作流管理系统开发之十六 主子流程参数传递的实现
相关文章推荐
- git创建分支,提交分支,删除分支的开发流程
- 【代码篇】JBPM4.4开发流程节点(动态代理实现流程管理业务)
- web工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件
- ThinkPHP创建应用的一般开发流程及实例
- 开发中遇到的问题-动态创建按钮并且添加带有参数的点击事件
- git- 利用分支进行开发的工作流程
- IOS开发创建开发证书及发布App应用(一)——流程说明
- Angular开发关键页面流程之创建模块
- 第31天:动态生成节点-京东轮播图创建
- jquery和JavaScript动态创建节点
- iOS【git分支开发,分支(feature)同步主干(master)代码,以及最终分支合并到主干的操作流程】
- jstree动态创建节点
- 【iOS开发必收藏】详解iOS应用程序内使用IAP/StoreKit付费、沙盒(SandBox)测试、创建测试账号流程!【2012-12-11日更新获取"产品付费数量等于0的问题"】
- 创建虚拟机生成虚拟机全程日志打印输出流程详解(openstack开发必备)
- linux驱动开发之自动创建设备节点
- 国内首部基于JBPM5.4实战流程引擎开发(动态表单、模板引擎、公文管理系统)
- jQuery中动态创建元素节点无法触发事件
- 通过动态代理(Proxy)实现的数据库连接池的创建连接与归还链接的操作的简单的实现流程
- Javascript动态创建 style 节点
- linux驱动开发--字符设备:创建一组设备节点