SpringBoot整合Flowable

1. 配置

(1) 引入maven依赖

        
            org.flowable
            flowable-spring-boot-starter
            6.7.2
        
        
        
            mysql
            mysql-connector-java
            8.0.19
        

(2)配置文件

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url= jdbc:mysql://localhost:3306/flowable?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username = root
spring.datasource.password= root

(3)启动项目即可在数据库自动生成相关表

数据库表组 说明
act_app_* 跟应用程序相关的表。
act_cmmn_* 跟 CMMN 协议相关的表。
act_co_* 跟内容引擎相关的表
act_dmn_* 跟 DMN 协议相关的表。
act_evt_log 事件日志表
act_fo_* 表单相关的表,这些表主要存储表单相关的数据。
act_ge_* 通用表,普通数据,各种情况都使用的数据。
act_hi_* 历史数据的表,这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。
act_id_* 用户用户组表 /身份数据表,这些表包含标识的信息,如用户,用户组,等等。
act_procdef_info 流程定义动态改变信息表
act_re_* 流程的定义、流程的资源表,这些表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
act_ru_* 运行时信息表,存储着流程变量,用户任务,变量,职责(job)等运行时的数据。只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
flw_channel_definition 都是跟泳道相关的表。
flw_ev_* 跟 Liquibase 相关的表。
flw_event_* 跟事件相关的表。
flw_ru_* 运行时信息表。

(4)画流程图

       a. 安装 IDEA 插件:lowable BPMN visualizer
       b. 在 resources 目录下新建 processes 目录,该目录下的流程文件将来会被自动部署。
       c. 在 processes 目录下,新建一个 BPMN 文件,固定后缀为.bpmn20.xml



  
    
    
    
    
    
    
    
  
  
   
  

SpringBoot整合Flowable_第1张图片

(5)调用相关API处理流程

    @Resource
    RuntimeService runtimeService;
    @Resource
    TaskService taskService;   
     /**
     * 通过流程id开启一个流程,并设置变量,用于流程图 ${name} 动态赋值
     */
    @Test
    void contextLoads() {
        HashMap variables = new HashMap<>();
        variables.put("leader","zp");
        variables.put("crew","zj");
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("demo", variables);
        System.out.println(processInstance.getProcessInstanceId());
    }

    /**
     * 通过分配任务的人获取任务并处理任务
     */
    @Test
    void contextLoads1() {
        List list = taskService.createTaskQuery().taskAssignee("zp").orderByTaskId().desc().list();
        for (Task task : list) {
            taskService.complete(task.getId());
        }
    }

你可能感兴趣的:(Flowable,flowable)