webreport

博客园 首页 新随笔 联系 订阅 管理
      在工作流系统的实际应用中,经常会有根据流程实例的运行,动态的生成N个分支的情况,且每个分支又是一序列流程化的操作,待每个分支运行完成后,再汇集到一起,继续原来的主流程。

 

例如,当一个单据填写完成后,提交给审核部门,需要根据每张单据的情况,决定提交给几个部门审核,并且每个部门的审核是一系列流程化的操作,操作完成后,各个审核部门再汇集起来。这样就必须在流程实例运行时,根据预先定义好的单线流程,动态的生成多份分支,最后再汇集在一起,流转到主流程。

 

流程图例:





 

 
 
 

分支节点---合并节点 之间的操作是一个模板节点,当流程实际运行时,由前面的分配步骤,动态分配需要创建的分支个数。这之间的流程定义为创建分支的模板,每个分支的实际运行轨迹可以根据参数的不同而运行轨迹不尽相同。

 

实现过程:

每个业务流程在设计完成后,流程实际运行时,会根据设计的流程过程,每启动一个流程就创建出一个流程实例。流程实例id是唯一标识一条流程记录。业务流程,通常是通过业务表+流程实例id 和流程关联起来,当流程实例运行时,执行流程的动作,并填写相关的业务记录,导致流程的步骤转移,流程实例状态得到升迁,流程得到递进。

 

但当流程需要动态创建分支,动态分支节点后定义各步骤动作等节点会动态的创建出n份,且这n份的节点信息是相同,有相同的节点id和节点名字,在流程引擎中,无法区分当前节点属于那条分支。因此引入动态节点实例ID,此ID能唯一标识每流程实例的每分支路由。

 

当流程各分支节点运行时,各分支节点的流程运行轨迹应该是不尽相同,因此需要引入流程动态节点实例的参数(变量),通过对这些参数变量赋予不同值,来达到各分支路由的不同运行轨迹。

动态分支节点实例表,和参数表结构;

 



 

在流程运行时候,进入动态分支节点之前,需要执行动态分配步骤,来确定此流程实例需要动态创建几个分支。

创建动态分支,设置参数表单



 

 

 

 

相关链接;

web工作流管理系统开发之一 工作流概念

web工作流管理系统开发之二 工作流引擎

web工作流管理系统开发之三 可视化流程设计器

web工作流管理系统开发之四 自定义表单

web工作流管理系统开发之五 开源osworkflow之用户系统改造

web工作流管理系统开发之六 表单权限与流程的权限控制

web工作流管理系统开发之八 开源osworkflow之任务管理

 

web工作流管理系统开发之十 数据库连接及事务设定

web工作流管理系统开发之十一 流程数据与业务数据的交互

web工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件

web工作流管理系统开发之十三 流程与电子表单集成之事件实现篇

web工作流管理系统开发之十四 流程设计器属性页面之实现篇  

web工作流管理系统开发之十五 流程变量与表达式

web工作流管理系统开发之十六 主子流程参数传递的实现

 

 

posted on 2010-05-30 18:59  web报表  阅读(6997)  评论(3编辑  收藏  举报