1. 概述
在之前的文章中(基于 Java 和 Spring 的 Activiti API),我们学习了如何通过编程方式管理流程。现在想快速搭建一个带 UI 的 Activiti 演示环境?有两个现成的 Web 应用可以帮你几分钟搞定:
✅ activiti-app:提供完整用户界面,支持身份管理、任务管理、用户/组创建等操作
✅ activiti-rest:提供 REST API 接口,用于操作流程、任务等核心功能
本文将深入解析这两个工具的使用方法和核心功能,帮你快速上手 Activiti 的可视化管理和接口调用。
2. 下载准备
直接从 Activiti 官网 下载 WAR 包即可。以 v6.0.0 为例:
- 下载
activiti-6.0.0.zip
- 解压后进入
activiti-6.0.0/wars
目录 - 找到
activiti-app.war
和activiti-rest.war
两个文件
⚠️ 注意:确保已安装 Java 运行环境和 Apache Tomcat(Activiti 主要在 Tomcat 上测试)。
3. Activiti 快速入门应用
3.1. 数据库配置
默认使用 H2 内存数据库。如需修改配置:
部署到 Tomcat 后访问:http://localhost:8080/activiti-app
,首页效果如下:
3.2. 快速创建流程
点击 Kickstart App 进入流程设计器:
- 选择 Processes 标签页
- 点击 Create Process 创建新流程
- 拖拽组件设计流程(开始事件→用户任务→结束事件)
关键配置步骤:
任务分配:点击用户任务 → 选择 Assignments → 设置执行人(如流程发起人)
表单关联:
- 选择 Referenced Form → 点击 New Form
- 添加文本字段(如
message
) - 勾选 Required 强制必填
3.3. 任务管理应用
在 Task App 中管理运行中的流程:
- 进入 Apps 标签页
- 创建 Process App 并关联流程定义
- 发布应用 使流程对其他用户可见
启动流程:
- 切换到 Processes 标签页
- 点击 Start Process 选择目标流程
- 点击 start 按钮启动
处理任务:
- 在待办任务列表点击任务
- 填写必填字段(如
message
) - 点击 Complete 提交
查看流程图: 点击 Show Diagram 可实时查看流程进度(高亮显示当前节点):
3.4. 身份管理应用
独立模块支持:
- 用户/组管理
- 角色权限分配
- 组织架构维护
4. Activiti REST 接口
4.1. 部署与启动流程
基础配置:
- 部署
activiti-rest.war
到 Tomcat - 默认连接 H2 内存数据库
- 修改
WEB-INF/classes/db.properties
可切换数据库 - 所有接口基础 URL:
http://localhost:8080/activiti-rest/service/
- 需要基本 HTTP 认证(用户名/密码)
部署流程定义:
POST /repository/deployments
Content-Type: multipart/form-data
[上传 BPMN 文件]
响应示例:
{
"id": "40",
"name": "user_msg.bpmn20.xml",
"deploymentTime": "2017-10-04T17:28:07.963+05:30",
"category": null,
"url": "http://localhost:8080/activiti-rest/service/repository/deployments/40",
"tenantId": ""
}
启动流程实例:
POST /runtime/process-instances
Content-Type: application/json
{
"processDefinitionKey":"user_msg"
}
响应示例:
{
"id": "44",
"url": "http://localhost:8080/activiti-rest/service/runtime/process-instances/44",
"businessKey": null,
"suspended": false,
"ended": false,
"processDefinitionId": "user_msg:1:43",
"processDefinitionKey": "user_msg"
}
查看流程图:
GET /runtime/process-instances/{id}/diagram
效果如下(高亮显示当前节点):
4.2. 完成任务
查询待办任务:
GET /runtime/tasks
响应示例:
{
"data": [
{
"id": "49",
"name": "User Input Message",
"assignee": "$INITIATOR",
"createTime": "2017-10-04T17:33:07.205+05:30"
}
]
}
完成任务:
POST /runtime/tasks/{taskId}
Content-Type: application/json
{
"action": "complete",
"variables": [{
"name": "message",
"value": "This is a User Input Message"
}]
}
⚠️ 踩坑提示:variables
数组中的字段名必须与流程表单字段完全匹配!
5. 总结
本文系统介绍了 Activiti 的两大核心工具:
- 可视化工具:通过 activiti-app 实现流程设计、任务管理和身份管理
- 接口服务:通过 activiti-rest 提供完整的 REST API 操作能力
推荐资源:
这两个工具组合使用,可以快速搭建从流程设计到接口调用的完整工作流解决方案,特别适合需要快速验证流程逻辑的场景。