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

相关推荐

  • 服务器和客户端时间不同步怎么办?时间同步设置方法

    服务器时间与客户端时间不同步会导致认证失败、日志混乱及数据不一致,解决核心在于在服务器端部署NTP服务并配置客户端自动同步,时间同步看似是后台运维的细枝末节,实则是分布式系统稳定运行的基石,想象一下,如果银行转账的发起时间与入账时间对不上,或者分布式数据库中的事务顺序错乱,后果将是灾难性的,在2026年的今天……

    2026年7月4日
    17610
  • 中国AI热度为何持续飙升?国内大模型最新发展趋势

    2026年中国AI大模型热度已从“概念炒作”转向“垂直落地”,核心趋势是中小企业通过低成本私有化部署实现降本增效,而非盲目追求通用大模型的参数竞赛,中国AI大模型市场现状与核心驱动力进入2026年,国内人工智能领域早已褪去早期的浮躁,曾经铺天盖地的“百模大战”宣传声量逐渐平息,取而代之的是务实的技术深耕,业内专……

    2026年6月15日
    6100
  • ipv6网站制作_配置了IPv6双栈,为什么无法访问IPv6网站?

    配置了IPv6双栈,为什么无法访问IPv6网站?配置了IPv6双栈却打不开IPv6网站,绝大多数情况下不是“没配好”,而是链路中某一环静默失败了,最直接的排查方法是按“网络接口→路由器→运营商→DNS→防火墙”这条链路由内到外逐层验证,不少朋友反映,明明服务器或电脑已经开启了IPv6,甚至能拿到IPv6地址,但……

    2026年8月14日
    800
  • 服务器禁止IP连接网络连接怎么办?是什么原因

    当服务器提示“禁止IP连接网络连接”时,核心原因在于防火墙规则、IP黑名单或网络配置错误拦截了该IP的访问,应对方法包括检查并修改防火墙策略、移除黑名单条目以及重置网络配置,服务器禁止连接网络连接是什么原因导致服务器禁止某个IP连接网络的原因主要有三类:防火墙规则误拦截、IP黑名单触发以及网络连接数限制,云平台……

    2026年7月22日
    200
  • 工业ai大模型实训室是什么?工业ai大模型实训室建设方案

    工业AI大模型实训室通过构建“数据-算法-场景”闭环,解决传统教学与产业需求脱节痛点,是当前职业教育与高校工程实践的核心基础设施,为什么传统实训室难以支撑AI教学?过去,很多学校或企业建立的AI实验室,往往只停留在“跑通代码”的层面,学生对着Jupyter Notebook敲命令,或者在公开数据集上训练一个简单……

    2026年6月12日
    3200
  • 发优惠券通知的网站有哪些,哪个平台更靠谱?

    选对发优惠券通知的网站,关键在于通知是否及时触达、能否精准细分用户,以及成本是否可控,目前市面上成熟的平台能帮你实现自动化营销,提升复购率,发优惠券通知的网站哪个好?评估标准选平台不能只看价格,几项硬指标直接决定最终效果,行业共识认为,一套合格的发优惠券通知系统至少要在以下四个方面达标,通知到达率是核心指标短信……

    2026年7月27日
    200
  • IDC和CDN的未来前景如何?,同步问题怎么解决?

    IDC和CDN的未来前景依然强劲,但正从传统加速向边缘计算和云原生演进;保证CDN与源站同步的核心在于合理配置缓存刷新策略与智能回源机制,近几年,随着直播、在线教育、游戏出海等场景爆发,IDC(互联网数据中心)和CDN(内容分发网络)的角色发生了根本性变化,它们不再只是“存放数据”和“加速访问”的工具,而是成为……

    2026年8月2日
    500
  • 如何配置IP和主机名映射,具体步骤有哪些?

    配置IP与主机名称映射,本质是通过本地hosts文件或DNS服务器,将IP地址与主机名绑定,实现主机间通过名称通信,避免记忆复杂数字串,为什么需要配置IP与主机名映射在管理多台服务器或搭建本地开发环境时,直接使用IP地址虽然可行,但维护成本高,主机名映射将IP地址与易读的名称关联起来,让团队协作和日常操作更高效……

    2026年8月17日
    500
  • iOS系统如何测试app压力?,NetEco有iOS版本吗?

    iOS系统上测试App压力需要借助Xcode、Instruments以及第三方工具,而NetEco APP确实有iOS版本,支持在iPhone和iPad上管理数据中心基础设施,无论你是独立开发者还是企业运维人员,了解这两方面的信息都能让你在工作中更得心应手,本文将从压力测试工具到NetEco APP的iOS版功……

    2026年8月20日
    400
  • 网站服务器403错误怎么解决,常见原因有哪些

    服务器403错误怎么解决?三步排查法服务器403错误本质上就是网站拒绝了你的访问请求,但绝大多数情况都可以通过检查权限配置、修改文件拥有者或清理缓存等步骤快速解决,服务器403什么原因?常见触发场景403错误全称HTTP 403 Forbidden,表示服务器理解请求但拒绝执行,引发这个问题的原因比较集中,主要……

    2026年7月22日
    1600

发表回复

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