一.Activiti 7

常用sql 

根据 process_instance_id 查询当前是否有激活的任务 ,并得到任务id

SELECT

ID_ AS taskId,

NAME_ AS taskName,

ASSIGNEE_ AS assignee,

PROC_INST_ID_ AS processInstanceId,

EXECUTION_ID_,

TASK_DEF_KEY_,

SUSPENSION_STATE_ AS 状态 -- 1=激活 2=暂停

FROM act_ru_task

WHERE PROC_INST_ID_ = '043ed23f-646b-11f1-830d-32c49b41b708';

二.Flowable 

2.1版本

spring-boot 2x  对应版本 6.8.0
spring-boot 3x  对应版本 7.0.0

<flowable.version>7.0.0</flowable.version>

<!-- flowable -->
<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-spring-boot-starter</artifactId>
    <version>${flowable.version}</version>
</dependency>

2.2yml配置

flowable:
  # 数据库策略:true=自动建表/升级,首次启动后改为 false
  database-schema-update: true
  # 关闭异步任务执行器(定时器、邮件等)
  async-executor-activate: false
  # 事件注册引擎:流程中事件监听与触发
  event-registry:
    enabled: true
  # CMMN 引擎:案例管理(非结构化动态 Case)
  cmmn:
    enabled: true
  # DMN 引擎:决策表(if-then 规则决策)
  dmn:
    enabled: true
  # App 引擎:应用定义(打包流程+表单为一个应用)
  app:
    enabled: true
  # Form 引擎:动态表单定义
  form:
    enabled: true
  # Content 引擎:内容/附件/文档版本管理
  content:
    enabled: true

2.3FlowableDataSourceConfig配置数据源

import com.alibaba.druid.pool.DruidDataSource;
import jakarta.annotation.PostConstruct;
import org.flowable.spring.SpringProcessEngineConfiguration;
import org.flowable.spring.boot.EngineConfigurationConfigurer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Flowable 数据源配置——直接复用若依主库 DruidDataSource,
 * 不新建 HikariCP 数据源,也不经 DynamicDataSource 中转(会丢失 jdbcUrl)。
 */
@Configuration
public class FlowableDataSourceConfig {

    private static final Logger log = LoggerFactory.getLogger(FlowableDataSourceConfig.class);

    @Autowired
    private DruidDataSource masterDataSource;

    @PostConstruct
    public void init() {
        log.info("========== Flowable 将使用数据源 ==========");
        log.info("URL      : {}", masterDataSource.getUrl());
        log.info("Username : {}", masterDataSource.getUsername());
        log.info("=========================================");
    }

    @Bean
    public EngineConfigurationConfigurer<SpringProcessEngineConfiguration> flowableConfigurer() {
        return config -> {
            config.setDataSource(masterDataSource);
            config.setDatabaseSchemaUpdate("true");
        };
    }
}

更多推荐