作者:Rock

出处:http://www.ecmkit.com/zh-hans/2012/03/21/activiti-workflow-hell

Activiti Workflow HelloWorld 示例与测试环境搭建

作者 Rock 发表于 星期三,
03/21/2012 - 12:55

我们都知道Alfresco 4.0以后采用了Activiti BPMN2.0 引擎(关于Activiti, 是一个open source 项目。 Alfresco从jBPM公司挖出了jBPM的创建人和若干核心人员,意欲创建一个基于Apache License的,并且遵循BPMN 2.0工作流标准的开源项目,看来Alfresco真是煞费苦心啊。不过Alfresco 4.0 中jBPM是仍然存在的,也就是说两套工作流引擎并存)。我们这里介绍一下怎样在eclipse中设计BPMN
2.0工作流定义的基本步骤。

1. Activiti问我们提供了Activiti BPMN 2.0, 这个工具是基于Eclipse所开发的工具,安装十分方便。在安装Activiti之前,我们要首先安装Maven Eclipse插件。

点击Help -> Install New Software,输入以下站点信息:

选中Maven进行安装。

2. 下一步安装Activiti,点击Help -> Install New Software,输入以下站点信息:

Name: Activiti BPMN 2.0 designer

Locationhttp://activiti.org/designer/update/

点击next,finish进行安装。

3. 安装完成后,我们就可以建立Activiti项目了。点击New-> Project… -> Activiti -> Activiti Project

输入项目的名称,点击Finish, 此时Eclipse会打开Activiti View,并生成如下项目:

4. 现在我们开始创建工作流。右键点击项目根目录,选择new -> others,选择Activiti -> Activiti Diagram

接下来输入项目名称,这里我们输入HellowWorld.activiti(看到HelloWorld是不是倍感亲切啊:))

点击Finish,最后Eclipse会生成一个新的HelloWorld.activit文件,并用Activiti Designer打开这个新生成的文件。如下图所示:

我们可以看到,左上侧最大的区域为设计区,用来放置我们的工作流元素,右上侧为工具区,Activiti提供了很多out of box的工作流元素,可以供我们搭建工作流。下方区域为配置区,当点击工作流中的某一个元素时,相应的属性面板会显示该元素的可配置属性。

5. 最后我们来搭建一个非常简单的工作流,仅有一个start event, 一个user task及一个end event。这里我不打算介绍太多BPMN 2.0,仅给大家一个基本的步骤。

如下图所示,拖动右侧红色框框所表示的1, 2, 3, 组成如下工作流

选择右侧最上方的”select”元素,再点击User Task元素,下方弹出属性面板。在属性面板上点击左侧的Main Config,然后Performer Type选择”Assignee”,Expression输入”kermit”。解释一下这个步骤的意思,这里我们配置该任务的执行者是某个用户,这个用户的名字是”kermit”。后面我们会用这个用户登录我们的测试环境。

点击保存,我们可以看到Activiti会自动生成该activit文件所对应的HelloWorld.bpmn20.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="HelloWorld" name="HelloWorld">

<documentation>Place documentation for the 'HelloWorld' process here.</documentation>

<startEvent id="startevent1" name="Start"></startEvent>

<userTask id="usertask1" name="User Task" activiti:assignee="kermit"></userTask>

<endEvent id="endevent1" name="End"></endEvent>

<sequenceFlow id="flow1" name="" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow>

<sequenceFlow id="flow2" name="" sourceRef="usertask1" targetRef="endevent1"></sequenceFlow>

</process>

<bpmndi:BPMNDiagram id="BPMNDiagram_HelloWorld">

<bpmndi:BPMNPlane bpmnElement="HelloWorld" id="BPMNPlane_HelloWorld">

<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">

<omgdc:Bounds height="35" width="35" x="80" y="200"></omgdc:Bounds>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">

<omgdc:Bounds height="55" width="105" x="190" y="190"></omgdc:Bounds>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">

<omgdc:Bounds height="35" width="35" x="400" y="200"></omgdc:Bounds>

</bpmndi:BPMNShape>

<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">

<omgdi:waypoint x="115" y="217"></omgdi:waypoint>

