# Activiti 集成 > **完整覆盖暂缓**:Activiti 已接入代码库,但当前实时 DB 中没有部署流程。见[切片 7(暂缓)](../../slices/07-workflow.md)。 本页记录代码库中与 Activiti 相关的事实,避免未来维护人员在工作流真正启用时从零开始。 ## 两个 Activiti 版本 依赖树携带**两个** Activiti 版本: | 模块 | 版本 | 说明 | |---|---|---| | `xlyPersist` | `org.activiti:activiti-engine:5.17.0` | 较老的 5.x 线 | | `xlyFlow` | `org.activiti:activiti-spring-boot-starter-rest-api:6.0.0`、`activiti-json-converter:6.0.0` | 较新的 6.0 线 | 这是实际版本不匹配。Activiti 5.x 和 6.x schema 有重叠,但在部分 `act_*` 表和迁移路径上分叉。可能性包括: 1. 框架运行 Activiti 6.0(由 xlyFlow 驱动),而 xlyPersist 的 5.17 依赖是早期遗留。 2. 不同服务因历史原因使用不同版本。 3. 两者都在 classpath 中,但运行时只初始化一个。 未来维护人员应:(a) 移除未使用版本避免混淆,(b) 记录实时 schema 使用哪个版本,(c) 验证 `act_*` 表布局与该版本精确匹配。 额外事实:`xlyFlow/build.gradle` 引入 Activiti 6 starter,但 `xlyFlow/src/main/java/com/xly/XlyFlowApplicationBoot.java` 被完全注释。因此代码存在,但本仓库当前并没有把 `xlyFlow` 呈现为明确可独立运行的 app。 ## `act_*` schema 实时 DB 当前有预期的 `act_*` 表,但本轮检查的关键表都是空的: - `act_re_deployment` = 0 - `act_re_procdef` = 0 - `act_ru_task` = 0 - `act_hi_procinst` = 0 ## xly 的包装层 三个 xly 表包装 Activiti 集成: - [`biz_flow`](../../auto-catalog/tables/biz_flow.md):xly 每单据流程状态。 - [`biz_todo_item`](../../auto-catalog/tables/biz_todo_item.md):待审批任务。 - [`biz_todo_copyto`](../../auto-catalog/tables/biz_todo_copyto.md):流程抄送方。 - [`gdsmoduleflow`](../../auto-catalog/tables/gdsmoduleflow.md) + `gdsmoduleflowslave`:模块流程窗口配置。 包装表在实时 DB 中也为空:`gdsmoduleflow = 0`、`biz_flow = 0`、`biz_todo_item = 0`、`biz_todo_copyto = 0`。 启用时的模式:单据提交写入 `biz_flow` 行,同时启动 Activiti 流程实例;待审批人在 `biz_todo_item` 中看到任务;审批后流程实例推进并最终完成。 ## 代码中接入位置 `xlyFlow/` 是专用模块。后续补全时应关注: - `xlyFlow` 的 Gradle build 引入 Activiti 6.0。 - Activiti process engine 的 Spring Boot 配置。 - `xlyEntry/com/xly/web/businessweb/` 中的 `CheckFlowController` 是 SPA 驱动工作流(审批 / 驳回 / 查看)的一个入口。 - BPMN 流程定义若存在,应位于 `xlyFlow/src/main/resources/processes/` 或类似位置;当前代码库为空。 ## 让 Activiti 工作需要什么 使用工作流的部署需要: 1. 已部署 BPMN 流程定义(`act_re_procdef` 有数据)。 2. 模块标记 `bCheck = 1`,并通过 `gdsmoduleflow` 关联到正确流程。 3. 通过 `act_id_*` 或 xly 包装层分配审批用户。 4. 保存端点在 `bCheck = 1` 模块上分支,启动流程实例,而不是(或除了)标准 add/update/delete。 当有已部署流程的环境可用时,本页会成为正式参考;在此之前,把它视为“这里应该有什么”的清单。