4、Flowable UI 详解:作用、原理与 Spring Boot 3 应用联动机制

小白学流程引擎-FLowable(四) —Flowable UI应用程序详解 环境版本:Flowable UI 6.7.2 Flowable Modeler用于建模BPMN流程、cmmn案例模型,DMN决策模型、form表单定义,以及创建应用定义。 这里讲解BPMN流程是怎么样绘制,其他功能后续讲解。BPMN编辑器分为4个部分:画板(Palette): 用于设计流程模型的所有 阅读详情

一、什么是 Flowable UI?

Flowable UI 是 Flowable 官方提供的一套 Web 管理界面套件,用于可视化地设计、部署、监控和操作业务流程。它不是一个独立的工作流引擎,而是基于 Flowable 引擎构建的前端应用集合。

🔍 本质:
Flowable UI = Flowable 引擎的“操作面板” + “设计工具” + “监控中心”


二、Flowable UI 的核心组成

Flowable UI 包含 4 个独立但协同工作的 Web 应用,打包在同一个 Docker 镜像或 WAR 文件中:

应用路径作用
IDM(身份管理应用程序)/flowable-idm用户、组、权限管理(身份认证中心)
Modeler(建模器应用程序)/flowable-modeler图形化设计 BPMN/DMN/CMMN 流程模型
Task(任务应用程序)/flowable-task用户任务中心:查看、办理待办任务
Admin(管理员应用程序)/flowable-admin系统监控与管理:查看流程实例、作业、数据库等

💡 默认访问地址:http://localhost:8080/flowable-ui 用户名和密码:admin/test


三、Flowable UI 的核心作用

作用说明
✅ 零代码流程设计业务人员可通过拖拽方式设计 BPMN 流程图,无需开发介入
✅ 集中式任务处理所有用户可在 Task 应用中统一处理待办任务
✅ 流程全生命周期管理从设计 → 部署 → 执行 → 监控 → 优化
✅ 用户与权限管理通过 IDM 统一管理用户、角色、权限
✅ 实时监控与审计Admin 应用提供流程实例跟踪、性能分析、异常告警
✅ 降低集成成本开箱即用,无需自行开发流程设计器和任务中心

四、Flowable UI 的工作原理

1. 架构图

+------------------+       +---------------------+
|   Flowable UI    |<----->|  Flowable REST API  |
| (Modeler/Task等) | HTTP  | (flowable-rest 模块)|
+------------------+       +----------+----------+
                                      |
                                      v
                        +-----------------------------+
                        |    Flowable 核心引擎        |
                        | (RuntimeService, TaskService等)|
                        +-----------------------------+
                                      |
                                      v
                        +-----------------------------+
                        |         数据库              |
                        | (ACT_RE_*, ACT_RU_*, ACT_HI_*)|
                        +-----------------------------+

2. 关键机制说明

(1) 依赖 Flowable REST API
  • Flowable UI 不直接调用 Java API,而是通过 HTTP 调用 Flowable REST 服务(flowable-rest 模块)
  • 所有操作(如启动流程、完成任务)都转化为 REST 请求
  • REST API 再调用底层的 RuntimeService、TaskService 等
(2) 共享同一数据库
  • Flowable UI 和你的 Spring Boot 应用必须连接同一个数据库
  • 所有流程定义、实例、任务数据都存储在 ACT_* 表中
  • UI 和应用通过数据库实现数据联动
(3) 身份认证集成
  • 默认使用 内置的 IDM 用户体系
  • 你的 Spring Boot 应用可通过以下方式与 IDM 联动:
    • 方式1:共用 IDM 数据库表(ACT_ID_USER, ACT_ID_GROUP)
    • 方式2:集成外部认证系统(如 LDAP、OAuth2)

五、Flowable UI 与 Spring Boot 3 应用的联动机制

🎯 核心问题:
“我的 Spring Boot 3 应用集成了 Flowable,Flowable UI 能看到我应用中的流程吗?”

✅ 答案:能!但必须满足以下条件

条件说明
🔗 共用同一个数据库Spring Boot 应用和 Flowable UI 必须连接同一个数据库实例
📦 使用相同的 Flowable 表结构表前缀必须一致(默认 ACT_)
🔄 流程定义部署方式兼容无论是通过 UI 部署,还是通过 Spring Boot 代码部署,数据都存入同一张表

联动场景详解

场景 1:在 Spring Boot 中启动流程 → 在 Flowable UI 中查看/操作
  1. Spring Boot 应用调用 runtimeService.startProcessInstanceByKey("myProcess")
  2. 流程实例数据写入数据库 ACT_RU_EXECUTION、ACT_RU_TASK 等表
  3. 用户登录 Flowable Task(/flowable-task)
  4. Task 应用查询 ACT_RU_TASK 表,显示该用户的待办任务
  5. 用户在 UI 中点击“完成任务”,Task 应用调用 REST API → 更新数据库
  6. Spring Boot 应用可通过 HistoryService 查询到任务已完成

✅ 完全双向联动:代码启动的流程,UI 可操作;UI 启动的流程,代码可监听。


场景 2:在 Flowable Modeler 中设计流程 → 在 Spring Boot 中使用
  1. 在 Modeler 中设计 BPMN 流程并点击“部署”
  2. 流程定义(BPMN XML)存入 ACT_RE_PROCDEF 和 ACT_GE_BYTEARRAY 表
  3. Spring Boot 应用调用 repositoryService.createProcessDefinitionQuery() 可查到该流程
  4. 通过 runtimeService.startProcessInstanceByKey("myNewProcess") 启动

✅ 设计与执行分离:业务人员设计流程,开发人员专注业务逻辑。


六、在 Spring Boot 3 项目中与 Flowable UI 联动的实践方案

方案 A:独立部署 Flowable UI(推荐)

适用于生产环境,职责分离清晰

步骤 1:部署 Flowable UI(使用 Podman / Docker)
# 启动 PostgreSQL(与 Spring Boot 应用共用)
podman run -d --name flowable-db \
  -e POSTGRES_DB=flowable \
  -e POSTGRES_USER=flowable \
  -e POSTGRES_PASSWORD=flowable \
  -p 5432:5432 postgres:latest

# 启动 Flowable UI
podman run -d --name flowable-ui \
  -p 8080:8080 \
  -e SPRING_DATASOURCE_URL=jdbc:postgresql://host.containers.internal:5432/flowable \
  -e SPRING_DATASOURCE_USERNAME=flowable \
  -e SPRING_DATASOURCE_PASSWORD=flowable \
  flowable/flowable-ui:latest
步骤 2:Spring Boot 3 应用配置(连接同一数据库)
# application.yml
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/flowable  # 与 flowable-ui 连接到相同数据库
    username: flowable
    password: flowable

flowable:
  # 关键:禁用自动建表!避免与 UI 冲突
  database-schema-update: false
  # 禁用自动部署(流程由 UI 管理)
  check-process-definitions: false

✅ 优势:

  • UI 负责流程设计与任务处理
  • Spring Boot 负责业务逻辑集成(如调用外部系统)
  • 数据库为唯一真相源

方案 B:将 Flowable REST 集成到 Spring Boot 应用中

适用于轻量级场景,减少部署组件

步骤 1:添加 Flowable REST 依赖
<dependency>
    <groupId>org.flowable</groupId>
    <artifactId>flowable-spring-boot-starter-rest</artifactId>
    <version>7.2.0</version>
</dependency>
步骤 2:启用 REST API
// 启用 Flowable REST API(自动注册 /flowable-rest 路径)
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
步骤 3:访问内置 UI(需额外配置)

⚠️ 注意:
flowable-spring-boot-starter-rest 不包含 Modeler/Task 等前端页面!
你仍需单独部署 Flowable UI,或自行构建前端。


七、关键配置说明(确保联动成功)

1. 数据库一致性(最重要!)

配置项Spring Boot 应用Flowable UI
数据库 URLjdbc:.../flowablejdbc:.../flowable
表前缀默认 ACT_默认 ACT_
数据库用户flowableflowable

2. 流程部署策略

场景Spring Boot 配置Flowable UI 操作
流程由 UI 设计check-process-definitions: false在 Modeler 中部署
流程由代码管理check-process-definitions: true不要在 UI 中部署同名流程

3. 用户体系集成

方式 1:共用 Flowable IDM 表
  • Spring Boot 应用直接查询 ACT_ID_USER 表做认证
  • 适合简单场景
方式 2:外部认证 + 同步用户
// 在 Spring Security 中集成
@Bean
public UserDetailsService userDetailsService(IdentityService identityService) {
    return username -> {
        User user = identityService.createUserQuery().userId(username).singleResult();
        if (user == null) throw new UsernameNotFoundException(username);
        return org.springframework.security.core.userdetails.User
                .withUsername(username)
                .password("{noop}dummy") // Flowable UI 不校验密码
                .roles("USER")
                .build();
    };
}

八、常见问题与解决方案

❓ Q1:为什么 Flowable UI 看不到 Spring Boot 启动的流程?

  • 原因:数据库不一致(最常见!)

  • 检查:

    -- 在 Spring Boot 连接的数据库中执行
    SELECT * FROM ACT_RU_TASK;
    -- 在 Flowable UI 连接的数据库中执行
    SELECT * FROM ACT_RU_TASK;
    
  • 解决:确保两者连接同一个数据库实例


❓ Q2:如何在 Spring Boot 中监听 UI 启动的流程?

@Component
public class ProcessEventListener {

    @EventListener
    public void onProcessStarted(FlowableEngineEvent event) {
        if (event.getType() == FlowableEngineEventType.PROCESS_STARTED) {
            // 获取流程实例
            ProcessInstance processInstance = (ProcessInstance) event.getData();
            System.out.println("流程启动: " + processInstance.getProcessDefinitionId());
        }
    }
}

❓ Q3:能否禁用 Flowable UI 的某些模块?

  • 可以!通过环境变量控制:

    # 只启用 Modeler 和 Task
    -e FLOWABLE_UI_APPS=MODELER,TASK
    
  • 支持的值:IDM, MODELER, TASK, ADMIN


九、总结:联动核心原则

原则说明
🗃️ 单一数据源Spring Boot 应用与 Flowable UI 必须共用同一个数据库
🔌 通过 REST 通信UI 通过 HTTP 调用 Flowable REST API 操作引擎
🧩 职责分离UI 负责“人机交互”,Spring Boot 负责“系统集成”
🔄 双向同步任何一方的操作都会实时反映到另一方

💡 最佳实践:

  • 开发阶段:使用独立 Flowable UI 容器 + Spring Boot 应用
  • 生产环境:Flowable UI 作为独立服务部署,Spring Boot 应用通过 REST API 与之交互(或共用数据库)

通过以上机制,Flowable UI 与你的 Spring Boot 3 应用将形成一个完整的流程治理闭环,既满足业务人员的可视化需求,又保留开发者的扩展能力。

二.Flowable自带Demo(Flowable-UI)超详细体验 如果需要通过该组件的值做判断或者展示,需要将id设置成自己业务相关内容,如流程中可能通过请假天数的值来判断走哪个流程,这个时候就可用${num>3}来做判断保存表单,创建完毕支持创建和导入已有流程。 阅读详情

相关推荐

Flowable-UI 入门指南

👉 探索更多关于Flowable的知识,访问Flowable中文文档,并加入我们的交流群,一起学习 Flowable 技术、交流相关技能!

没事学点AI小知识 1661

Flowable工作流之Flowable UI画工作流程图

Flowable是一个用Java编写的轻量级业务流程引擎。Flowable流程引擎允许您部署BPMN 2.0流程定义(用于定义流程的行业XML标准)、创建这些流程定义的流程实例、运行查询、访问活动或历史流程实例和相关数据Flowable在将其添加到应用程序、服务、体系结构时非常灵活。您可以将引擎嵌入到您的应用程序或服务中,方法是包含Flowable库,该库作为JAR提供。因为它是一个JAR,所以可以很容易地将它添加到任何Javajavase;servlet容器,如Tomcat或javaee服务器,如。

桐花思雨 1万+

flowable-ui的简单使用

目录前言一、环境二、使用 前言 记录一下flowable-ui的简单使用流程。 一、环境 1、下载 下载地址:https://github.com/flowable/flowable-engine/releases/tag/flowable-6.7.2 2、启动tomcat 将下载的 flowable-6.7.2.zip 解压后,将war包放入tomcat的webapps目录下,然后启动tomcat 二、使用 1、登录 启动完成以后,访问页面 http://192.168.100.73:8080/fl

码易的博客 3507

Flowable-UI体验及安装详解

绘制完成后,点击左上角的勾进行检查,查看是流程图绘制是否正确,有的时候流程节点之间的连线起点和终点可能并没有放入正确的位置,肉眼不容易看到,点击左上角的勾可以帮我们检查一下。下边没有什么需要配置的,我就设置了一下版本号。点击流程图就可以查看流程图的详情,点击右上角的下载按钮,就可以下载这个流程图对应的 XML 文件了,将 XML 文件拷贝到我们的项目中,就可以开始开发啦。以访问 idm 应用为例,在设置的时候,我们可以直接设置用户,也可以设置用户组,设置用户组的话,则这个组中的所有用户都能访问这个菜单项。

zelxnxy的博客 2802

基于RuoYi的公文收文管理系统设计与实现

公文收文管理系统是OA办公自动化系统的核心模块,采用事件驱动架构实现发文到收文的自动化流转。系统基于Spring Boot和Vue3构建前后端分离架构,通过Flowable流程引擎实现多级审批。关键技术包括状态机设计确保业务流程可控、乐观锁机制解决并发签收冲突、RBAC模型实现精细化权限控制。在政务办公场景中,此类系统能显著提升公文处理效率,确保传递过程可追溯。本文以RuoYi框架为例,详解如何实现发文收文联动、签收认领等核心功能,为构建高效公文管理系统提供实践参考。

weixin_42540248的博客 271

Flowable第一篇、快速上手(Flowable安装、配置、集成)

Flowable是一个轻量级、高效可扩展的工作流和业务流程管理(BPM)引擎,支持在Java应用程序中实现复杂的工作流自动化。Flowable最初是作为Activiti项目的一个分支发展而来的,但它现在已经成为一个独立的开源项目,并在企业级应用中得到了广泛使用

Du_XiaoNan的博客 1万+

Flowable-UI 详解

Flowable-UI 是 Flowable 官方提供的可视化流程套件,包含流程设计器(Modeler)、任务应用(Task App)和管理控制台(Admin App)三大核心模块,支持流程的建模、调试、监控和用户交互。采用 Spring Boot 微服务架构,集成 AngularJS 前端,提供拖拽式 BPMN 建模、任务处理、流程监控等功能。支持多种部署方式(All-in-One、Docker、Kubernetes)和企业级扩展(OAuth 2.0 单点登录、自定义表单控件)。适用于开发和生产环境,提供

csdn_tom_168的博客 2828

flowable-6.7(二)官方flowable-ui启动

flowable-6.7(二)官方flowable-ui启动 1.下载(注意不是下载源码) 官网下载:https://www.flowable.com/open-source-download github下载:https://github.com/flowable/flowable-engine/releases 2.解压 解压后在wars文件夹下会看到俩个war包flowable-rest.war和flowable-ui.war,flowable-rest.war是用于rest api此处不使用 p

你总是想知道的博客 7497

Flowable UI界面