<omgdi:waypoint x="190" y="217"></omgdi:waypoint>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">

<omgdi:waypoint x="295" y="217"></omgdi:waypoint>

<omgdi:waypoint x="400" y="217"></omgdi:waypoint>

</bpmndi:BPMNEdge>

</bpmndi:BPMNPlane>

</bpmndi:BPMNDiagram>

</definitions>

这里要提出的一点就是,由于Activiti Designer目前仍在研发,所以存在不少缺点。比如如果同时打开activiti文件和对应的bpmn20.xml文件,在对bpmn20.xml文件做修改后进行保存,eclipse的反应会很慢, 所以尽量关闭activiti文件。反过来如果保存activit文件,designer会覆盖bpmn20.xml,其覆盖结果可能会把你手都配置的bpmn20.xml打乱。我个人推荐用designer进行基本布局,然后保存生成bpmn20.xml文件,再手动去修改bpmn20.xml文件。最后在保存bpmn20.xml文件之前,删除原先的activiti文件及png文件,这样designer会根据bpmn20.xml文件重新生成这两个文件。

6. 搭建测试环境。Activiti为我们提供了一个out of box的测试环境。首先去activiti的官网上下载activiti-5.9.zip 文件。

确保你的机器上安装的JRE和ANT,并配置后JAVA_HOME和ANT_HOME。

解压zip文件到任意目录,这里我们用ACTIVITI_HOME代表解压目录。打开命令行窗口,跳转到ACTIVITI_HOME/setup目录,并输入ant demo.start命令,整个测试环境会自动搭建起来,我们需要做的就是喝茶,看着屏幕。

这里注意,第一次运行时,ant会执行很多命令,其中包括:

*安装H2数据库

*下载并安装tomcat

补充一点,如果你已经有现成的tomcat, 可以自己手动修改下build文件,这样可以避免重复下载,节约时间。如果懒得修改也可以,就让ant帮你把一切搞定。修改步骤如下:

与ACTIVITI_HOME同级目录建立文件夹” downloads”,如图:

拷贝你的tomcat压缩文件到此文件夹



修改ACTIVITI_HOME/ setup/build.properties文件:

tomcat.version=6.0.35

注意这里的版本号要与你的tomcat压缩文件一致。

好了,接下来我们要做的就是启动ant任务了。打开cmd或者terminal窗口,跳转到ACTIVITI_HOME/setup目录下,输入

ant demo.start

接下来就是等待。取决于你是否修改了tomcat的下载,修改的话只要1分钟不到,就会弹出浏览器,并显示系统登录页面:

这里我们用id: kermit, passwd: Kermit(这个账号是administrator)进行登录。登录后画面如下:

7. 剩下最后一步就是部署我们刚刚创建的工作流了。点击顶部的Manage,再点击Deployments -> Upload new

在弹出的文件选择对话框中选择我们上面创建的HelloWorld.bpmn20.xml文件, 部署结果如下:

部署成功了,很开心。最后我们要做的就是启动这个HelloWorld,看看我们的劳动成果。当然这个懒惰的工作流什么也没做:(。点击顶部的Process,在左侧选择我们的HelloWorld工作流,再点击右上方的Start process:

这时候我们会发现画面自动切换到Tasks页面,并且在左上方的Inbox标题框上多了一个”1”,意思是多了一个新任务

这里唯一能做的事情就是把这个任务指派给其它用户,或者点击Complete task以完成该任务。

好了,整个过程到这里就结束了,大家可以试试看。

TAGS: 

Activiti Workflow HelloWorld 示例与测试环境搭建的更多相关文章

  1. Linux测试环境搭建的学习建议

    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux测试环境搭建的一些建议. 一.Linux测试环境搭建从基 ...

  2. 总结Selenium自动化测试方法(二)测试环境搭建

    (接上期内容) 二.测试环境搭建 1.安装python 现在python3.0比python2.0多了一些改进的功能(详见http://zhidao.baidu.com/link?url=3sT1g7 ...

  3. https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    一:什么是https SSL(Security   Socket   Layer)全称是加密套接字协议层,它位于HTTP协议层和TCP协议层之间,用于建立用户与服务器之间的加密通信,确保所传递信息的安 ...

  4. 【转】https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题

    正需要这个,写的很好,就转过来了 转自: http://www.cnblogs.com/naniannayue/ 一:什么是https SSL(Security   Socket   Layer)全称 ...

  5. 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结

    Appium 1.6.3 在Xcode 8 (真机)测试环境搭建经验总结 关于 Appium 1.6.3 在Xcode 8, 1真机上环境搭建问题更多,写此文章,供大家参考,让大家少走弯路. 在开始i ...

  6. 【转1】Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结

    Appium 1.6.3 在Xcode 8, iOS 10.2(模拟器)测试环境搭建 经验总结 关于 Appium 1.6.3 在Xcode 8, 10.2 的iOS模拟器上的问题很多,本人也差点放弃 ...

  7. Android测试环境搭建

    Android测试环境搭建 一.操作系统 使用Win7_64位操作系统.(可以用其他的系统,下面都是针对Win7 64位进行操作) 二.安装JDK 运行jdk-6u45-windows-x64.exe ...

  8. USDT(omniCore)测试环境搭建

    一.测试环境搭建. 注:由于window版本的omni出现同步不了的问题,推荐使用linux系统进行usdt测试链的搭建. 1.下载omnicore: wget https://bintray.com ...

  9. igmp组播测试环境搭建

    2.4G无线组播测试环境搭建: (1)组播源: VLC 或者 pixstream (2)无线: 2.4G AP (3)客户端PC: VLC播放器 有线直连 无线2.4G PC(组播源pixstream ...

随机推荐

  1. 解决time命令输出信息的重定向问题

    解决time命令输出信息的重定向问题 time命令的输出信息是打印在标准错误输出上的, 我们通过一个简单的尝试来验证一下. [root@web186 root]# time find . -name ...

  2. 洛谷P1739 表达式括号匹配

    题目描述 假设一个表达式有英文字母(小写).运算符(+,-,*,/)和左右小(圆)括号构成,以"@"作为表达式的结束符.请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返 ...

  3. hdu 4826

    hdu 4826 题意 度度熊是一只喜欢探险的熊,一次偶然落进了一个 $ m * n $ 矩阵的迷宫,该迷宫只能从矩阵左上角第一个方格开始走,只有走到右上角的第一个格子才算走出迷宫,每一次只能走一格, ...

  4. jenkins 打包 springboot

    遇到的坑 jdk maven  可以自己配置 也可以让jenkins生成 jenkins创建的项目打的包在  /var/lib/jenkins/jobs/ 需要手动去下载pom中的jar  吧pom复 ...

  5. XML基本语法

    本节要点: 了解XML的文档声明 了解XML的元素.命名规则.属性.元素内容.处理指令等概念 1   XML文档声明 表示该文档是一个XML文档,以及遵循哪个XML版本的规范. 规范:<?xml ...

  6. R语言的帮助使用和图形功能简单介绍

    R语言的帮助使用和图形功能简单介绍 R语言帮助,在Windows桌面下,有很多种.最长使用的是在命令行下help() > help.start() 会在浏览器中,打开帮助的主页 watermar ...

  7. 用 query 方法 获得xml 节点的值

    DECLARE @result xml SET @result='<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelo ...

  8. poj 3259 Wormholes 【SPFA&amp;&amp;推断负环】

    Wormholes Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 36852   Accepted: 13502 Descr ...

  9. 《Java虚拟机原理图解》 1.2.3、Class文件里的常量池具体解释(下)

    NO9.类中引用到的field字段在常量池中是如何描写叙述的?(CONSTANT_Fieldref_info, CONSTANT_Name_Type_info) 一般而言.我们在定义类的过程中会定义一 ...

  10. bzoj1786: [Ahoi2008]Pair 配对&&1831: [AHOI2008]逆序对

    一个自以为很对的东西,我们往-1放的数肯定是不增的. 然后就预处理一下,假如i这个位置放j会多多少逆序对. DP一下,我的复杂度应该是O(n*m^2)的,然而你随便搞都能省掉一个m吧,我算了算好像可以 ...