`
timeson
  • 浏览: 144363 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

工作流_概述(A4)

阅读更多

    前面把流程的概念描绘了一下,发现好像漏了几个不重要但必要的东西,那我们也朝花夕拾一下,查漏补缺。人工活动应该提供2种方式(自定义web界面,表单方式),与参与者交互。其中与人交互是最简单的,因为一个人工活动对应了一个员工,1:1的关系。也许稍微变得复杂一些,有个人工活动需要发给某个部门所有员工;也许是发给某个角色的所有成员,但只要其中一个人审批,流程就可以继续了。
  1. 这里我们就需要定义参与者的类型,当然了,wfmc已经代劳了,帮我们设定了6种,目前系统实现的是4种,实现的分别是人、系统、组织、角色;没有实现的是资源和资源集。
  2.  以及参与者分配工作的方式:是先来先分配?还是全部分派?按照与时俱进的目标,来一个任务最轻分配又如何?


     前面说的自动活动可以有java class,shell,批处理来完成,最重要的是java class,在调用自动工具前,必须先说明java class,比如class全称了,要调用的function的姓名了,以及形参的定义了。形参定义好类型后,需要有个地方说明形参数据的来源,来源可以来自web session,来自url地址的参数定义,还可以来自数据库里面指定的纪录。
    
定义了自动活动的说明,人工活动当然也不能免俗,也需要找个地方来定义他的格式。在web下设计人工交互的界面,无非是2种方式:
  1. web界面的预定义:界面已经设计好了,比如已经用JSP描绘了你的界面,该页面中也已经测试通过了用户的业务逻辑。这种方式适合界面元素固定,或者界面元素极其复杂,按照流行说法就是一个OPOA(one page one application)的设计思路。
  2.  Web表单: WebForm



在这里讲了很多概念,生产出了很多零件,我得找个框装起来。这个框就是Package,也就是说在package里面拥有参与者,活动说明,过程说明;在过程里面拥有活动,相关数据,活动路径以及条件。

那综合起来,我们的package就包括了如下物件,包括:
1、 package的说明,包括package版本控制
2、 参与者描述:用于活动中的参与者指定
3、 自动工具说明:允许是java,脚本,批处理。包括java类名,方法,以及可以传入的参数
4、 人工活动说明:允许是自定义web界面和人工表单方式
5、 工作流过程:这是最重要的部分。可以包括多个过程,建议采用如下的规则,把业务相关的过程,自过程组合在一起。每个package里面只包含一个main类型过程,可以多个n个子过程,main过程允许调用本package里面的子过程。一个过程包括:
a) 过程说明
b) 过程控制(可查看,可启动,可管控,完成后发通知)
c) 相关数据,如果需要条件判定的时候,则需要设定相关数据
d) 活动,活动有start,end,human,auto,route方式。其中后面3个活动还有明细类型
e) 活动可能还有应用数据
f) 变迁,用来指向前后前驱,后续活动的位置
g) 条件判定,3种方式,前台输入得到,java判定返回值,script判定返回值。

下面的示意图是流程定义文件的xml scheme。我们在业务过程建模的时候,只要生成的xml文件符合该scheme,那就能被引擎所识别,并且执行。



图1.10、Xml scheme定义

  • 大小: 34.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics