3.0 KiB
3.0 KiB
title | description | published | date | tags | editor | dateCreated |
---|---|---|---|---|---|---|
6.流程引擎 | activiti流程引擎模块的使用 | true | 2022-04-23T07:00:13.029Z | wg-basic, activiti | markdown | 2021-09-01T09:28:31.684Z |
说明
流程引擎模块引入了 activiti 框架,目前可以完成流程的绘制、部署与流程图的查看。模块自带流程绘制功能,无需再使用插件绘制流程文件。
该模块需要手动添加管理菜案
更新
- 20220423:增加了OA流程管理,结合动态表单与流程绘制中的OA节点管理可完成无代码OA表单流转。
依赖
<dependency>
<groupId>ink.wgink</groupId>
<artifactId>module-activiti</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
配置说明
spring:
# 流程引擎
activiti:
# flase: 默认值。activiti在启动时,会对比数据库表中保存的版本,如果没有表或者版本不匹配,将抛出异常。
# true: activiti会对数据库中所有表进行更新操作。如果表不存在,则自动创建。
# create_drop: 在activiti启动时创建表,在关闭时删除表(必须手动关闭引擎,才能删除表)。
# drop-create: 在activiti启动时删除原来的旧表,然后在创建新表(不需要手动关闭引擎)
database-schema-update: true
#检测历史表是否存在
db-history-used: true
# 记录历史等级 可配置的历史级别有none, acitivity, audit, all
history-level: full
# 检查流程定义
check-process-definitions: false
rest-api-enabled: true
rest-api-servlet-name: activiti-swagger-document
SpringProcessEngineConfiguration:
activityFontName: 宋体
labelFontName: 宋体
dataSource: datasource
注意:spring.datasource.druid.url
配置中需要追加 nullCatalogMeansCurrent=true 参数用于防止项目启动自动建表失败的
启动类
启动类需要增加配置
@SpringBootApplication
注解增加 exclude=SecurityAutoConfiguration.class
@SpringBootApplication(exclude = SecurityAutoConfiguration.class)
添加菜单
流程模型:/route/activiti/list
流程定义:/route/activiti/procdef/list
发起流程:/route/oa/list-procdef
我的待办:/route/oa/list-task-of-mine
我的已办:/route/oa/list-history-task-of-mine
表单管理:/route/form/list
如何启动流程
- 在流程管理菜单下将流程绘制好并部署后,会生成 部署ID(deploymentId)
- 使用如下代码启动流程
// 获取流程定义
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult();
// 获取流程定义ID
String processDefinitionId = processDefinition.getId();
// 流程变量(如果需要)
Map<String, Object> variableMap = new HashMap<>();
// 业务ID(如果需要)
String businessId = "businessId";
// 启动流程
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinitionId, "businessId", variableMap);