什么是工作流?
工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在“多个参与者”之间按照某种“预定义的规则”传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。
通俗的说,流程就是多个人在一起合作完成某件事情的步骤,把步骤变成计算机能理解的形式就是工作流。
2. 使用工作流框架的步骤(activiti)
1.导入jar包(下载地址http://activiti.org/download.html)
2.解压jar
3.在解压过的文件夹中找到activiti-5.22.0\wars
4.把activiti-rest.war文件重命名为activiti-rest.zip然后解压
5.解压后会出现两个文件夹为META-INF和WEB-INF
6.此路径activiti-5.22.0\wars\WEB-INF\lib是Activiti的基于spring+springMVC+Mybatis的基本jar包
7.创建动态java项目
8.activiti-5.22.0\wars\WEB-INF\lib里面jar包全部导入到项目中
9.删除h2-1.3.176.jar(因为本人用的是mysql),导入mysql的连接jar包mysql-connector-java-5.1.26-bin.jar
10.配置activiti的xml文件
11.绘制流程图(本人使用的是eclipse插件)
12.测试(发布部署以及删除部署)
12.1.发布部署
@Test
public void testDeloy() throws Exception {
// 核心对象(服务大管家)
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//获取repositoryService仓库服务
RepositoryService repositoryService = processEngine.getRepositoryService();
//获取流程发布对象
DeploymentBuilder createDeployment = repositoryService.createDeployment();
//上传资源
createDeployment.addClasspathResource("MyProcess.bpmn");
createDeployment.addClasspathResource("MyProcess.png");
//发布
Deployment deploy = createDeployment.deploy();
System.out.println(deploy);//DeploymentEntity[id=1, name=null]
}
查看数据库中的变化
12.2.测试删除部署(真删除,物理删除)
@Test
public void testDeleteDeloy() throws Exception {
// 获取核心对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// RepositoryService 仓库
RepositoryService repositoryService = processEngine.getRepositoryService();
repositoryService .deleteDeployment("1");
}
12.3.假删除(挂起)
@Test
public void testDeleteDeloy2() throws Exception {
// 获取核心对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// RepositoryService 仓库
RepositoryService repositoryService = processEngine.getRepositoryService();
repositoryService.suspendProcessDefinitionByKey("myProcess");
}
删除前的数据库
删除后的数据库
3. activiti的配置文件
下面是mysql的配置 文件名为activiti.cfg.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 数据库连接信息 -->
<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql:///activiti?createDatabaseIfNotExist=true" />
<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
<property name="jdbcUsername" value="root" />
<property name="jdbcPassword" value="123456" />
<!-- 如果没有表则创建表-->
<property name="databaseSchemaUpdate" value="true" />
</bean>
</beans>