Flowable 基本用法

Flowable 基本用法Flowable 是一个基于 Java 的开源工作流引擎 用于实现和管理业务流程

大家好,欢迎来到IT知识分享网。

一.  什么是Flowable

Flowable 是一个基于 Java 的开源工作流引擎,用于实现和管理业务流程。它提供了强大的工作流引擎和一套丰富的工具,使开发人员能够轻松地建模、部署、执行和监控各种类型的业务流程。Flowable 是 Activiti 工作流引擎的一个分支,诞生于 Activiti 项目与 Alfresco 合并后的分裂,继承了 Activiti 的大部分特性并在此基础上进行了进一步的开发和改进。

Flowable 的核心特点包括:

1. 灵活性和可扩展性:

Flowable 提供了灵活且可扩展的工作流引擎,可以根据不同的业务需求定制和扩展业务流程。

2. 图形化建模工具:

Flowable 提供了图形化的流程设计器,使业务分析师和开发人员能够通过拖放元素来建模和编辑业务流程,而不需要编写代码。

3. 规则引擎集成:

Flowable 可以与规则引擎(如 Drools)集成,使业务规则能够直接应用于业务流程中,从而实现更灵活的业务逻辑控制。

4. 支持多种执行环境:

Flowable 支持在多种执行环境中部署和执行流程,包括传统的 Java 应用程序、Spring 应用程序、Java EE 应用服务器等。

5. 全面的监控和管理功能:

Flowable 提供了监控和管理业务流程执行的工具和 API,可以实时跟踪流程实例的执行情况,并对流程进行管理和优化。

总的来说,Flowable 是一个功能强大且灵活的工作流引擎,为开发人员提供了一套完整的工具和 API,用于建模、部署、执行和管理业务流程,帮助企业实现业务流程的自动化和优化。

二.  Flowable的安装

1. 资源包: https://github.com/flowable/flowable-engine/releases

7.0版本后的无 ui

Flowable 基本用法

2.  对应的流程设计器 官网flowable-ui

Flowable 基本用法

3.我们把这个 flowable-ui.war 扔到Tomcat的webapps目录下然后启动Tomcat服务(tomcat9.exe)即可,启动之后会自动在webapps下创建flowable-ui文件夹,里面可配置此flowable的端口号和数据库连接信息

Flowable 基本用法

4.如果想要自动创建用到的数据库的表,可在此文件配置数据库连接信息(lib目录下需要放置数据库连接用到的jar包)

Flowable 基本用法
                  

Flowable 基本用法

 4.访问地址:http://localhost:8080/flowable-ui
 

三.  Flowable的基本使用

1. 创建 ProcessEngine(非Spring)环境

 1.1 添加依赖

        

1.2 获取流程引擎对象

Flowable 基本用法

方法执行成功后会在这三张表中记录相关的部署信息

  • act_ge_bytearray:记录流程定义的资源信息。xml和流程图的图片信息
  • act_re_deployment:流程部署表,记录这次的部署行为
  • act_re_procdef:流程定义表,记录这次部署动作对应的流程定义信息

databaseSchemaUpdate:用于设置流程引擎启动关闭时使用的数据库表结构控制策略

  • false (默认): 当引擎启动时,检查数据库表结构的版本是否匹配库文件版本。版本不匹配时抛出异常。
  • true: 构建引擎时,检查并在需要时更新表结构。表结构不存在则会创建。
  • create-drop: 引擎创建时创建表结构,并在引擎关闭时删除表结构

Flowable 基本用法

1.3 启动程序,自动创建表

Flowable 基本用法

四. SpringBoot 整合 Flowable

1.添加依赖

Flowable 基本用法

2.yml配置文件

Flowable 基本用法

然后直接启动,服务就会自动初始化数据库

Flowable 基本用法

3.部署流程

Flowable 基本用法

方法执行成功后会在这三张表中记录相关的部署信息

  • act_ge_bytearray:记录流程定义的资源信息。xml和流程图的图片信息
  • act_re_deployment:流程部署表,记录这次的部署行为
  • act_re_procdef:流程定义表,记录这次部署动作对应的流程定义信息

4.启动流程实例

Flowable 基本用法

启动流程需要通过RuntimeService来实现。同时在启动流程的时候有两个方法可以调用:

  • startProcessInstanceById: 对应于act_re_procdef 表中的id
  • startProcessInstanceByKey: 对应于act_re_procdef 表中的key

每启动一个流程实例那么就会在act_hi_procinst表中维护一条记录。然后在act_ru_execution会记录流程的分支

流程定义和流程实例的关系:

  • 流程定义:Java中的类
  • 流程实例:Java中的对象
  • 这时我们可以在act_ru_task表中看到对应的记录。act_ru_task记录的都是当前待办的记录信息

Flowable 基本用法

5.流程审批

Flowable 基本用法

找到了需要审批的任务。我们就可以根据 taskId来完成审批的操作         

Flowable 基本用法

五. Service服务

Flowable 基本用法

RepositoryService

  是activiti的资源管理类,提供了管理和控制流程发布包和流程定义的操作。使用工作流建模工具设计的业务流程图需要使用此service将流程定义文件的内容部署到计算机。

除了部署流程定义以外还可以:查询引擎中的发布包和流程定义。

  暂停或激活发布包,对应全部和特定流程定义。 暂停意味着它们不能再执行任何操作了,激活是对应的反向操作。获得多种资源,像是包含在发布包里的文件, 或引擎自动生成的流程图。

  获得流程定义的pojo版本, 可以用来通过java解析流程,而不必通过xml。

RuntimeService

  Activiti的流程运行管理类。可以从这个服务类中获取很多关于流程执行相关的信息

TaskService

  Activiti的任务管理类。可以从这个类中获取任务的信息。

HistoryService

  Flowable的历史管理类,可以查询历史信息,执行流程时,引擎会保存很多数据(根据配置),比如流程实例启动时间,任务的参与者, 完成任务的时间,每个流程实例的执行路径,等等。 这个服务主要通过查询功能来获得这些数据。

ManagementService

  Activiti的引擎管理类,提供了对Flowable 流程引擎的管理和维护功能,这些功能不在工作流驱动的应用程序中使用,主要用于 Flowable 系统的日常维护。

六. 数据库

流程部署成功后

方法执行成功后会在这三张表中记录相关的部署信息

  • act_ge_bytearray:记录流程定义的资源信息。xml和流程图的图片信息
  • act_re_deployment:流程部署表,记录这次的部署行为
  • act_re_procdef:流程定义表,记录这次部署动作对应的流程定义信息

启动流程实例后

act_ru_task表中看到对应的记录。act_ru_task记录的都是当前待办的记录信息

启动流程需要通过RuntimeService来实现。同时在启动流程的时候有两个方法可以调用:

  • startProcessInstanceById: 对应于act_re_procdef 表中的id
  • startProcessInstanceByKey: 对应于act_re_procdef 表中的key

还有一个要注意的:每启动一个流程实例那么就会在act_hi_procinst表中维护一条记录。然后在act_ru_execution会记录流程的分支

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/121072.html

(0)
上一篇 2025-10-25 19:15
下一篇 2025-10-25 19:20

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信