栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Flowable整合Springboot

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flowable整合Springboot

1.添加相关依赖

    org.flowable
    flowable-spring-boot-starter
    6.6.0


    com.alibaba
    druid
    1.1.14


    mysql
    mysql-connector-java
    8.0.21


    junit
    junit
    4.13.2
    test

2.添加对应的配置
spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://10.9.31.40:13306/flowable_learn?charset=utf8mb4&useSSL=false&nullCatalogMeansCurrent=true
    username: root
    password: 123456
    hikari:
      minimum-idle: 5
      idle-timeout: 600000
      maximum-pool-size: 10
      auto-commit: true
      pool-name: MyHikariCP
      max-lifetime: 1800000
      connection-timeout: 30000
      connection-test-query: SELECT 1
flowable:
  #关闭定时任务JOB
  async-executor-activate: false 
  #将databaseSchemaUpdate设置为true。当Flowable发现库与数据库表结构不一致时,会自动将数据库表结构升级至新版本。
  database-schema-update: true
server:
  port: 8082

系统启动的时候检查如果数据库对应的表结构没有创建,会帮助我们先创建对应的表结构

3.案例应用 3.1 流程部署
  • processes目录下的任何BPMN 2.0流程定义都会被自动部署。创建processes目录,并在其中创建示例流程定义(命名为one-task-process.bpmn20.xml)。
  • cases目录下的任何CMMN 1.1定义都会被自动部署。
  • forms目录下的任何Form定义都会被自动部署。

通过手动方式来部署

在resources/process目录下创建流程定义文件




    

        
        

        
        

        
        
            
                
            
        
        
            
                
            
        

        
        

        
        

        
        

        

        

    


编写拒绝策略处理器

public class SendRejectionMailHandler implements JavaDelegate {
    @Override
    public void execute(DelegateExecution delegateExecution) {
        System.out.println("===========================================================");
        System.out.println("请假请求被拒绝!!!");
        System.out.println("===========================================================");
    }
}
@SpringBootTest
class SpringbootApplicationTests {
    @Autowired
    private ProcessEngine processEngine;
    @Autowired
    private RepositoryService repositoryService;
    @Autowired
    private TaskService taskService;
    @Autowired
    private RuntimeService runtimeService;

    
    @Test
    void testDeployment() {
        Deployment deployment = repositoryService.createDeployment()
                .addClasspathResource("process/one-task-process.bpmn20.xml")
                .name("请假流程")
                .deploy();
        System.out.println("deploy.getId() = " + deployment.getId());
        System.out.println("deploy.getName() = " + deployment.getName());
    }

}
3.2 启动流程

  启动流程和前面介绍的就没什么差异了,通过RuntimeService来实现

@Test
void startProcess() {
    Map var = new HashMap();
    var.put("assignee-1", "小明同学");
    var.put("assignee-2", "小红同学");
    runtimeService.startProcessInstanceById("holidayRequest:6:c9fa93b2-d19f-11ec-a572-00e04c2fc932", var);
}
3.3 处理流程

  处理流程和前面介绍的也一样,通过TaskService来处理

@Test
void listTask() {
    List list = taskService.createTaskQuery()
        .processDefinitionId("holidayRequest:6:c9fa93b2-d19f-11ec-a572-00e04c2fc932")
        .taskAssignee("小红同学").list();
    for (Task task : list) {
        System.out.println("task.getProcessDefinitionId() = " + task.getProcessDefinitionId());
        System.out.println("task.getId() = " + task.getId());
        System.out.println("task.getAssignee() = " + task.getAssignee());
        System.out.println("task.getName() = " + task.getName());
    }
}


@Test
void startTask() {
    Task task = taskService.createTaskQuery()
        .processDefinitionId("holidayRequest:6:c9fa93b2-d19f-11ec-a572-00e04c2fc932")
        .taskAssignee("小红同学")
        .singleResult();
    // 添加流程变量
    Map variables = new HashMap<>();
    variables.put("approved", false);
    // 完成任务
    if (Objects.nonNull(task)) {
        taskService.complete(task.getId(), variables);
        System.out.println("Complete...");
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/880769.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号