疯狂Activiti6连载(2)下载和运行Activiti

  本文节选自《疯狂工作流讲义(第2版)》

京东购买地址:https://item.jd.com/12246565.html

工作流Activiti6电子书http://blog.****.net/boxiong86/article/details/78488562

工作流Activiti6教学视频http://blog.****.net/boxiong86/article/details/78608585

安装与运行Activiti

要点

    安装JDKMySQL

    安装Eclipse以及Activiti插件

    运行官方的Activiti例子

Activiti的第一个正式版本发布于2010121日,经过年的发展,Activiti已经成为一个较为成熟的工作流引擎,作为一个开源的工作流引擎,它在工作流领域吸引了众多开发者的目光在当前的工作流框架角逐中,慢慢成为众多企业的首选2017526日,Activiti迎来全新篇章:6.0版本正式发布。本书将以6.0版本为基础,讲解基于Activiti的工作流应用开发

本章将介绍Activiti的安装与运行、Activiti开发环境的搭建等内容,本书除最后一章的项目案例外,其他所有的案例本章的开发环境为基础。搭建Activiti的开发环境,需要安装JDKEclipseMySQL等软件除此之外,还会编写第一个Activiti应用,让大家Activiti有一个初步的了解

注:本书全部的案例均在Windows7下开发和运行。

下载运行Activiti

如果仅仅只是运行Activiti,看下工作流的例子,可以只下载JDKTomcatActivitiActiviti的开发包中,已经含有Activitiweb应用例子。本书使用的Tomcat版本为7.0.42,可以到以下地址下载该版本的Tomcat

http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.42/bin/apache-tomcat-7.0.42.zip

本书所使用的Tomcat是非安装版本,下载后解压即可使用,在运行Tomcat需要先安装JDK本书全部需要使用浏览器的程序,均使用Google Chrome浏览器,笔者也建议读者使用该浏览器。

注意:已有JDKMySQL环境的,可跳过相应章节。

下载和安装JDK

Activiti6.0要求在JDK7以上版本运行,本书所使用的JDK832位),大家可以到以下网址下载JDK

http://www.oracle.com/technetwork/java/javase/downloads/index.html

选择合适的版本进行下载后即可进行安装,Win7下,默认的安装目录是C:\Program Files (x86)\Java\jdk1.8.0_131,安装完成后,需要配置环境变量,新建JAVA_HOME变量,值为JDK的安装目录,如图2-1所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-1 JAVA_HOME环境变量

添加了JAVA_HOME环境变量后,修改系统的Path变量,加入“%JAVA_HOME%\bin”,如图2-2所示。

疯狂Activiti6连载(2)下载和运行Activiti

图2-2 Path环境变量

为了验证JDK是否成功安装,打开系统命令行,输入“java -version”可看到JDK的版本信息,笔者安装的JDK信息如图2-3所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-3 JDK版本信息

看到图2-3信息,即表示JDK成功安装。如果大家的机器需要不同版本的JDK,可以为JAVA_HOME设置不同值来实现切换。

下载和安装MySQL

MySQL作为市面上关系型数据库的佼佼者,一直受到各大企业及开发人员的青睐,笔者之前就职的公司一直使用MySQL因此本书选用MySQLActivit的数据库。目前MySQL的版本发展到5.7,由于数据库并不是本书的重点,因此笔者选用了较为成熟的5.6版本64位),大家可到以下网址下载5.6版本的MySQL数据库:

https://dev.mysql.com/downloads/installer/5.6.html

下载并安装了MySQL数据库后,将MySQLbin目录添加到环境变量中,以便可以在命令行中使用MySQL命令

疯狂Activiti6连载(2)下载和运行Activiti

2-4添加系统变量

修改系统变量的Path属性,添加“%MYSQL_HOME%\bin”,如图2-5所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-5修改Path变量

完成以后的步骤后,打开命令行,输mysql -V”,可以看到输出如图2-6所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-6查看MySQL安装

关于MySQL数据库的客户端工具,本书使用的是Navicat,读者也可以使用其他工具,这些工具目的是为了更加方便操作MySQL数据库,大家可根据个人习惯来选用。本书的开发环境为Windows7,安装完MySQL5.6后,笔者建议将MySQL配置成区分大小写(默认不区分),修改MySQL的配置文件my.ini(如果在Windows7下安装MySQL,则修改C:\ProgramData\MySQL\MySQL Server 5.6\my.ini),加入“lower_case_table_names = 0”配置,重启MySQL服务即可。

下载和安装Activiti

安装了JDKMySQL后,现在可以下载ActivitiActiviti的主页为:http://www.activiti.org/,本书使用的Activiti版本为6.0版本以下为Activiti6.0版本的下载地址

https://github.com/Activiti/Activiti/releases/download/activiti-6.0.0/activiti-6.0.0.zip

由于某些非技术原因,以上链接可能在国内无法打,需要借助其他方法进行下载

下载解压后得到activiti-6.0.0目录,该目录下有三个子目录:databaselibswars。以下为各个目录的作用描述:

     database用于存放Activiti数据表的初始化脚本create子目录)、删除脚本drop子目录)和升级脚本upgrade子目录从各个目录中的脚本可得知,目前Activiti支持各大主流的关系型数据库,包括DB2MySQLOracle等等。

     libs存放本版本Activiti所发布的jar包,也包含对应的源码包。

     wars存放Activiti官方提供的war包,当前版本有activiti-app.waractiviti-admin.waractiviti-rest.war三个war

需要注意的是,这三个war包默认情况下使用的是H2数据库,该数据库是一个内存数据库,因此部署前不需要进行任何的数据库配置,但如果重启了应用服务器,那么之前的数据将会丢失,大家在使用时请注意这个小细节将三个war包复制到Tomcat/webapps目录并启动Tomcat在浏览器中打开以下链接,即可以看到Activiti的演示界面

http://localhost:8080/activiti-app/

Activiti的演示界面如图2-7所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-7 Activiti Demo的登录界面

注:见到图2-7的界面,表示已经启动成功,如果需要登录及使用其他功能,请见2.2.小节。

运行官方的Activiti示例

Activiti官方发布的activiti-app,可以说是一个较为完善的样例,用户可通过试用该应用来了解Activiti的大部分功能。随Activiti6.0版本发布的官方示例,包括流程图定义、流程发布、动态表单等一系列功能,在笔者看来,这个示例的功能已经相当强大。由于该示例偏向技术,如果需要开发更贴近某个特定业务的产品,我们还是需要掌握Activiti的核心。

本小节将以一个简单的请假流程为基础,向大家展示该Activiti示例的功能,以便大家对工作流引擎有一个初步的了解。

注:activiti-app的登录用户名为admin,默认密码为test,该应用的功能将在本小节讲述。

 

本小节流程概述

我们先定一个简单的请假流程,主要是由员工发起请假,然后再由他的经理审批,最后流程结束,流程图如图2-8所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-8员工请假流程

本小节目的是为了让大家初步了解activit-app的功能,对Activiti有一个初步的认识,因此设计的流程较为简单。

新建用户

根据我们前面定义的请假流程,需要有一个员工的用户,然后需要有一个经理的用户,在实际业务中,普通员工、经理可能就是用户,在此为了简单起见,只定义有一个员工与一个经理,不涉及用户组数据。使用admin账号登录activiti-app(默认密码是test),主界面如图2-9所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-9登录activiti-app后的主界面

主界面的三个菜单主要承担以下功能:

     Kickstart App:主要用于流程模型管理、表单管理及应用App管理,一个应用可以包含多个流程模型,应用可发布给其他用户使用

     Task App:用于管理整个activiti-app的任务,在该功能里面也可以启动程。

     Idenity management:身份信息管理,可以管理用户、用户组等数据。

点击“Identity Management”菜单,再点击Users菜单,界面如图2-10所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-10进入用户管理

点击“Create user”按钮,弹出输入新用户信息的界面,根据我们定义的请假流程,需要新建一个员工用户。新建用户名为“employee”的用户,信息如图2-11所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-11新建用户

需要注意是,Email等信虽然不是必填的,但如果不填,则在登录时会出现异常,笔者建议将全部信息填完,以便减少遇到的问题。以同样的方法,再创建一个“manager”的用户作为经理,用于审核请假任务。

定义流程

点击“Kickstart App”菜单,进入流程模型管理的主界面,点击“Create Process”按钮,弹出新建流程模型界面,如图2-12所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-12新建流程模型界面

新建模型,会进入流程模型设计界面,在流程设计界面中,只需要普通的鼠标拖拉操作,即可完成流程模型的定义,该编辑器也可以开放给业务人员使用。根据前面定义的请假流程,在编辑器中“拖拉”一下,定义请假流程模型,如图2-13所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-13设计流程模型

在图2-13中,定义了一个开始事件、两个用户任务、一个结束事件。我们定义的请假业务,需要将该用户任务分配给employee用户。点击第一个用户任务,并修改“Assignment”属性,如图2-14所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-14为任务分配给用户

如图2-14可知,将“Employee off work”任务分配给“Emp E”用户,需要注意的是,Emp是用户的真实名称,登录系统的用户名是employee保存成功后,再使用同样的方法将“Manage Audit”任务分配给manager用户,保存流程模型后,就可以将流程发布。

 

发布流程

activiti-app中,一个App可包含多个流程模型,因此在发布流程前,先新建一个App并为其设置流程模型。点击Apps菜单,再点击“Creaea App”按钮,新建一个App,如图2-15所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-15新建App

由于我们设计的请假流程,属于人事管理领域的,因此新建一个给HR使用的App(应用),该App就包含我们前面所设计的请假流程模型。创建App成功后,再为其设置流程模型并发布App,点击修改App,显示界面如图2-16所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-16查看App

2-16为查看App的界面,右上角的“Publish”按钮可以发布App。点击“App Editor”可以进行App的模块修改,本例中已经将前面定义的流程绑定到“HR App

 

启动与完成流程

发布了App,再使用之前新建的employee用户进行登录,登录后可以看到HR App的菜单,如图2-17所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-17员工登录主界面

进入HR App并且点击“Processes”菜单,在界面左上角,可以看到“Start a process”按钮,点击启动请假流程后,可以看到界面如图2-18所示

疯狂Activiti6连载(2)下载和运行Activiti

2-18启动流程

根据流程模型的定义可知,启动流程后,就由employee来完成第一个用户任务,点击图2-18右边的任务列表,进行任务操作。如图2-19所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-19查看用户任务

2-19右上角的“Complete”按钮,点击后即可完成当前的用户任务。按照流程设计,employee完成任务后,就到manager用户审核请假。使用manager用户登录系统,同样进入“HR App”的Processes菜单,可以同样看到分配到manager用户下面的任务,以同样的方式完成任务后,流程结束,如图2-20

疯狂Activiti6连载(2)下载和运行Activiti

2-20 manager完成任务

至此,这个简单的请假流程,已经在activiti-app上面运行成功。

流程引擎管理

除了activiti-app这个war包外,还有一个activiti-adminwar包,在部署时也放到Tomcat的应用目录下activiti-admin用于查看流程引擎的主要数据,包括流程引擎的部署信息、流程定义、任务等数据。启动了Tomcat后,在浏览器打开以下链接:

http://localhost:8080/activiti-admin

打开上面链接后,可以看到activiti-admin的登录界面,内置的用户名为admin,密码为admin。登录成功后,点击“Configuration”菜单,先配置管理的对象信息,由于activiti-app也是部署在Tomcat中,因此只需要修改一下端口即可,将默认的9999端口改为我们的Tomcat端口8080,修改界面如图2-21所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-21修改activiti-admin的配置信息

修改完成配置后,可以点击“Check Activiti REST endpoint来测试是否可以连接到activiti-app的接口,连接成功后会有提示。

点击“Instances”,可以看到我们之前完成的请假流程实例,再点击流程实例,可以查看到流程的全部信息,请假流程的全部信息如图2-22所示。

疯狂Activiti6连载(2)下载和运行Activiti

2-22查看请假流程信息

activiti-admin应用中的数据,可以通过Activiti发布的接口获取,接口的使用将在本书后面的章节中讲述。

根据本小节的内容可知,Activiti官方提供的activiti-appactiviti-admin两个应用,包含流程设计、流程发布、流程引擎管理等功能,本书后面的章节,将会深入讲解Activiti的功能,学习后再回头看官方的两个应用,即可明白它们实现原理。

 本文节选自《疯狂工作流讲义(第2版)》

京东购买地址:https://item.jd.com/12246565.html

工作流Activiti6电子书http://blog.****.net/boxiong86/article/details/78488562

工作流Activiti6教学视频http://blog.****.net/boxiong86/article/details/78608585

本书代码共享地址:https://gitee.com/yangenxiong/CrazyActiviti

疯狂Activiti6连载(2)下载和运行Activiti

疯狂Activiti6连载(2)下载和运行Activiti