Activiti实战. 3.3基于Eclipse插件的流程设计器Activiti Designer

万俟渝
2023-12-01

3.3基于Eclipse插件的流程设计器Activiti Designer

在客户的需求确定之后,由业务人员利用Activiti Modeler设计完业务流程,此时可以将设计结果导出为bpmn20.xml文件,之后由开发人员继续基于设计进一步添加涉及技术细节的配置,例如排他分支的条件、Java服务、任务监听器等。

3.3.1Activiti Designer特点

Java程序员每天工作使用的主要工具是IDE,而应用最广泛的IDE当然是Eclipse,任何开发人员都可以很容易地开发Eclipse的插件。Activiti目前提供了Eclipse的Activiti Designer插件,以后还会陆续推出其他IDE的插件,例如NetBeans、IntelliJ IDEA等。

Activiti Designer一般随着Activiti引擎一起发布,在Activiti引擎的新版本添加了对BPMN 2.0规范的支持和实现之后,Activiti Designer也同步更新了支持新规范的可视化流程设计。

相对于Activiti Modeler严格以BPMN 2.0规范为基础实现可视化设计,Activiti Designer提供了Activiti自行扩展的十几种配置(以后会陆续介绍),例如使用activiti:assginee简化UserTask的任务办理人属性,以及使用activiti:candidateGroup简化任务候选组等。

TDD(Test Driven Development,测试驱动开发)被广泛用于日常开发中。Activiti Designer当然也为TDD提供了良好的支持:开发人员可以基于流程定义文件(foo.bpmn)快速生成测试用例,在设计流程的时候把存在“坏味道”的业务流程停止。

3.3.2安装Activiti Designer

本书使用的Eclipse版本为4.2(代号Juno),Activiti Designer支持3.7(代号Indigo)以后的Eclipse版本。

建议读者采用Site方式安装Activiti Designer:单击菜单“Help”->“Install New Software”,打开如图3-24所示的对话框。然后单击“Add”按钮,在打开的对话框中填写以下内容,接着单击“OK”按钮确认添加Repository。

Name: Activiti BPMN 2.0 designer

Location: http://activiti.org/designer/update/

 

图3-24用Site方式添加Activiti Designer的Repository

3.3.3设计流程

1. 新建Activiti项目

单击“File”→“New”,选择图3-25中的“Activiti Project”项目,单击“Next”进行一些设置之后就可以创建一个Activiti项目。

 

图3-25新建Activiti Project向导

创建完项目后的目录结构如图3-26所示,其中展示的是一个名为“bpmn20-example”的项目,熟悉Maven的读者很快就看出这是Maven的标准目录结构。建议不熟悉Maven的读者参考Maven的文档了解相关知识。

新建的Activiti项目会自动在src/main/resources目录下创建diagrams包来存放新建的流程资源文件。在实际应用中往往习惯使用公司或组织域名倒序创建目录,如图3-26所示。

2. 新建请假流程

在“src/main/resources/me/kafeitu/activiti”目录上右击,选择“New”→“Other…”,打开如图片3-27所示的新建向导对话框,选择“Activiti Diagram”,单击“Next”按钮弹出如图3-28所示的对话框,其中默认的扩展名为.bpmn,也是众多设计器默认的扩展名。

在Activiti Designer 5.8及之前的版本中,在新建流程定义时默认的扩展名为.activiti,而不是现在看到的.bpmn;当打开foo.activiti文件设计好流程并保存时会自动在同一目录下生成同名的foo.bpmn20.xml和foo.png。

 

图3-27新建Activiti Diagram向导—选择新建类型

 

图3-28新建Activiti Diagram向导—设置文件名

单击图3-28中的“Next”按钮之后弹出如图3-29所示的选择模板对话框。为了方便快速创建流程,Activiti Designer内置了一些流程定义模板供开发人员选择。在创建流程之后开发人员可以根据自己的需求稍微调整即可。

 

图3-29新建Activiti Diagram向导—选择模板

在安装Activiti Designer之后,在任何目录都可以通过“New”创建流程定义,前面关于创建Activiti Project的介绍仅仅是为了向读者说明创建过程。

3. 设计请假流程

在新建流程之后要先设置流程属性,例如Id、Name等,设置请假流程的配置信息如图3-30所示。

下面介绍配置界面中的几个属性。

Id:流程的唯一标识,在2.4.2节中启动流程时指定的“leavehello”即此属性,建议使用纯英文标识。

Name:流程的名称,可以是任意字符。

Namespace:命名空间,一般使用公司名或组织域名+项目名称,可以更加细化到每个系统的模块,这样读者在实际项目中可以用此属性来归类流程,例如com/company/project/module,其中com/company是公司域名的倒序,project表示项目名称,module表示一个具体的模块;还可以使用另外一种描述方式,即通过http://www.compnay.com/project/module达到相同的目的。

Document:针对当前流程功能的简短文字描述。

 

图3-30设置流程属性

和Activiti Modeler设计流程的方式一样,从开始事件(Start Even)开始,在设计区域的右边栏中找到“Event”组的“StartEvent”,用鼠标将其拖动到左侧的空白区域,如图3-31所示。

图3-31中“Properties”下的Id、Name的含义和图3-30中的类似,只不过这里表示一个开始事件的属性。

在图3-31所示的工作区中,圆形图标即为开始事件,将鼠标移动到开始事件上之后和在使用Activiti Modeler时一样会浮动显示快捷方式菜单,例如可以通过单击左下的第二个图标创建一个任务(Task),如图3-32所示。

 

利用快捷菜单可以快速创建各种模型,当然也可以直接从右边栏的模型仓库中选择“Task”拖动到工作区。单击“Create user task”即可在开始事件的右边生成一个User Task并自动用顺序流(SequenceFlow)箭头连接,如图3-33所示。

 

图3-33通过快捷菜单创建User Task

在创建“领导审批”节点后单击刚刚新建的User Task就可以设置属性了,在图3-33中将Id、Name属性设置为“deptLeaderAudit”和“领导审批”,前者是Task在当前这个请假流程中的一个唯一标识。

设计“领导审批”任务在使用Activiti Modeler时已经结束了,在使用Activiti Designer时需要进一步设置任务的属性,例如任务的分配人。在图3-34中设置“领导审批”节点的分配人为“leader”。

 

图3-34设置User Task的任务分配人

读者可以自行依次完成剩余两个User Task的创建与设置,如图3-35所示。对于在设计过程中不容易理解的属性在以后的章节会陆续讲到,通过本章只要学会如何使用Activiti Designer设计简单流程即可。

 

图3-35使用Activiti Designer设计完成的请假流程

要在设计完流程后查看XML格式的文件内容,需要右击foo.bpmn文件选择“Open With”→“XML Editor”;要改用设计器打开要查看的文件,需要右击foo.bpmn文件选择“Open With”→“Activiti Digram Editor”。如图3-36所示,图中上半部分使用“Activiti Digram Editor”打开,下半部分使用“XML Editor”打开。

 类似资料: