Flowable工作流引擎怎么用?Flowable工作流引擎入门教程

Flowable 是一个轻量级、高性能的 BPMN(业务流程建模符号) 和 CMMN(案例管理模型与符号) 引擎,它最初是从 Activiti 项目中衍生出来的,由 Activiti 的核心团队成员 Tom Baeyens 和 Joram Barrez 创建。

以下是关于 Flowable 的核心要点介绍:

【2024】最新版本Flowable详细讲解,赶快收藏起来吧
加载中
【2024】最新版本Flowable详细讲解,赶快收藏起来吧

核心特点

  • 轻量级与高性能:相比其前身 Activiti,Flowable 在性能上进行了大量优化,启动更快,内存占用更低。
  • 开源免费:采用 Apache 2.0 许可证,商业友好,无许可证费用。
  • 标准化支持:
    • BPMN 2.0:用于定义业务流程。
    • CMMN 1.1:用于案例管理(处理非结构化、不可预测的流程)。
    • DMN 1.3:用于决策模型和决策表。
  • 多数据库支持:支持 MySQL、PostgreSQL、Oracle、SQL Server、H2 等主流数据库。
  • 易于集成:提供 REST API、Java API,并可与 Spring Boot、Spring Cloud 等框架无缝集成。

主要模块

Flowable 不是一个单一的工具,而是一套模块化的引擎:

  • Flowable Engine:核心 BPMN 和 CMMN 引擎。
  • Flowable DMN Engine:用于执行决策表。
  • Flowable REST:提供标准的 RESTful API,便于前端或其他系统调用。
  • Flowable Modeler:基于 Web 的流程设计器(类似 Activiti Modeler),用于可视化创建和编辑流程定义。
  • Flowable Task:任务管理应用,用于查看和处理待办任务。
  • Flowable Admin:管理控制台,用于监控流程实例、用户、角色等。

与 Activiti 的关系

  • 起源:Flowable 是 Activiti 6.x 分支后的独立项目。
  • 区别:
    • Flowable 更新更频繁,社区活跃度高。
    • Flowable 对代码进行了重构,性能更好,bug 更少。
    • 两者 API 高度兼容,迁移成本较低。
    • Activiti 已被 Alfresco 收购,而 Flowable 由独立团队维护,更加中立。

典型应用场景

  • 企业工作流审批(如请假、报销、合同审批)。
  • 订单处理流程自动化。
  • 客户服务案例管理(CMMN)。
  • 复杂业务规则引擎(DMN)。

快速开始示例(Spring Boot + Flowable)

添加依赖(Maven)

<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-spring-boot-starter</artifactId>
    <version>6.8.0</version> <!-- 请使用最新版本 -->
</dependency>

配置 application.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/flowable_db?useSSL=false&serverTimezone=UTC
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver
flowable:
  async-executor-activate: false # 生产环境建议设为 true
  database-schema-update: true   # 自动更新数据库表结构

编写流程定义(BPMN XML)

创建一个 leave.bpmn20.xml 文件:

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
             targetNamespace="http://flowable.org/bpmn">
    <process id="leaveProcess" name="Leave Process">
        <startEvent id="start" name="Start"/>
        <userTask id="approveTask" name="Approve Leave" flowable:assignee="${approver}"/>
        <endEvent id="end" name="End"/>
        <sequenceFlow id="flow1" sourceRef="start" targetRef="approveTask"/>
        <sequenceFlow id="flow2" sourceRef="approveTask" targetRef="end"/>
    </process>
</definitions>

启动流程

@Service
public class LeaveService {
    @Autowired
    private RuntimeService runtimeService;
    public void startProcess(String employee, String approver) {
        Map<String, Object> variables = new HashMap<>();
        variables.put("approver", approver);
        variables.put("employee", employee);
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(
            "leaveProcess", 
            "leave-" + System.currentTimeMillis(), 
            variables
        );
        System.out.println("Process started with ID: " + processInstance.getId());
    }
}

官方资源

如果你有关于 Flowable 的具体问题(如如何配置事务、如何处理异常、如何集成前端等),欢迎继续提问!

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://test.idctop.com/article/477494.html

赞 (0)
运营人员如何向上级提GEO优化2026?百度SEO长尾词优化技巧
上一篇 2026年7月10日 01:45
Go语言Gin框架Web开发难吗?Gin框架入门教程
下一篇 2026年7月10日 01:47

