Springboot集成flowable

1.利用flowable-ui(本地搭建或者服务器搭建都可),画出流程图文件,并导出为相关xml

导出xml如下:

在这里插入图片描述

在这里插入图片描述

2.集成项目导入相关maven依赖(第一次新建会在数据库中初始化工作流相关的表):

org.flowable flowable-spring-boot-starter 6.7.1

3.根据相关API,配合XML完成工作流工作步骤.
主要API:
1.获取工作流实例,并启动工作流:
// leave为员工请假流程xml文件中的id
ProcessInstance a1 = runtimeService.startProcessInstanceByKey(“test”, map);

    Task task = taskService.createTaskQuery().processInstanceId(a1.getId()).singleResult();
    taskService.complete(task.getId());

2、启动后任务会自动走流程到设定的审批人,获取审批人下对应任务:
// 查询领导分组的任务
List teacher = taskService.createTaskQuery().taskCandidateGroup(“a”).list(); //这里审批人ID为a
for (Task task : teacher) {
// 根据任务id查询当前任务参数
Map<String, Object> variables = taskService.getVariables(task.getId());
System.out.println(variables.get(“day”) + “,” + variables.get(“studentUser”));
}
3.推进任务,根据map中传递字段来判断任务该进入哪个环节(审批或驳回)
taskService.complete(teacherTask.getId(), teacherMap);

4.查询已完成的某任务的执行流程;
//获取该类型工作流任务列表
List processInstance = runtimeService.createProcessInstanceQuery().processDefinitionKey(“test”).orderByStartTime().desc().list();
if (CollectionUtils.isEmpty(processInstance)) {
System.out.println(“------------------------------------------”);
}
// 获取最近的一个流程
List activities = historyService.createHistoricActivityInstanceQuery()
.processInstanceId(processInstance.get(0).getId())
// 只查询已经完成的活动
.finished()
// 按照结束时间排序
.orderByHistoricActivityInstanceEndTime().desc()
.list();
List collect = activities.stream().map(a -> “活动名称:” + a.getActivityName() + “;活动执行时间:” + a.getDurationInMillis() + “毫秒”).collect(Collectors.toList());

总结:
整体思考下来,如果要在项目中集成工作流,主要流程步骤为:
1.导入相关Maven依赖,生成相关XML配置文件(流程要确定清楚,并且ID命名要清晰)并放入resources/processes目录下.
2.业务流程中配合使用工作流相关API,并且做好相应校验.(做好封装),要确认的点:
封装好对应的工作流map,到每一步都执行对应的步骤.(根据taskId与工作流类型,获取任务状态,调用API推进任务,获取任务执行详情等)

参考链接:https://blog.csdn.net/zhousenshan/article/details/134625532

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
集成 Flowable 可以让 Spring Boot 应用程序具有工作流功能。下面是在 Spring Boot集成 Flowable 的步骤: 1. 添加依赖。在 pom.xml 文件中添加以下依赖: ``` <dependency> <groupId>org.flowable</groupId> <artifactId>flowable-spring-boot-starter</artifactId> <version>6.5.0</version> </dependency> ``` 2. 配置数据源。在 application.properties 文件中添加以下配置: ``` spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/flowable?useUnicode=true&characterEncoding=utf-8 spring.datasource.username=root spring.datasource.password=root ``` 3. 创建流程定义。在 resources 目录下创建一个名为 processes 的目录,然后在该目录下创建一个名为 myprocess.bpmn20.xml 的文件,该文件包含要创建的流程定义。 4. 创建 Service。创建一个名为 MyService 的类,并在该类中添加以下代码: ``` @Service public class MyService { @Autowired private RuntimeService runtimeService; public void startProcess(String processDefinitionKey) { runtimeService.startProcessInstanceByKey(processDefinitionKey); } } ``` 5. 创建 Controller。创建一个名为 MyController 的类,并在该类中添加以下代码: ``` @RestController @RequestMapping("/my") public class MyController { @Autowired private MyService myService; @PostMapping("/start-process") public void startProcess(@RequestParam("processDefinitionKey") String processDefinitionKey) { myService.startProcess(processDefinitionKey); } } ``` 6. 启动应用程序。运行 Spring Boot 应用程序。 现在,您已经成功在 Spring Boot集成Flowable,并可以使用工作流功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值