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

如果是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、 部署

 /**
 * 部署流程定义
 */
@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

部署流程后,会在 act_re_deployment、act_re_procdef、act_ge_bytearray表中添加数据:

  • act_re_deployment 部署对象表
  • act_re_procdef 流程定义表
  • act_ge_bytearray 二进制数据表,存储通用的流程定义和流程资源
留言:
    更新日期: 2022/2/8 下午11:10:51