Flowable-UI 详解_flowable ui
Flowable-UI 是 Flowable 官方提供的可视化流程套件,包含流程设计器(Modeler)、任务应用(Task App)、管理控制台(Admin App)三大核心模块,用于实现流程的建模、调试、监控和用户交互。以下从功能架构、部署方式、核心模块详解及企业级应用实践角度全面解析:
一、Flowable-UI 整体架构
#mermaid-svg-lKNWIrXS8xWGH3qD {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-lKNWIrXS8xWGH3qD .error-icon{fill:#552222;}#mermaid-svg-lKNWIrXS8xWGH3qD .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-lKNWIrXS8xWGH3qD .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-lKNWIrXS8xWGH3qD .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-lKNWIrXS8xWGH3qD .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-lKNWIrXS8xWGH3qD .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-lKNWIrXS8xWGH3qD .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-lKNWIrXS8xWGH3qD .marker{fill:#333333;stroke:#333333;}#mermaid-svg-lKNWIrXS8xWGH3qD .marker.cross{stroke:#333333;}#mermaid-svg-lKNWIrXS8xWGH3qD svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-lKNWIrXS8xWGH3qD .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-lKNWIrXS8xWGH3qD .cluster-label text{fill:#333;}#mermaid-svg-lKNWIrXS8xWGH3qD .cluster-label span{color:#333;}#mermaid-svg-lKNWIrXS8xWGH3qD .label text,#mermaid-svg-lKNWIrXS8xWGH3qD span{fill:#333;color:#333;}#mermaid-svg-lKNWIrXS8xWGH3qD .node rect,#mermaid-svg-lKNWIrXS8xWGH3qD .node circle,#mermaid-svg-lKNWIrXS8xWGH3qD .node ellipse,#mermaid-svg-lKNWIrXS8xWGH3qD .node polygon,#mermaid-svg-lKNWIrXS8xWGH3qD .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-lKNWIrXS8xWGH3qD .node .label{text-align:center;}#mermaid-svg-lKNWIrXS8xWGH3qD .node.clickable{cursor:pointer;}#mermaid-svg-lKNWIrXS8xWGH3qD .arrowheadPath{fill:#333333;}#mermaid-svg-lKNWIrXS8xWGH3qD .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-lKNWIrXS8xWGH3qD .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-lKNWIrXS8xWGH3qD .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-lKNWIrXS8xWGH3qD .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-lKNWIrXS8xWGH3qD .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-lKNWIrXS8xWGH3qD .cluster text{fill:#333;}#mermaid-svg-lKNWIrXS8xWGH3qD .cluster span{color:#333;}#mermaid-svg-lKNWIrXS8xWGH3qD div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-lKNWIrXS8xWGH3qD :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;} 浏览器 Flowable-UI 应用 Flowable-IDM 认证中心 Flowable-Engine 引擎 数据库
- 前端:基于 AngularJS + Bootstrap 的响应式 Web 应用
- 后端:Spring Boot 微服务架构
- 核心服务:
- Flowable-IDM:统一身份认证(用户/组/权限)
- Flowable-Modeler:BPMN/DMN/CMMN 可视化设计器
- Flowable-Task:用户任务处理应用
- Flowable-Admin:流程运维监控台
二、四大核心模块详解
1. Flowable Modeler - 流程设计器
- 核心功能:
- 拖拽式建模:支持 BPMN 2.0、DMN 1.3、CMMN 1.1 规范
- 实时校验:自动检查节点连通性、属性完整性
- 版本管理:保存历史版本并对比差异
- 表单设计:集成 Form Builder 设计动态表单(需商业版)
- 操作示例: #mermaid-svg-fMAddLKTDiWmfU4g {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-fMAddLKTDiWmfU4g .error-icon{fill:#552222;}#mermaid-svg-fMAddLKTDiWmfU4g .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-fMAddLKTDiWmfU4g .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-fMAddLKTDiWmfU4g .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-fMAddLKTDiWmfU4g .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-fMAddLKTDiWmfU4g .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-fMAddLKTDiWmfU4g .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-fMAddLKTDiWmfU4g .marker{fill:#333333;stroke:#333333;}#mermaid-svg-fMAddLKTDiWmfU4g .marker.cross{stroke:#333333;}#mermaid-svg-fMAddLKTDiWmfU4g svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-fMAddLKTDiWmfU4g .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-fMAddLKTDiWmfU4g .cluster-label text{fill:#333;}#mermaid-svg-fMAddLKTDiWmfU4g .cluster-label span{color:#333;}#mermaid-svg-fMAddLKTDiWmfU4g .label text,#mermaid-svg-fMAddLKTDiWmfU4g span{fill:#333;color:#333;}#mermaid-svg-fMAddLKTDiWmfU4g .node rect,#mermaid-svg-fMAddLKTDiWmfU4g .node circle,#mermaid-svg-fMAddLKTDiWmfU4g .node ellipse,#mermaid-svg-fMAddLKTDiWmfU4g .node polygon,#mermaid-svg-fMAddLKTDiWmfU4g .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-fMAddLKTDiWmfU4g .node .label{text-align:center;}#mermaid-svg-fMAddLKTDiWmfU4g .node.clickable{cursor:pointer;}#mermaid-svg-fMAddLKTDiWmfU4g .arrowheadPath{fill:#333333;}#mermaid-svg-fMAddLKTDiWmfU4g .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-fMAddLKTDiWmfU4g .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-fMAddLKTDiWmfU4g .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-fMAddLKTDiWmfU4g .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-fMAddLKTDiWmfU4g .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-fMAddLKTDiWmfU4g .cluster text{fill:#333;}#mermaid-svg-fMAddLKTDiWmfU4g .cluster span{color:#333;}#mermaid-svg-fMAddLKTDiWmfU4g div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-fMAddLKTDiWmfU4g :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;} 通过 开始 用户审批 调用API 结束
- 企业级特性:
- 协作模式:多人同时编辑(基于 WebSocket 同步)
- 自定义模板:预置行业标准流程模板(如 ISO 审核)
2. Flowable Task App - 任务处理中心
- 用户功能:
- 待办列表:自动拉取分配给用户的流程任务
- 任务处理:审批/填写表单/上传附件/添加批注
- 委托与转办:临时移交任务给其他用户
- 流程跟踪:图形化展示当前任务位置
- 管理员功能:
- 任务重分配:强制修改任务负责人
- 设置截止时间:动态计算 SLA 超时预警
- 集成扩展:
- 消息中心:邮件/钉钉/企业微信通知
- 移动端适配:PWA (Progressive Web App) 支持
3. Flowable Admin - 运维监控台
- 核心监控维度:
模块 监控指标 流程引擎 运行中实例数/任务积压/DB连接池 异步作业 作业队列深度/失败重试次数 性能分析 平均任务处理时间/节点停留时长 - 关键操作:
- 流程实例干预:挂起/激活/删除运行中实例
- 历史数据审计:精确查询任意节点的变量快照
- 批处理任务:批量清理历史数据(保留策略配置)
- 企业级插件:
- Prometheus 导出器:监控指标对接 Grafana 看板
- 日志追踪:关联业务 ID 的分布式链路跟踪
4. Flowable IDM - 统一身份服务
- 功能架构: #mermaid-svg-OsoRwFAIsZWYlzRL {font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-OsoRwFAIsZWYlzRL .error-icon{fill:#552222;}#mermaid-svg-OsoRwFAIsZWYlzRL .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-OsoRwFAIsZWYlzRL .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-OsoRwFAIsZWYlzRL .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-OsoRwFAIsZWYlzRL .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-OsoRwFAIsZWYlzRL .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-OsoRwFAIsZWYlzRL .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-OsoRwFAIsZWYlzRL .marker{fill:#333333;stroke:#333333;}#mermaid-svg-OsoRwFAIsZWYlzRL .marker.cross{stroke:#333333;}#mermaid-svg-OsoRwFAIsZWYlzRL svg{font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-OsoRwFAIsZWYlzRL .label{font-family:\"trebuchet ms\",verdana,arial,sans-serif;color:#333;}#mermaid-svg-OsoRwFAIsZWYlzRL .cluster-label text{fill:#333;}#mermaid-svg-OsoRwFAIsZWYlzRL .cluster-label span{color:#333;}#mermaid-svg-OsoRwFAIsZWYlzRL .label text,#mermaid-svg-OsoRwFAIsZWYlzRL span{fill:#333;color:#333;}#mermaid-svg-OsoRwFAIsZWYlzRL .node rect,#mermaid-svg-OsoRwFAIsZWYlzRL .node circle,#mermaid-svg-OsoRwFAIsZWYlzRL .node ellipse,#mermaid-svg-OsoRwFAIsZWYlzRL .node polygon,#mermaid-svg-OsoRwFAIsZWYlzRL .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-OsoRwFAIsZWYlzRL .node .label{text-align:center;}#mermaid-svg-OsoRwFAIsZWYlzRL .node.clickable{cursor:pointer;}#mermaid-svg-OsoRwFAIsZWYlzRL .arrowheadPath{fill:#333333;}#mermaid-svg-OsoRwFAIsZWYlzRL .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-OsoRwFAIsZWYlzRL .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-OsoRwFAIsZWYlzRL .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-OsoRwFAIsZWYlzRL .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-OsoRwFAIsZWYlzRL .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-OsoRwFAIsZWYlzRL .cluster text{fill:#333;}#mermaid-svg-OsoRwFAIsZWYlzRL .cluster span{color:#333;}#mermaid-svg-OsoRwFAIsZWYlzRL div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\"trebuchet ms\",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-OsoRwFAIsZWYlzRL :root{--mermaid-font-family:\"trebuchet ms\",verdana,arial,sans-serif;} LDAP/AD Flowable-IDM 数据库 Keycloak Modeler/Task/Admin
- 核心能力:
- 多源认证:同步 LDAP/Active Directory/数据库用户
- 细粒度授权:基于 RBAC 控制模块访问权限
- 租户隔离:为不同客户分配独立用户体系
- 配置示例(
idm-application.properties
):# 启用LDAP同步idm.sync.ldap.enabled=trueidm.sync.ldap.server=ldap://corp.com:389idm.sync.ldap.baseDn=ou=users,dc=corp,dc=com
三、部署方案详解
方案 1:All-in-One 快速启动(开发环境)
# 下载官方War包wget https://repo.flowable.com/nexus/content/groups/public/org/flowable/flowable-ui/6.7.2/flowable-ui.war# 启动嵌入式Tomcatjava -jar flowable-ui.war
- 访问
http://localhost:8080/flowable-ui
默认账号admin/test
方案 2:Docker 容器化部署(生产推荐)
# docker-compose.ymlversion: \'3\'services: flowable-ui: image: flowable/flowable-ui:latest ports: - \"8080:8080\" environment: - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/flowable - SPRING_DATASOURCE_USERNAME=flowable - SPRING_DATASOURCE_PASSWORD=Secret123! db: image: postgres:14 volumes: - pgdata:/var/lib/postgresql/datavolumes: pgdata:
方案 3:Kubernetes 高可用部署
# flowable-ui-deployment.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: flowable-uispec: replicas: 3 selector: matchLabels: app: flowable-ui template: spec: containers: - name: ui image: flowable/flowable-ui:7.0.0 envFrom: - configMapRef: name: flowable-config---# 通过Ingress暴露服务apiVersion: networking.k8s.io/v1kind: Ingressmetadata: name: flowable-ingressspec: rules: - host: bpm.corp.com http: paths: - path: / pathType: Prefix backend: service: name: flowable-ui-service port: number: 8080
四、企业级集成实践
1. 单点登录集成(OAuth 2.0)
# application.propertiessecurity.oauth2.client.client-id=flowable-clientsecurity.oauth2.client.client-secret=@KEYRANDOM@security.oauth2.client.access-token-uri=https://sso.corp.com/oauth/tokensecurity.oauth2.client.user-authorization-uri=https://sso.corp.com/oauth/authorizesecurity.oauth2.resource.user-info-uri=https://sso.corp.com/userinfo
2. 自定义扩展开发
- 添加新菜单(修改
app-cfg.js
):FLOWABLE.CONFIG = { \"apps\": [ {\"id\": \"tasks\", \"title\": \"待办任务\", \"url\": \"/task\"}, {\"id\": \"custom-report\", \"title\": \"自定义报表\", \"url\": \"/custom-report\"} ]};
- 开发自定义表单控件:
angular.module(\'flowableModeler\') .controller(\'CustomFormCtrl\', function($scope) { $scope.customField = { value: \'\' }; // 与后端变量绑定 $scope.$watch(\'customField.value\', function(v) { $scope.field.value = v; }); });
五、关键问题解决方案
modeler:models:edit
权限ACT_HI_TASKINST
按时间分区Auto Layout
功能重新排版idm.ldap.attribute.email
映射配置六、最佳实践建议
- 生产环境优化:
- 启用 GZIP 压缩前端资源
- 配置 CDN 加速静态文件(
/flowable-ui/static/**
) - 数据库连接池使用 HikariCP 替代 DBCP
- 安全加固:
- 强制 HTTPS 访问
- 定期轮转
flowable-default.key
加密密钥 - 禁用 Swagger 等开发接口(
flowable.rest.app-enabled=false
)
- 高可用设计:
- 前端层:Nginx 负载均衡 + Keepalived
- 后端层:Redis 共享会话 + 数据库读写分离
注:Flowable-UI 开源版本部分功能受限(如高级表单设计器、移动端SDK),完整功能需 Flowable Work 商业版支持。
通过 Flowable-UI,企业可快速构建覆盖流程设计→任务处理→运维监控的全生命周期管理平台,大幅降低 BPM 系统的实施复杂度。建议结合自身需求选择模块化部署(如独立部署 Modeler 给业务分析师),并通过扩展开发实现深度业务集成。