Flowable工作流简介(二)

1、简介

Flowable提供了一个组高效的核心开源业务流程引擎,为开发人员,系统管理员和业务用户提供工作流和业务流程管理(BPM)平台。全部用Java编写,并且基于Apache 2.0许可的开源,代码在社区维护。

其核心是一个快速,经过试验和测试的动态BPMN流程引擎,附带DMN决策表和CMMN Case管理引擎.

2、Flowable相关知识

一、关键对象

Deployment:流程部署对象,部署一个流程时创建。

 ProcessDefinitions:流程定义,部署成功后自动创建。

 ProcessInstances:流程实例,启动流程时创建。

 Task:任务,在Activiti中的Task仅指有角色参与的任务,即定义中的UserTask。

 Execution:执行计划,流程实例和流程执行中的所有节点都是Execution,如UserTask、ServiceTask等。

二、五大核心引擎

三、服务接口

ProcessEngine:流程引擎的抽象,通过它我们可以获得我们需要的一切服务。

 RepositoryService:Activiti中每一个不同版本的业务流程的定义都需要使用一些定义文件,部署文件和支持数据(例如BPMN2.0 XML文件,表单定义文件,流程定义图像文件等),这些文件都存储在Activiti内建的Repository中。RepositoryService提供对 repository的存取服务。

 RuntimeService:在Activiti中,每当一个流程定义被启动一次之后,都会生成一个相应的流程对象实例。RuntimeService提供了启动流程、查询流程实例、设置获取流程实例变量等功能。此外它还提供了对流程部署,流程定义和流程实例的存取服务。

 TaskService: 在Activiti中业务流程定义中的每一个执行节点被称为一个Task,对流程中的数据存取,状态变更等操作均需要在Task中完成。TaskService提供了对用户Task 和Form相关的操作。它提供了运行时任务查询、领取、完成、删除以及变量设置等功能。

 IdentityService: Activiti中内置了用户以及组管理的功能,必须使用这些用户和组的信息才能获取到相应的Task。IdentityService提供了对Activiti 系统中的用户和组的管理功能。

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

 HistoryService: HistoryService用于获取正在运行或已经完成的流程实例的信息,与RuntimeService中获取的流程信息不同,历史信息包含已经持久化存储的永久信息,并已经被针对查询优化。

四、流程示例

请假流程示例

 

  • ·  启动流程需要提供一些信息,例如雇员名字、请假时长以及说明。
  • ·  左侧的圆圈叫做启动事件(start event)。这是一个流程实例的起点。
  • ·  第一个矩形是一个用户任务(user task)。这是流程中人类用户操作的步骤。在这个例子中,经理需要批准或驳回申请
  • ·  取决于经理的决定,排他网关(exclusive gateway) (带叉的菱形)会将流程实例路由至批准或驳回路径。
  • ·  如果批准,则需要将申请注册至某个外部系统,并跟着另一个用户任务,将经理的决定通知给申请人。
  • ·  如果驳回,则为雇员发送一封邮件通知他。

 

五、SpringBoot集成Flowable

 1、添加Flowable依赖

 <dependency>

    <groupId>org.flowable</groupId>

    <artifactId>flowable-spring-boot-starter</artifactId>

    <version>${flowable.version}</version>

 </dependency>

2、添加数据库依赖(Flowable需要数据库来保存数据)

 <dependency>

    <groupId>mysql</groupId>

    <artifactId>mysql-connector-java</artifactId>

    <version>8.0.13</version>

 </dependency>

配置文件添加数据源配置。

3、添加流程文件

resources/processes目录下的任何BPMN 2.0流程定义都会被自动部署。在resources下创建processes目录,并在其中创建示例流程定义(命名为one-task-process.bpmn20.xml)。.bpmn20.xml是文件后缀名

4、代码中应用

1)由ProcessEngineConfiguration获取各service;

2)在serviceImpl中使用具体service调用api。

 

posted @ 2024-05-21 18:50  勇敢-的心  阅读(132)  评论(0编辑  收藏  举报