跟随官方文档来开始一个简单的Flowable demo
什么是Flowable?
Flowable 是用 Java 编写的轻量级业务流程引擎。Flowable 流程引擎允许您部署 BPMN2.0 流程定义(用于定义流程的行业 XML 标准),创建这些流程定义的流程实例,运行查询,访问活动或历史流程实例以及相关数据,以及更多其他功能。
当将 Flowable 添加到您的应用程序/服务/体系结构中时,它非常灵活。 您可以通过包含 Flowable 库将引擎嵌入到应用程序或服务中,该库可以作为 JAR 使用。 由于它是一个 JAR ,因此您可以轻松地将其添加到任何 Java 环境中:Java SE; Servlet 容器,例如 Tomcat 或 Jetty,Spring; Java EE服务器,例如 JBoss 或 WebSphere,等等。 或者,您可以使用 Flowable REST API通过HTTP进行通信。 还有一些 Flowable 应用程序(Flowable Modeler,Flowable Admin,Flowable IDM和Flowable Task),它们提供了用于处理流程和任务的现成示例UI。
Flowable 与 Activiti
Flowable 是Activiti(Alfresco的注册商标)的一个分支。
Demo 示例
构建的示例是一个简单的假日请求流程:
- 员工请求放假 n 天;
- 管理员允许或者拒绝;
- 模仿这个流程,若管理员允许,则发送批准文件给系统;若拒绝,则发送拒绝邮件给该名员工。
流程图
创建一个Spring Boot项目
项目命名为 FlowableDemo 。
- Flowable 流程引擎,这将使我们能够建 ProcessEngine 对象并访问 Flowable API;
- 内存数据,因为 Flowable 引擎在运行流程实例时需要一个数据库来存储执行和历史数据。
修改 pom.xml 文件,添加如下依赖:
1 | <dependency> |
resources下创建log4j.properties
1 | DEBUG, CA = |
resources下创建holiday-request.bpmn20.xml
1 |
|
创建HolidayRequst.java
1 | public class HolidayRequest { |
创建CallExternalSystemDelegate.java
路由到允许请求时执行的活动。
1 | public class CallExternalSystemDelegate implements JavaDelegate { |
创建SendRejectionMail.java
路由到拒绝请求时执行的活动。
1 | public class SendRejectionMail implements JavaDelegate { |
项目地址: https://github.com/cenganhui/FlowableDemo
参考文档: https://flowable.com/open-source/docs/bpmn/ch02-GettingStarted/