设置流程定义图bpmn
assignee :申请人、审核人
相关操作的表
-- act_re_procdef 流程定义表
-- act_re_deployment 部署表
-- act_ge_property 通用属性表 id 生成策略
-- act_ru_execution 执行对象,流程实例,流程对象
-- act_ru_task 任务表
入门示例:
1. 创建流程引擎及工作流数据表
- 数据库及表可以自动创建,
可以在配置数据库连接时,实现自动创建数据库和表
- 取得ProcessEngine对象
先取得ProcessEngineConfiguration 对象 ,再由该对象来构建ProcessEngine
2. 部署流程
影响的表:
act_re_procdef :流程定义表 :
该表的key属性 是bpmn 的 id决定
该表的name属性 是bpmn 的name 属性决定
act_re_deployment:部署表 :id是由act_ge_property的 next_dbid决定
act_ge_property :通用属性表
3. 启动流程
4. 查看我的个人任务
5. 完成我的个人任务
示例代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
package
com;
import
java.util.List;
import
org.activiti.engine.ProcessEngine;
import
org.activiti.engine.ProcessEngines;
import
org.activiti.engine.repository.Deployment;
import
org.activiti.engine.runtime.ProcessInstance;
import
org.activiti.engine.task.Task;
import
org.junit.Test;
public
class
ActivitiTest {
/**
* 建表并创建流程引擎对象(核心对象)
*/
@Test
public
void
createProcessEngine() {
// 获取流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
System.out.println(processEngine);
}
/**
* 部署流程定义 影响的表: act_re_procdef : 流程定义表 : 该表的key属性 是bpmn 的 id决定 该表的name属性
* 是bpmn 的name 属性决定 act_re_deployment:部署表 :id是由act_ge_property的 next_dbid决定
* act_ge_property :通用属性表
*/
@Test
public
void
deploy() {
// 获取流程引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 获取仓库服务的实例
Deployment deployment = processEngine.getRepositoryService()
//
.createDeployment()
//
.addClasspathResource(
"bpmn/hello.bpmn"
)
//
.addClasspathResource(
"bpmn/hello.png"
)
//
.name(
"报销单流程"
).deploy();
System.out.println(deployment.getId() +
" "
+ deployment.getName());
}
/**
* 启动流程
*/
@Test
public
void
startProcess() {
// 获取流程引擎对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 启动流程
// 使用流程定义的key启动流程实例,默认会按照最新版本启动流程实例
ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey(
"helloprocess"
);
System.out.println(
"pid:"
+ pi.getId() +
",activitiId:"
+ pi.getActivityId());
}
/**
* 查看任务
* @throws Exception
*/
@Test
public
void
queryMyTask()
throws
Exception {
// 指定任务办理者
String assignee =
"李四"
;
// 获取流程引擎对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 查询任务的列表
List<Task> tasks = processEngine.getTaskService().createTaskQuery()
// 创建任务查询对象
.taskAssignee(assignee)
// 指定个人任务办理人
.list();
// 遍历结合查看内容
for
(Task task : tasks) {
System.out.println(
"taskId:"
+ task.getId() +
",taskName:"
+ task.getName());
System.out.println(
"*************************"
);
}
}
/**
* 办理任务
* @throws Exception
*/
@Test
public
void
completeTask()
throws
Exception {
String taskId =
"404"
;
// 获取流程引擎对象
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 完成任务
processEngine.getTaskService()
.complete(taskId);
System.out.println(
"完成任务!"
);
}
}
|
版权声明:原创作品,如需转载,请注明出处。否则将追究法律责任
本文转自 l363130002 51CTO博客,原文链接:http://blog.51cto.com/liuyj/1732941