目录
1 导包
<dependency>
<groupId>org.flowable</groupId>
<artifactId>flowable-spring-boot-starter</artifactId>
<version>${flowable.version}</version>
</dependency>2 application.yml配置 添加以下属性
flowable:
async-executor-activate: false #关闭定时任务JOB
# 将databaseSchemaUpdate设置为true。当Flowable发现库与数据库表结构不一致时,会自动将数据库表结构升级至新版本。
database-schema-update: true
3 创建表(初始化表数据)
public static void main(String[] args) {
//1、创建ProcessEngineConfiguration实例,该实例可以配置与调整流程引擎的设置
ProcessEngineConfigurationcfg=new StandaloneProcessEngineConfiguration()
//2、通常采用xml配置文件创建ProcessEngineConfiguration,这里直接采用代码的方式
//3、配置数据库相关参数
.setJdbcUrl("jdbc:mysql://localhost:3306/flowable_demo? useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2b8&nullCatalogMeansCurrent=true")
.setJdbcUsername("root")
.setJdbcPassword("root")
.setJdbcDriver("com.mysql.jdbc.Driver")
.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
//4、初始化ProcessEngine流程引擎实例
ProcessEngine processEngine=cfg.buildProcessEngine();
}
执行以上main方法,便可生成数据库表
4 常用方法总结(很重要的)
4.1 属性注入
@Resource
private ProcessEngine processEngine;
@Resource
private TaskService taskService;
@Resource
private RuntimeService runtimeService;
4.2 按照任务id查询数据
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
4.3 查询审批候选人
taskService.createTaskQuery().includeIdentityLinks().singleResult().getIdentityLinks();
4.4 开启流程
HashMap map = new HashMap<>();
map.put("userIds", candidateUserIds); // 审批候选人
runtimeService.startProcessInstanceByKey(processDefinitionKey, map);
processDefinitionKey(xml文件中流程定义id):为xml文件中的id
4.5 领取任务
taskService.claim(taskId,userId);
4.6 任务审批
HashMap<String, Object> map = new HashMap<>();
map.put("result", reqVo.getApprovalResult().getValue());
map.put("userIds", reqVo.getCandUserIds());
taskService.complete(taskId, map);