当前位置:网站首页 > 技术博客 > 正文

flowable springboot2.0



Flowable是一个使用Java编写的轻量级业务流程引擎。Flowable流程引擎可用于部署BPMN 2.0流程定义(用于定义流程的行业XML标准), 创建这些流程定义的流程实例,进行查询,访问运行中或历史的流程实例与相关数据,等等。

Flowable可以十分灵活地加入你的应用/服务/构架。可以将JAR形式发布的Flowable库加入应用或服务,来嵌入引擎。 以JAR形式发布使Flowable可以轻易加入任何Java环境:Java SE;Tomcat、Jetty或Spring之类的servlet容器;JBoss或WebSphere之类的Java EE服务器,等等。 另外,也可以使用Flowable REST API进行HTTP调用。也有许多Flowable应用(Flowable Modeler, Flowable Admin, Flowable IDM 与 Flowable Task),提供了直接可用的UI示例,可以使用流程与任务。

所有使用Flowable方法的共同点是核心引擎。核心引擎是一组服务的集合,并提供管理与执行业务流程的API。 下面的教程从设置与使用核心引擎的介绍开始。

 
  

 目录下新建文件 

 
  

我的配置文件 

依赖

 
  

配置文件 

 
  

启动项目后,会自动创建flowable的数据库表

flowable命名规则:

  • ACT_RE_* :’ RE ’表示repository(存储)。RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
  • ACT_RU_* :’ RU ’表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
  • ACT_ID_* : ’ ID ’表示identity(组织机构)。这些表包含标识的信息,如用户,用户组,等等。
  • ACT_HI_* : ’ HI ’表示history。就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。
  • ACT_GE_* : 普通数据,各种情况都使用的数据。

要构建的流程是一个非常简单的请假流程。Flowable引擎需要流程定义为BPMN 2.0格式,这是一个业界广泛接受的XML标准。

在Flowable术语中,我们将其称为一个流程定义(process definition)。一个流程定义可以启动多个流程实例(process instance)。流程定义可以看做是重复执行流程的蓝图。 在这个例子中,流程定义定义了请假的各个步骤,而一个流程实例对应某个雇员提出的一个请假申请。

BPMN 2.0存储为XML,并包含可视化的部分:使用标准方式定义了每个步骤类型(人工任务,自动服务调用,等等)如何呈现,以及如何互相连接。这样BPMN 2.0标准使技术人员与业务人员能用双方都能理解的方式交流业务流程。

我们要使用的流程定义为:

XME65HVASP3{8SF4{B1$N.png

在src/main/resources文件夹下创建为employeeLeave.bpmn20.xml文件:

 
  

flowable有个8个核心服务,springboot里使用  依赖,会自动帮忙注册好,不需要自己再注册,直接使用即可。

使用RepositoryService,可以通过XML文件的路径创建一个新的部署(Deployment),并调用deploy()方法实际执行:

 
  

现在已经在流程引擎中部署了流程定义,因此可以使用这个流程定义作为“蓝图”启动流程实例。

要启动流程实例,需要提供一些初始化流程变量。一般来说,可以通过呈现给用户的表单,或者在流程由其他系统自动触发时通过REST API,来获取这些变量。

image.png

image.png

启动流程实例有两种方式

 
  
 
  

就是用来存储流程变量的

flowable的任务有很多,常见的有服务任务和用户任务

职工通过表单填写的基本信息都会存储在流程变量,流程启动后,会经过服务任务,服务任务会职工信息分配代理人,将代理人信息添加到流程变量中 image.png 实现服务任务调用的服务,需要创建一个类,实现JavaDelegate接口,实现execute方法,这个方法可以写很多业务逻辑

 
  

在流转到用户任务之前,我们需要设置代理人,我们可以使用用户任务监听器动态设置代理人

image.png

 
  

用户要获得实际的任务列表,需要通过TaskService创建一个TaskQuery。

 
  

经理现在就可以完成任务了

 
  

欢迎加入我们:gitee.com/bsin-paas/a…

c16c1da74dd789cc3a4850f24e269f2.png

版权声明


相关文章:

  • 异步fifo使用2025-06-30 21:01:08
  • 树莓派3b+介绍2025-06-30 21:01:08
  • jmeter怎么连接数据库2025-06-30 21:01:08
  • 铁威马的nas怎么样2025-06-30 21:01:08
  • java juc是什么2025-06-30 21:01:08
  • 介绍计算机的发展历程2025-06-30 21:01:08
  • pycharm 单元测试2025-06-30 21:01:08
  • redis category2025-06-30 21:01:08
  • linux性能监控系统2025-06-30 21:01:08
  • sscom v5.12.1使用说明2025-06-30 21:01:08