相关推荐

  • IIS服务怎么修改已绑定的域名?,怎么制作搜索网站

    在IIS上制作搜索网站并修改已绑定域名,核心是掌握网站创建和绑定配置,通过IIS管理器或appcmd命令可轻松修改域名,无需重建网站,从而快速迁移或更新搜索站点,IIS怎么搭建搜索网站:从安装到上线制作搜索网站的第一步是搭建IIS环境,无论你打算使用ASP.NET、PHP还是纯静态页面,都需要先创建网站并绑定域……

    2026年7月31日
    400
  • fontsize方法怎么用?如何调整字体大小

    这段文字的大小是父元素的 1.2 倍,“`Java (Swing / AWT)在 Java 的图形界面库中,通常通过 Font 类来设置字体大小,而不是直接调用 fontsize 方法,import java.awt.Font;import javax.swing.JLabel;JLabel label……

    2026年7月10日
    11300
  • fis3引入js报错怎么办?fis3如何正确引入js文件

    Fis3引入JS的核心在于通过fis3.conf配置文件中的module、deps属性以及fis3-postpackager-simple打包插件,实现依赖的自动解析与合并,从而解决模块化开发中的加载顺序和冗余问题,在2026年的前端工程化语境下,虽然Vue、React等框架已占据主流,但在遗留系统维护、传统企……

    2026年7月10日
    18900
  • 惠普本地AI大模型怎么用?惠普本地AI大模型部署教程

    惠普本地AI大模型通过私有化部署方案,在保障数据绝对安全的前提下,显著降低了企业长期算力成本,是2026年构建企业级智能中枢的首选路径,惠普本地AI大模型的核心优势解析在2026年的商业环境中,数据隐私与合规性已成为企业数字化转型的红线,云端大模型虽然强大,但敏感数据出境或上云的风险让许多金融、医疗及高端制造行……

    2026年6月14日
    3200
  • 服务器10m带宽够不够用?10m带宽能承载多少并发

    对于大多数个人博客、小型企业官网或轻量级应用,10M带宽完全够用,但需配合静态资源缓存和CDN加速;若涉及高并发视频流或大文件下载,则需升级带宽或采用混合架构,在云计算日益普及的今天,带宽选择往往是新手站长和技术负责人最容易踩坑的环节,很多人误以为带宽越大越好,结果导致服务器成本虚高;也有人为了省钱选了低配,结……

    2026年7月3日
    13010
  • 服务器本地托管靠谱吗?服务器托管费用及注意事项

    服务器本地托管并非简单的把机器搬回家,而是通过物理隔离实现数据主权绝对掌控与极低延迟访问,适合对隐私敏感或需高频交互的高性能业务场景,本地托管的核心价值与适用场景很多人对服务器托管存在误解,认为这只是把硬件放在自家机房,它涉及网络架构、电力保障和安全合规的系统工程,对于初创团队或特定行业用户,选择本地部署往往能……

    2026年7月10日
    2300
  • 服务器生产厂家如何选择?,哪家性价比高?

    选择服务器生产厂家,关键在于将业务负载、运维能力和预算三者结合匹配,不存在通吃所有场景的品牌,唯有适合自己的才是明智之选,不论是传统行业还是新兴互联网公司,服务器都是基础设施的核心,近年来,服务器生产厂家阵营逐渐分化为国际派和国产派,前者在高端市场和全球服务上积累深厚,后者在定制响应和信创合规上后发优势明显,下……

    AI资讯 2026年7月17日
    2200
  • 云手机真的能打电话和发短信吗?,怎么设置

    云手机可以打电话和发短信,但通常需要借助网络通信方案,例如通过IPA(IP Application)应用或第三方服务来实现运营商级通话与短信功能,云手机到底能不能打电话发短信云手机本质上是一台运行在云端的安卓设备,没有物理SIM卡槽,也不直接接入运营商基站,它无法像普通手机那样自动获取手机号并收发运营商短信或拨……

    2026年8月21日
    700
  • iot规则引擎的工作原理是什么,规则引擎怎么配置?

    IoT规则引擎是物联网系统的决策中枢,它能把“如果设备数据满足某个条件,就自动执行某个动作”这件事变得可配置、可运维,省去大量人工盯盘和写死逻辑的麻烦,什么是IoT规则引擎?它和传统规则引擎有什么区别?规则引擎这个概念其实早就存在,传统IT领域里的风控、营销、计费系统都在用,但IoT规则引擎的独特之处在于,它面……

    2026年8月7日
    500
  • 服务器地址变了怎么办?服务器地址变更如何重新连接

    服务器地址发生变更是一个常见的运维或开发场景,通常涉及配置更新、服务迁移或网络策略调整,为了帮助您妥善处理这一变更,以下是分步骤的建议和注意事项:提前通知与沟通内部通知:提前告知开发团队、运维团队及相关业务方服务器地址变更的时间表、影响范围及回滚计划,外部通知:如果涉及外部客户或合作伙伴(如 API 接口地址变……

    2026年7月10日
    8700

发表回复

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