图3.1工作流流程定义工具的基本框图
3.2 工作流流程定义工具中的基本类
工作流流程定义工具的新建和修改流程功能,主要基于javasript在客户端完成,当建模人员完成建模后保存数据,则一方面将生成流程文件,该模型文件基于jPDL规范,以XML文件形式储存,实现上是由浏览器将数据提交到服务器后使用struts处理完成。
本系统流程定义语言DL的组成元素主要有process-definition(流程定义)、普通节点common node、node(自动节点)、start-state(开始状态)、end-state(结束节点)、state(状态)、task-node (任务节点)、fork(分支)、join(联合)、decision(决策)、transition(转换)、variable(变量)、task(任务)、assignment(委派)等。在JBPM工作流系统中,流程设计中会涉及到诸多的类,本文所设计的流程定义子系统所涉及的主要的类有以下一些:
jPDL.toolBar: 是左侧表示元素图标的工具栏。
jPDL.toolBar.barElement: 表示toolBar中每个元素菜单,负责处理鼠标对本元素的点击、移动以及在画板中新元素的生成。
jPDL.Model: 画板类,用于管理流程图中所有的元素。
jPDL.Shape: 图形的基类。
jPDL.Rect: 派生于jdpl.Shape, 是临时元素对应的显示图形(矩形)。
jPDL.TempRect: 派生于jPDL.Rect, 临时元素节点。
jPDL.line,DL.Edge, jPDL.TempEdge,构建出箭头和连线时的临时箭头。
jPDL.RoundRect: 派生于jPDL.Shape, 是元素对应的显示图形,圆角矩形。
jPDL.Node: 派生于jPDL.RoundRect, 其中包含了记录元素与周围元素关系的向量数组信息。
接下来的实际的元素类都派生于jPDL.Node类。
jPDL.ele.start: start元素类
jPDL.ele.end: end元素类
jPDL.ele.fork: fork 元素类
jPDL.ele.join: join元素类
jPDL.ele.decision: decision元素类
jPDL.ele.task: task 元素类
jPDL.ele.cancel: cancel 元素类
jPDL.ele.error: error 元素类
图3.2 节点说明
3.2.1 start-state(开始状态)
start-state是我们整个流程的开始节点,所有的流程实例从这里开始。
名称 类型 数量 描述
Name 属性 可选的 节点的名称。
Task 元素 [0..1] 起始一个流程实例的任务,或者用来捕获流程发起者
Event 元素 [0..*] 支持的事件类型:{node-leave}。
transition 元素 [0..*] 离开转换,每个离开节点的转换必须有一个不同的名称。
exception-handler 元素 [0..*] 一个异常处理器列表,用于这个流程节点中的委托类所抛出的所有异常。
实现代码如下
jPDL.ele.start=jPDL.extend(jPDL.Node,{
content:{Name:"input",Description:"textarea"},
3.2.2 end-state(结束节点)
对于每一个流程定义都会有一个结束节点,与开始节点对应
名称 类型 数量 描述
Name 属性 必需的 结束状态的名称。 面向jPDL的工作流流程定义工具设计(6):http://www.youerw.com/jisuanji/lunwen_7561.html