Appearance
规范 03 · 状态机
状态码为跨语言契约(枚举值对应表见 规范 07 · 元数据能力 的字典表)。
流程实例状态(wf_process_instance.state)
| code | 名称 | 说明 | 生产路径 |
|---|---|---|---|
| 10 | 进行中 (DOING) | 初始状态 | 发起(start / startAndExecute) |
| 20 | 已完成 (FINISHED) | 正常走到 end | 末任务办结(complete) |
| 30 | 已撤回 (WITHDRAW) | 发起人撤回 | 撤回(withdraw) |
| 40 | 强行终止 (INTERRUPT) | 管理员终止 | 预留(当前无门面/引擎入口) |
| 45 | 已拒绝 (REJECT) | 驳回/拒绝 | 驳回(reject) |
| 50 | 挂起 (PENDING) | 暂停 | 预留(当前无门面/引擎入口) |
| 99 | 已废弃 (ABANDON) | 废弃 | 预留(当前无门面/引擎入口) |
40/50/99 为管理态预留值:当前八栈均无门面/引擎写入口(部分栈聚合根带方法但零生产调用者);它们作为读侧过滤值真实合法——
processTask/doneList状态集合含 30/40/99、stats的stateIn缺省含 40/45/50(见规范 06)。事件码 9INSTANCE_TERMINATED(实例写 40 后补发)当前同样只占号(见规范 11)。将来若开放管理入口(跨栈契约扩张,须 owner 批准),实现前须先落任务行映射(见下文状态转换规则)。
text
start
│
▼
┌───────┐ reject ┌────────┐
│ 10 │─────────────▶│ 45 │
│ 进行中 │ │ 已拒绝 │
└───┬───┘ └────────┘
│ complete
▼
┌───────┐
│ 20 │
│ 已完成 │
└───────┘图仅画主干迁移,全集见上表。
任务状态(wf_process_task.task_state)
| code | 名称 | 说明 | 生产路径 |
|---|---|---|---|
| 10 | 进行中 (DOING) | 初始状态 | 任务创建(随办理生成) |
| 20 | 已完成 (FINISHED) | 完成 | 办结(complete) |
| 30 | 已撤回 (WITHDRAW) | 随实例撤回 | 随实例撤同级联 |
| 40 | 强行终止 (INTERRUPT) | 随实例终止 | 预留(当前无门面/引擎入口) |
| 50 | 挂起 (PENDING) | 随实例挂起 | 预留(当前无门面/引擎入口) |
| 99 | 已废弃 (ABANDON) | 废弃(清理路径用语;驳回/跳转时对其余进行中任务的处置为可选实现,见 04 §驳回) | 会签废弃(一票否决) |
废弃行的审计列不承诺统一(issues/209 §3.3 附带 → 队列 R87,2026-10-15 owner 拍 B):任务行被置 99 时
operator/update_user/update_time三列写什么,八栈现读四形并存(逐栈细节见出处卡 C3-L2L2-丙-5),spec 不出统一口径,跨栈门禁也没有能判这一面的格。集成方要"谁废的"就读引擎事件(废弃那条 fire 带 operator),别依赖这三列的跨栈一致性。将来若要钉档=跨栈契约扩张,须 owner 批准,且先补能把四形打红的判据格再动条文。
text
create
│
▼
┌───────┐ complete ┌────────┐
│ 10 │─────────────▶│ 20 │
│ 进行中 │ │ 已完成 │
└───┬───┘ └────────┘
│ abandon
▼
┌───────┐
│ 99 │
│ 已废弃 │
└───────┘图仅画主干迁移,全集见上表。
状态转换规则
- 任务状态转换是聚合根职责(
ProcessTask.finish/abandon),引擎只做编排—— 设计论证见 设计原理 02 · 领域模型。 - 任务状态随实例级命令级联落库:撤回/挂起/终止等聚合命令改完任务状态后, 随
updateInstance同一连接持久化(v1.0.1 契约,见 规范 05 · SPI)。 - 实例恢复时的任务行映射(预留路径,先约后行):实例从
40/50恢复到10时, 任务级恢复守卫一律只认INTERRUPT(40) → DOING(10);PENDING(50)任务不还原、滞留 50(与八栈现行为一致)。 将来开放管理入口须按本条实现,"恢复即复活全部任务"不是合规变体。