⾝份管理就是对用户、用户组的管理,可以理解为管理系统中的角色、用户、菜单等功能。我们点进到⾝份管理⻚⾯之后,可以看到如下内容:左侧可以通过。在设置的时候,我们可以直接设置⽤户,也可以设置⽤户组,设置⽤户组的话,则这个组中的所有⽤⼾都能访问这个菜单项。注意:源码启动的方式可能会因为网络等原因导致maven依赖下载失败。,切换到6.7.2版本的分支。按钮创建一个新用户,右侧默认只有一个 admin 用户。直接通过war包启动,下载指定版本的zip文件并解压。,默认登录账号:admin,密码:test。

哟,你又在偷偷写bug! 2058

【第二十一篇】Flowable之SpringBoot集成FlowableUI

FlowableUI集成到SpringBoot lecture:波波老师 一、常见的整合方式   在Flowable工作流开发中大家最为头疼的应该就是流程设计器的整合了。常见的整合方式有两种 在实际项目中集成FlowableUI这个官方的设计器 通过开源的组件比如LogicFLow或者EasyFlow等来处理或者通过bpmn.js自己来搞定流程设计   本文就给大家介绍下在SpringBoot项目中如何的来集成FlowableUI设计器。 二、FlowableUI集成 1.FlowableUI简单

波波烤鸭的博客 1万+

VTK实战笔记(1)在win11搭建VTK-9.4.2 + qt5.15.2 + VS2019_x64开发环境

Visual Studio 2019 + qt5.15.2 + vtk9.4.2

心向阳光,斗志昂扬! 972

工作流Flowable入门教程:flowableUI的安装使用,RepositoryService、RuntimeService、TaskService、HistoryService的使用

我们要构建的流程是一个非常简单的请假流程。Flowable引擎需要流程定义为BPMN 2.0格式,这是一个业界广泛接受的XML标准。在Flowable术语中,我们将其称为一个流程定义(process definition)。一个流程定义可以启动多个流程实例(process instance)。流程定义可以看做是重复执行流程的蓝图。在这个例子中,流程定义定义了请假的各个步骤,而一个流程实例对应某个雇员提出的一个请假申请。

weixin_41677422的博客 5112

一步一步搭建S32K14x的AutoSar项目----S32DS 代码工程的搭建

一步一步搭建S32K14X的AutoSar项目----S32DS代码工程的搭建

wo580231的博客 3487

flowable-ui

flowable-ui主要用于画流程图

北辰 1446

独立游戏开发者的新武器:实测腾讯混元3D自动绑骨,搭配Mixamo让角色动画制作效率翻倍

本文实测腾讯混元3D自动绑骨功能与Mixamo动画库的协同使用,显著提升独立游戏开发者的角色动画制作效率。通过解决卡通角色绑骨偏差、优化骨骼权重及动画状态机配置,使原本两周的流程缩短至三天,并分享Unity中的性能优化与版权合规要点。

weixin_42662605的博客 488

浮点数加法器设计

一.设计内容及其要求 内容 根据浮点数的运算规则和IEEE754标准,实现浮点数的加法运算器。 要求: 浮点数格式:符号位1位,阶码8位,尾数23位 要求该实验能完整的体现浮点数的运算的五个步骤:对阶、尾数求和、规格化、舍入(要求使用对偶舍入)、溢出判断。 二.基本要素 浮点数 浮点数即实数,实数是所有有理数和无理数的集合。它之所以被称作浮点数,是因为小数点在数中的位置并不是固定的。一个浮点数值分为两部分存储:数值以及小数点在数值中的位置。 计算机中的浮点运算的计算结果一般是不确定的,一块芯片的浮点运算

Phoenix_ZengHao的博客 1万+

Flowable——UI应用

下载Tomcat:https://tomcat.apache.org/download-80.cgi 官网下载后解压缩到非中文目录即可,然后是下载FlowableUI的文件,在Flowable6.6之后把FlowableUI中提供的四个功能合并到了一起。每个应用的WAR文件可以部署在相同的servlet容器(如Apache Tomcat)中,也可以部署在不同的容器中。启动成功后,在浏览器中访问 http://localhost:8080/flowable-ui, 默认的账号密码是 admin/test。

吴声子夜歌的博客 1210

睿尔曼复合机器人之底盘操作流程

