Springboot+flowable6.6.0 流程引擎应用

Springboot项目应用流程引擎

 

项目中要用到流程引擎,以前做项目是自己扣摸着做的简版引擎,现在工作中有机会要用流程引擎,就把他写成专题,记录下。

目录

Springboot项目应用流程引擎

 

一、部署flowable。

二、画流程图,在线生成流程xml配置文件。

三、接入项目。


一、部署flowable。

         flowable部署见文章:https://blog.csdn.net/u013972652/article/details/109990809

 

二、画流程图,在线生成流程xml配置文件。

1.搭建flowable后,访问页面,在流程编辑器中画流程:


2.一定要有开始和结束,

3.在画图过程中,注意流程路线一定要指向下个节点的正中间红点处,如下图,否则保存时试运行会报错 invalid target for sequenceflow(这个奇葩的错误让我鼓捣了好久)。

4.最后保存流程图时要试运行下,看图是否画的正确,error 就要重新修改了,注意,最好id都命名,这样可以看到哪个节点报的error。

5.没有error,可以点保存或者右上角 下载按钮,可以直接导入项目来用了。

6.如果有小可爱们跟我一样,flowable-ui 和flowable应用配置的同一个数据库,那就简单了,设计好流程图,在APP.ADMIN.TITLE 中 的流程引擎,点下图中红框里的按钮上传自己定义的xml文件,就直接部署到项目里面了。

三、接入项目。

1.springboot项目自行搭建添加数据库启动没问题后,引入包依赖,把之前编辑好的xml文件放到 resurces/processes 路径下。

      <!--flowable工作流依赖-->
        <!-- https://mvnrepository.com/artifact/org.flowable/flowable-spring-boot-starter -->
        <dependency>
            <groupId>org.flowable</groupId>
            <artifactId>flowable-spring-boot-starter</artifactId>
            <version>6.6.0</version>
        </dependency>

2. 启动成功,创建86张表。

启动失败报错1:

因为我搭建的flowable和Springboot 用的同一个数据库,所以尝试新建了一个数据库,并修改了配置,结果仍旧报错: 启动失败报错2

启动失败报错2:Table 'flowstudy.act_ge_property' doesn't exist,这是个全新的数据库,是没有数据表的,照理来讲应该创建的,可为什么没有触发创建呢?
经过一番倒腾发现了问题,数据库链接没有制定 schema,然后schema日志是创建过了这86张表了,但是库里并没有。
解决方案: 在数据库连接里加上 &nullCatalogMeansCurrent=true 指定只读取当前schema, 之后创建表并启动成功了。
 

3. 按照文档,写了一个简单的测试如下,然后用 POSTMAN 访问 :localhost:31882/flowable/test,结果报错,流程ID找不到,继续踩坑~~ 
回想了下,我是新建的库,所以库里没有我之前保存的流程图。那么我再切回 搭建flowable的库试试,里面是有数据的。 然后删掉了processes里的xml文件,用 

红色字体是坑,其实应该是有两种部署方式,

a:之前编辑好的xml文件放到 resurces/processes 路径下,启动项目时自动部署流程图到数据库了,此时可以删掉xml文件,因为数据库保存了,本地文件没什么作用了
        b:根据文章部署了FlowableModeler 管理页面的话 (
https://blog.csdn.net/u013972652/article/details/109990809),可以编辑完流程图后下载xml文件,然后在  http://10.19.**.***:8080/flowable-ui/admin/#/process-engine 页面手动部署流程图,截图如下: 此种操作生效的前提是 FlowableModeler 和 Springboot项目是同一个数据库 

startProcessInstanceByKey(),找到了流程文件,返回了流程ID。
@Slf4j
@RequestMapping("flowable")
@RestController
public class TestController {

    @Autowired
    private RuntimeService runtimeService;

    @Autowired
    private TaskService taskService;

    @Autowired
    private HistoryService historyService;

    @Autowired
    private RepositoryService repositoryService;

   @Qualifier("processEngine")
   @Autowired
    private ProcessEngine processEngine;

    @GetMapping("test")
    public String createProcess(){
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("themis-v1");

        return "创建流程成功,流程ID为:" + processInstance.getId();
    }

}

如图:

4.按照自己画的流程图,一步步的验证。

 


 

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
### 回答1: Spring Boot是一个基于Spring框架的快速开发框架,可以帮助开发者快速搭建基于Spring的应用程序。Flowable是一个流程引擎,可以帮助开发者快速实现业务流程的自动化管理。Spring Boot和Flowable的结合可以让开发者更加方便地实现业务流程的自动化管理,提高开发效率和业务效率。 ### 回答2: SpringBoot Flowable是一款基于SpringBootFlowable和RESTful风格的Web应用程序开发框架。SpringBoot框架是一个独立的、基于Spring框架的应用程序开发框架,它简化了Spring应用程序的配置和部署,并提供快速的开发、测试和部署功能。Flowable框架是基于BPMN2.0标准的一个开源的流程引擎框架,它提供了丰富的流程定义、任务管理、历史记录、事件跟踪等功能,便于企业进行复杂业务流程的管理和优化。 SpringBoot Flowable框架的主要特点包括: 1.高效简便:SpringBoot Flowable采用SpringBoot框架简化了Spring应用程序的配置和部署,同时结合Flowable框架,使流程定义和任务管理更加简便高效。 2.易于扩展:SpringBoot Flowable框架采用RESTful风格的接口设计,与其它系统集成更加简单方便,同时也支持二次开发和自定义扩展。 3.丰富的功能:SpringBoot Flowable框架集成了Flowable框架所提供的全部功能,包括流程定义、任务管理、历史记录、事件跟踪等,支持企业复杂业务流程的管理和优化。 4.支持多平台:SpringBoot Flowable框架可以部署在不同系统平台上,如Windows、Linux等,实现跨平台共享和应用。 在使用SpringBoot Flowable框架的过程中,需要掌握SpringBoot框架和Flowable框架的相关知识,同时注意提升系统的安全性和稳定性。可以参考SpringBootFlowable的官方文档进行学习和参考,也可以借助其它资料和开发者社区进行交流和分享。 ### 回答3: Spring Boot是一个开源的Java开发框架,可以快速地开发基于Java的Web应用程序。它提供了许多内置的功能和自动配置,使开发者能够轻松地构建可扩展的、高度可用的应用程序。而Flowable是一个开源的工作流引擎,它基于BPMN(Business Process Model and Notation)标准,可以帮助企业完成复杂的业务流程,实现业务可视化、自动化流转和智能化控制。 Spring Boot和Flowable的结合使得开发者能够轻松地使用Flowable来构建业务流程。使用Spring Boot与Flowable编写代码可以快速地实现流程引擎的集成和管理,同时也方便了开发人员使用Spring Boot框架进行Web开发。 Spring Boot可以使用简便的方式来配置Flowable,使用它提供的自动配置和starter等模块来进行流程引擎的集成和管理。同时,Spring Boot还提供了丰富的开发工具和插件,使得开发者能够轻松地进行代码调试和测试。 在使用Spring Boot和Flowable进行业务流程开发时,开发者可以使用Flowable提供的任务列表、流程修改等功能,可以轻松地修改业务流程,使得业务流程变得更加智能化和高效化。同时,Spring Boot与Flowable的结合也使得业务流程的开发变得更加简单和可靠。 总之,Spring Boot和Flowable的结合可以使开发者轻松地构建高可用、高效率、智能化的业务流程,并且简化了开发和管理流程引擎的过程,帮助企业实现业务的自动化和智能化管理。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值