版权声明:http://blog.csdn.net/anxpp https://blog.csdn.net/anxpp/article/details/53946420
虽然我们也可以直接编辑XML完成流程的设计,但这稍显麻烦不说,还不直观,所以,这里介绍的是Activiti拖拽式的流程设计工具。
主要有两种工具:官方提供的Activiti Modeler和Eclipse的Activiti designer插件。
1、Activiti BPMN 2.0 designer
还是先说说这款Eclipse的插件吧,毕竟我们开发已经比较依赖Eclipse了,使用这个插件当前更加愉快。
界面是这样的:
安装大家应该都会,这里还是提一下:
- 打开Eclipse选择菜单-->Help-->Install New Software...
- 然后Work With点Add...:
- Name随便写一个;
- Location填:http://activiti.org/designer/update/
OK,接下来就是选择并一步一步安装了。
不过这个方法国内是行不通的(天朝墙,高又高哇),需要科学上网。
文末会给一个zip格式的压缩包,可以直接安装,步骤与上面类似,不过Loaction选择的时候直接找个这个zip压缩包就行了,不过如果不是科学上网,也不一定能安装上。所以文尾还会提供一个已经安装好Activiti Design的并包含jee开发相关插件的Eclipse压缩包。
提示:如果科学上网使用的是Shadowsocks,那么需要配置下Eclipse的代理:
菜单-->Windows-->Preferences-->general-->Network Connections-->Active Provider选择Manual,并将下方各项Host设置为127.0.0.1,Port为1080(Shadowsocks默认,如果有修改就按实际的填就行了)。
扫描二维码关注公众号,回复:
2924716 查看本文章
使用Activiti Designer大大的简化了我们的流程设计工作,比官方的Activiti Modeler更容易,比如我们添加监听器可以直接选择对应的监听器实现就行了,而且就在我们敲代码的IDE上岂不是更爽。
2、Activiti Modeler
Activiti Modeler是基于B/S架构的流程设计器,我们在流程已经部署好后,还可以修改流程实现重新部署,这时候Activiti Modeler就派上用场了,我们可以将其集成到系统中,在浏览器端修改流程后重新部署,这也是很方便的,所以此处不多介绍,系列文章后续会添加Activiti Modeler的集成,到时候会细说。
3、设计流程
上面提到的两个流程设计器使用起来都特别容易,即使是非开发人员简单了解后也能快速上手,所以更好的方式是由业务人员使用以上任一工具设计好最初的流程,然后由开发人员基于代码层面的完善。
这里以《工作流引擎Activiti系列(一)——初识》文中的例子为例,演示流程的设计。
首先新建一个流程文件:
然后就是拖拽式的流程设计了,感觉好像也没啥说的,去拖几个就熟悉了。
先拖一个开始和结束事件:
然后添加一个用户任务,并连接起来:
添加领导审批任务创建监听器:
xml会自动生成对应的代码:
<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="simpleProcess" name="simpleProcess" isExecutable="true">
<extensionElements>
<activiti:executionListener event="end" class="com.anxpp.demo.activiti.simple.listener.SimpleProcessEndListener"></activiti:executionListener>
</extensionElements>
<startEvent id="startevent_simple" name="Start"></startEvent>
<userTask id="usertask1" name="领导审批">
<extensionElements>
<activiti:taskListener event="create" class="com.anxpp.demo.activiti.simple.listener.LeaderCheckListener"></activiti:taskListener>
</extensionElements>
</userTask>
<endEvent id="endevent_simple" name="End"></endEvent>
<sequenceFlow id="flow1" sourceRef="startevent_simple" targetRef="usertask1"></sequenceFlow>
<sequenceFlow id="flow2" sourceRef="usertask1" targetRef="endevent_simple"></sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_myProcess">
<bpmndi:BPMNPlane bpmnElement="myProcess" id="BPMNPlane_myProcess">
<bpmndi:BPMNShape bpmnElement="startevent_simple" id="BPMNShape_startevent_simple">
<omgdc:Bounds height="35.0" width="35.0" x="170.0" y="290.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
<omgdc:Bounds height="55.0" width="105.0" x="290.0" y="280.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent_simple" id="BPMNShape_endevent_simple">
<omgdc:Bounds height="35.0" width="35.0" x="500.0" y="290.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
<omgdi:waypoint x="205.0" y="307.0"></omgdi:waypoint>
<omgdi:waypoint x="290.0" y="307.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
<omgdi:waypoint x="395.0" y="307.0"></omgdi:waypoint>
<omgdi:waypoint x="500.0" y="307.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
可能有些更细粒度的流程设计还是需要手动编辑XML,慢慢就熟了。
上面流程的例子完整源码已经在Github上:https://github.com/anxpp/activitiSimpleDemo.git
如果不想用git,也可以直接下载源码:http://download.csdn.net/detail/anxpp/9725907
activiti designer插件zip安装包:http://download.csdn.net/detail/anxpp/9725902
带activiti designer插件基于JEE的eclipse4.6绿色压缩包:http://download.csdn.net/detail/anxpp/9725904