控制键”按下后,可在键盘上通过‘i’(向前),‘k’(向后),‘j’(向左旋转),‘l’(向右旋转)四个按键对底盘进行运动控制。选中禁⾏线功能后,使⽤⿏标在界⾯内点击选择起点,继续在其他地⽅点击,两点之间会连成⼀条线,可以进⾏多次连续点击,形成连续线条。4)扫图完成后,软件会重新启动,返回到监控页面,点击“激光”可看到当前机器激光扫描的实时数据,在页面上表现为红色边界线,点击菜单栏“控制”键使底盘在一定范围内运动,扫描到尽可能多的边界线,可发现与实际地图的黑色边界线不同,需要进行手动校正。

realman_Rop的博客 1472

SpringBoot 集成Flowable设计器(Flowable-ui)

公司使用前后端项目分离,前端使用bpmn插件生成bpmn xml文件,后端解析处理数据。今天主要介绍后端集成flowable设计器的过程中遇到的问题。 如需了解flowable框架集成请参考文档 Flowable BPMN 用户手册 (v 6.3.0) 为什么需要自己集成Flowable设计器?因为SpringBoot提供的依赖只集成Flowable引擎模块,没有集成modeler模块。SpringBoot集成Flowable需要导入如下依赖: 可以看到没有集成和modeler相关的依赖,如下是flowa

weixin_37304961的博客 9308

基于Python的海关进出口数据爬取与贸易关系分析

本文介绍了如何使用Python爬虫技术获取海关进出口数据,并基于这些数据进行贸易关系分析。文章详细阐述了数据采集、清洗、存储和分析的全过程,使用了最新的爬虫技术和数据分析方法,为国际贸易研究提供数据支持和技术参考。关键词:Python爬虫、海关数据、贸易分析、数据可视化、Selenium、Scrapy。

2201_76125261的博客 543

读懂ARM汇编程序,你只差这篇!保姆级教程(附完整示例剖析)!

ARM汇编中的符号、标号、伪操作有哪些?C语言和汇编语言如何混合编程?GNU ARM汇编和ARM汇编的区别有哪些?

车载系统攻城狮 1万+

SpringBoot3-Flowable7初体验

Flowable是一个轻量级Java业务流程引擎,用于管理和自动化业务流程。本文介绍了Flowable的基本配置和使用方法,包括环境准备(JDK17、MySQL8.0)、Flowable-ui的Docker部署,以及如何创建采购订单审批流程图。流程设计中实现了金额大于1000需经理审批的分支条件,并通过绑定任务处理类和参数配置完成流程定义。代码部分展示了项目依赖配置、数据库连接设置以及流程图渲染的中文显示解决方案。控制器通过Flowable API实现了流程部署、启动、任务查询和审批等功能,为业务流程自动化

愤怒的苹果ext的博客 2382

uniapp(安卓 | 苹果) - 最新详细实现App打包发布教程,uni-app苹果IOS软件应用上架App Store软件商店,uni-app打包发布安卓Android软件到各大应用商店(详细教程

uni-app,安卓android,苹果ios,uniapp App软件,Uniapp上架发布应用,打包构建,apk、app软件,应用商店,应用市场,app store,uni-app安卓苹果app上架应用商店,app应用从创建到上架_uniapp打包app的流程和上架,uniapp打包上架ios Appstore 最全流程,苹果应用商店上架教程,uniapp生成的app怎么上架到iphone的app store,uni-app打包到上架Android , ios完整详细流程,审核一直不通过,软件商店审核失

✅ 精选推荐文章 1万+

Flowable 6.7.X 学习笔记(二) FlowableUI 和IDEA插件

Flowable 6.7.X 学习笔记(二) FlowableUI 和IDEA插件

qq_51484868的博客 3329

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 3、Flowable 核心概念与 Spring Boot 3 集成组件详解
下一篇: 5、规则引擎详解:概念、作用、场景、痛点与主流开源方案对比
龙茶清欢
博客等级 码龄7年 3720粉丝 375原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龙茶清欢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值