# flowable-project
**Repository Path**: memeafnc/flowable-project
## Basic Information
- **Project Name**: flowable-project
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-02-28
- **Last Updated**: 2026-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Flowable Demo Project
## 项目概述
这是一个基于Flowable的工作流演示项目,主要展示以下三个核心功能:
1. **工作流的绘制**:使用BPMN 2.0标准绘制工作流程图
2. **动态表单**:工作流中的任务表单定义和使用
3. **时效性**:工作流中的超时处理机制
## 技术栈
- Spring Boot 3.2.2
- Flowable 7.0.0
- H2 Database
## 项目结构
```
flowable-demo/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ ├── FlowableDemoApplication.java # 应用主类
│ │ │ └── controller/
│ │ │ └── ProcessController.java # 流程控制接口
│ │ └── resources/
│ │ ├── application.yml # 应用配置
│ │ └── processes/
│ │ └── demo-process.bpmn20.xml # 工作流定义文件
└── pom.xml # Maven依赖配置
```
## 核心功能说明
### 1. 工作流的绘制
工作流定义文件位于 `src/main/resources/processes/demo-process.bpmn20.xml`,使用BPMN 2.0标准绘制。包含以下元素:
- **开始事件**:流程的起点
- **用户任务**:需要人工处理的任务
- **排他网关**:根据条件分支流程
- **边界事件**:处理任务超时
- **结束事件**:流程的终点
### 2. 动态表单
在工作流定义中,通过 `flowable:formProperty` 定义表单字段:
```xml
```
### 3. 时效性
通过定时边界事件实现任务超时处理:
```xml
PT5M
```
## 如何运行
### 1. 构建项目
```bash
mvn clean install
```
### 2. 启动应用
```bash
mvn spring-boot:run
```
### 3. 访问前端页面
应用启动后,可以通过以下地址访问自定义前端页面:
- **前端演示页面**:http://localhost:8080/
### 4. 访问Flowable UI
应用启动后,可以通过以下地址访问Flowable官方UI:
- **Flowable Modeler**:http://localhost:8080/flowable-modeler
- **Flowable Task**:http://localhost:8080/flowable-task
- **Flowable Admin**:http://localhost:8080/flowable-admin
默认登录凭证:
- 用户名:admin
- 密码:test
### 5. 使用REST API
项目提供了以下REST接口:
- **启动流程**:POST http://localhost:8080/process/start
- 参数:applicantName, applicationType
- **获取待办任务**:GET http://localhost:8080/process/tasks
- 参数:assignee
- **完成任务**:POST http://localhost:8080/process/complete-task
- 参数:taskId
- **获取流程实例**:GET http://localhost:8080/process/instances
## 工作流演示步骤
1. **绘制工作流**:在Flowable Modeler中创建或编辑工作流程图
2. **启动流程**:通过API或UI启动流程实例,填写表单
3. **处理任务**:在Flowable Task中查看和完成待办任务
4. **测试时效性**:等待5分钟,观察超时处理流程
## 分析Flowable是否适合你的场景
### 适用场景
- **复杂的业务流程**:需要多个审批环节和分支的流程
- **需要表单交互**:流程中需要用户填写和提交表单
- **时效性要求**:需要处理任务超时的场景
- **可扩展性**:需要自定义流程和集成其他系统
### 优势
- **标准兼容**:基于BPMN 2.0标准
- **功能丰富**:支持各种流程元素和表单类型
- **易于集成**:与Spring Boot无缝集成
- **可视化设计**:提供Web-based的流程设计器
- **强大的API**:提供丰富的REST和Java API
### 考虑因素
- **学习曲线**:BPMN 2.0标准和Flowable API需要一定学习时间
- **性能**:对于高频流程,需要考虑性能优化
- **部署复杂度**:生产环境需要考虑数据库和集群部署
## 总结
Flowable是一个功能强大的工作流引擎,适合处理各种复杂的业务流程。通过本demo,你可以了解Flowable在工作流绘制、动态表单和时效性三个方面的实现方式,从而评估它是否适合你的具体场景。