Files
AIOA/docs/engineering/process-form-binding.md
2026-07-18 21:26:44 +08:00

35 lines
1.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 表单版本与流程选择
## 发布模型
表单定义以 `tenant + formKey + version` 唯一标识,状态为 `DRAFT``PUBLISHED``RETIRED`。同一租户同一表单只能有一个已发布版本。
流程绑定将以下条件映射到 Flowable Process Definition Key
- 业务类型
- 表单 Key 和版本
- 可选业务枚举,例如请假类型
- 可选最小时长和最大时长
- 优先级
- ACTIVE / INACTIVE 状态
## 运行时选择
Flutter 只能提交业务表单数据,不能提交流程定义 ID。Kotlin 后端按当前租户和权威业务数据查询绑定:
1. 只选择 ACTIVE 绑定。
2. 业务类型必须精确匹配。
3. 枚举和时长条件必须满足。
4. 优先级高的规则优先。
5. 精确枚举或范围规则优先于通配规则。
6. 无匹配绑定时拒绝提交,不启动默认或任意流程。
流程启动后保存实际 `processDefinitionId`,运行中实例不会因之后修改绑定而切换版本。
## 安全边界
- 只有 OA 管理员拥有 `PROCESS_CONFIGURATION_MANAGE_TENANT`
- 新表单版本先进入草稿,发布前执行 Schema 结构校验。
- 绑定只能引用数据库中存在的表单版本和 Flowable 已部署流程 Key。
- 创建、发布、启停均写入审计。