Activiti 入门
微冷 2021/12/16 Activi
以下文档中用的的代码在第一篇文章中已经给出
工作流的使用操作流程基本如下:部署 -> 启动流程 -> 完成任务节点(多个即重复多次)
# 1、 初始化数据库
// 初始化数据库表
@Test
public void init() {
// 获得引擎配置,可以修改配置完成自己想要的操作
ProcessEngineConfiguration processEngineConfiguration = processEngine.getProcessEngineConfiguration();
/**
* public static final String DB_SCHEMA_UPDATE_FALSE = "false";不能自动创建表,需要表存在
* public static final String DB_SCHEMA_UPDATE_CREATE_DROP = "create-drop";先删除表再创建表
*
* 使用下面的配置,完成自动创建表,在xml中直接使用后面的值
* public static final String DB_SCHEMA_UPDATE_TRUE = "true";如果表不存在,自动创建表
*/
processEngineConfiguration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
如果是Activiti 6 会生成28个表,并且在act_ge_property表中插入4条数据,其中next.dbid为引擎的主键生成策略生成的下一条主键供各表使用
mysql> select * from act_ge_property;
+--------------------------------------+-----------------+------+
| NAME_ | VALUE_ | REV_ |
+--------------------------------------+-----------------+------+
| cfg.execution-related-entities-count | false | 1 |
| next.dbid | 2501 | 2 |
| schema.history | create(6.0.0.4) | 1 |
| schema.version | 6.0.0.4 | 1 |
+--------------------------------------+-----------------+------+
4 rows in set (0.00 sec)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 2、 部署
/**
* 部署流程定义
*/
@Test
public void deploymentProcessDefinition() {
// RepositoryService 与流程定义和部署对象相关的Service
Deployment deployment = processEngine.getRepositoryService()
//创建一个部署对象
.createDeployment()
//添加部署的名称
.name("部署流程")
//从classpath的资源中加载,一次只能加载一个文件
.addClasspathResource("diagrams/HelloWorld.bpmn")
//从classpath的资源中加载,一次只能加载一个文件
.addClasspathResource("diagrams/HelloWorld.png")
//完成部署
.deploy();
System.out.println("部署ID:" + deployment.getId());
System.out.println("部署名称:" + deployment.getName());
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
部署流程后,会在 act_re_deployment、act_re_procdef、act_ge_bytearray表中添加数据:
- act_re_deployment 部署对象表
- act_re_procdef 流程定义表
- act_ge_bytearray 二进制数据表,存储通用的流程定义和流程资源
留言: