论坛首页 Java企业应用论坛

工作流设计的一些思考(一)

浏览 5225 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-02-28   最后修改:2012-03-06

流程设计器的设计

1.1    流程的元素

事件、(活动)节点、网关、转移线

事件分开始事件与结束事件。

活动是完成操作的节点,分人工节点和自动节点,节点只能一进一出。活动按实例多少分单/多实例(并发)节点;按是否是子流程分为子流程节点,非子流程节点。

网关分为异或网关、与网关及或网关。

转移线分为条件、普通、默认转移线。条件转移线上可设置表达式进行求真运算,跟异或网关一起构造“多选一”转移。

1.2    流程的路径

流程在没有分叉时,只有一条路径。路径可分叉与汇聚,形成主-从路径关系。分叉属于分叉前的路径,汇聚属于汇聚后的路径。

1.3    流程分叉与汇聚

分叉与汇聚都由专门的网关处理,即活动不支持分叉与汇聚。分叉、汇聚都使用与网关及或网关,根据输入、输出特点很容易区分是分叉还是汇聚。

网关对称原则:有几个分叉就有几个汇聚相对应,这样能确保分叉-汇聚在同一路径上。

由于有网关、路径识别及网关对称性,很容易计算分叉与汇聚关系。

1.4 流程属性

流程应允许创建:

1)流程数据:流程数据用于与业务系统程序交互。流程运行之后,若要绑定业务号,可创建一个业务号变量,再由业务系统传入到该业务号变量。此变量称为流程数据。

2)流程界面:用于定义本流程用到的流程界面,如申请界面,审批界面,查看界面等。每个流程界面有界面编码,界面名称及界面Url,此Url指向业务系统的实际页面。

1.5    流程节点属性

流程应允许创建:

1)流程节点数据:与流程数据相似,类似局部变量与全局变量的关系。

2)操作界面:从流程界面中选择。用于此节点参与人从待办列表中打开并进行业务操作。

3)查看界面:从流程界面中选择。用于此节点参与人从已办列表中打开并进行查看。

4)参与人:参与人是此节点有权限完成任务的人。可以指定固定的角色或人,如财务部主任或张某,李某。还可以用动态设置的方法即表达式,如【申请人】,

【申请部门】的【部门主管】。流程运行时,这些变量的值被确定并得到实际参与人。使用表达式允许不同机构使用同一流程。

5)节点进入之前或之后的动作:如执行一段脚本,或调用某(些)接口。

流程

 

  • 大小: 73.2 KB
  • 大小: 61.6 KB
   发表时间:2012-02-28  
附件中有一张图,能帮助理解
0 请登录后投票
   发表时间:2012-02-28  
流程管理系统是一个开放式、而又集中控制的流程平台。它以统一框架、企业服务总线为支撑,以流程引擎为核心,实现流程的集中定义、流转、监控,主要包括:
1) 流程定义、流程监控及工作项列表,界面均在统一框架应用平台展示。
2) 客户应用程序通过企业服务总线平台上的工作流接口实现流程启动,工作项创建、完成,至流程结束。
3) 流程定义的权限、角色、组织机构通过调用企业服务总线上布署的统一框架提供的相关接口实现。
4)流程数据(包括流程定义)在数据库中持久化,且与业务系统分开。
0 请登录后投票
   发表时间:2012-03-01  
要判断一个流程中是否存在分支和汇聚模型,其实很简单的。。。只需要对流程底层数据结构做一些逻辑判断就OK了。。。。
0 请登录后投票
   发表时间:2012-03-05  
有空我会补充本人对工作流引擎及工作流平台的看法,欢迎大家讨论。
0 请登录后投票
   发表时间:2012-03-06  
这位兄弟,你的这个流程图看上去挺简洁明快。。。不错。。。有空再发点流程图实例吧。。。我们一起研究讨论一下
0 请登录后投票
   发表时间:2012-03-06  
要判断一个流程中是否存在分支和汇聚模型,其实很简单的。。。只需要对流程底层数据结构做一些逻辑判断就OK了。。。
0 请登录后投票
   发表时间:2012-03-06   最后修改:2012-03-06
wx3957156 写道
要判断一个流程中是否存在分支和汇聚模型,其实很简单的。。。只需要对流程底层数据结构做一些逻辑判断就OK了。。。

同意。本部分介绍的是流程设计器,流程元素里使用网关,而不直接使用“分叉”和"聚合"。后者是引擎关心的。
0 请登录后投票
   发表时间:2012-03-06  
这些都是基础的内容,重点和难点在工作流事务方面
0 请登录后投票
   发表时间:2012-03-08  
工作流事务数据与工作流控制流数据之间的互动关系是工作流系统设计的一个难点。。。。不知道有多少公司的突破了这个问题。。。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics