一搭建环境
1.1 JDK 6+
1.2 Ant 1.8.1+
1.3 Eclipse 3.7+
1.4 Activiti -eclipse designer插件安装
1.4.1 先安装GEF插件
1.4.2 安装SVN插件
1.4.3安装Maven插件
1.4.4 最后安装Activiti -eclipse designer
二开始activiti 5.12.1的第一个demo
2.1 建立activiti-demo工程,选择Activiti Project
2.2 将activiti-demo工程的数据库整合为MySQL
2.3 设计activiti-demo工程的流程
以上详细描述参照Activiti 简易教程一 version5.10(http://blog.csdn.net/yangyi22/article/details/9225849)
测试类代码 DemoProcessTest.java
-
package main.java;
-
-
import java.io.FileInputStream;
-
import java.util.List;
-
import org.activiti.engine.HistoryService;
-
import org.activiti.engine.ProcessEngine;
-
import org.activiti.engine.ProcessEngines;
-
import org.activiti.engine.RepositoryService;
-
import org.activiti.engine.RuntimeService;
-
import org.activiti.engine.TaskService;
-
import org.activiti.engine.history.HistoricProcessInstance;
-
import org.activiti.engine.runtime.ProcessInstance;
-
import org.activiti.engine.task.Task;
-
-
public class DemoProcessTest {
-
-
private static String realPath =
-
"D:\\Java~coding~site\\J2EE-IDE\\Workspace\\workspace[indigo-jee]" +
-
"\\activiti-512demo\\src\\main\\resources\\diagrams";
-
public static void main(String[] args) throws Exception {
-
-
-
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
-
-
-
-
-
-
-
-
RepositoryService repositoryService = processEngine.getRepositoryService();
-
RuntimeService runtimeService = processEngine.getRuntimeService();
-
-
-
repositoryService
-
.createDeployment()
-
.addInputStream("DemoProcess.bpmn",new FileInputStream(realPath + "\\DemoProcess.bpmn"))
-
.addInputStream("DemoProcess.png", new FileInputStream(realPath + "\\DemoProcess.png"))
-
.deploy();
-
-
-
ProcessInstance instance = processEngine
-
.getRuntimeService().startProcessInstanceByKey("DemoProcess");
-
String procId = instance.getId();
-
System.out.println("procId:"+ procId);
-
-
-
TaskService taskService = processEngine.getTaskService();
-
List<Task> tasks = taskService.createTaskQuery().taskDefinitionKey("firstTask").list();
-
for (Task task : tasks) {
-
System.out.println("Following task is: taskID -" +task.getId()+" taskName -"+ task.getName());
-
-
taskService.claim(task.getId(), "testUser");
-
}
-
-
-
tasks = taskService.createTaskQuery().taskAssignee("testUser").list();
-
for (Task task : tasks) {
-
System.out.println("Task for testUser: " + task.getName());
-
-
taskService.complete(task.getId());
-
}
-
System.out.println("Number of tasks for testUser: "
-
+ taskService.createTaskQuery().taskAssignee("testUser").count());
-
-
-
-
tasks = taskService.createTaskQuery().taskDefinitionKey("secondTask").list();
-
for (Task task : tasks) {
-
System.out.println("Following task is : taskID -" +task.getId()+" taskName -"+ task.getName());
-
taskService.claim(task.getId(), "testUser");
-
}
-
-
-
for (Task task : tasks) {
-
taskService.complete(task.getId());
-
}
-
-
-
HistoryService historyService = processEngine.getHistoryService();
-
HistoricProcessInstance historicProcessInstance = historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult();
-
System.out.println("Process instance end time: " + historicProcessInstance.getEndTime());
-
}
-
-
}
依赖jar包说明
Activiti5.10以后的版本已经去掉第三方的jar包,从官网下载的Activiti5.12.1的依赖包仅仅包含activiti相关的jar,目录libs下的jar包如下:



运行测试代码,会发现少了很多依赖包,我的处理的方法是直接从5.10版本导入缺少的jar包,导入后测试代码通过。
jar包:


教程二完毕。