用户任务
概要
用户任务用于描述需要人工交互的流程步骤(表单、审批、分配负责人等)。
当前约束:
- 用户任务的办理人 / 抄送人只允许配置为
用户或职责; - 不再允许把
服务、Bot、Agent直接作为用户任务参与者; - 若希望由系统、接口或 AI 自动执行,请改用 服务任务(Service Task)。
实现提醒:
- 前端已实现任务表单与基本流转,细粒度权限与责任分配逻辑需与
osc_server的责任解析模块对齐。 - 若需要工作流审计/历史回溯,请列出需持久化的事件类型并补充实现(建议持久化:任务状态变更、事件到达时间、执行者分配记录)。
推荐理解:
用户任务= 人工待办;职责= 人工责任抽象;职责定位器= 把职责解析到具体用户;- 自动化能力统一通过服务任务和服务提供者表达。
用户任务实现细节
- 表单契约:使用 JSON Schema 定义表单字段、类型与验证规则,便于前端自动渲染与验证;
- 任务状态机:
CREATED -> ASSIGNED -> IN_PROGRESS -> COMPLETED | REJECTED | TIMED_OUT,每个状态变更写入审计表; - 分配策略:支持
explicit(显式用户)/role(角色匹配)/rule(基于表达式)/round_robin(轮询)等策略; - 任务领取:提供乐观锁或基于 DB 的行锁来防止并发领取冲突;
- 超时策略:配置超时触发动作(提醒、自动分配、自动拒绝),并记录超时日志;
API 建议:
POST /api/workflow/instances/{instanceId}/tasks
GET /api/workflow/tasks/{taskId}
POST /api/workflow/tasks/{taskId}/claim
POST /api/workflow/tasks/{taskId}/complete
示例:完成任务请求体:
{
"taskId": "...",
"userId": "alice",
"form": { ... },
"outcome": "approved"
}
测试要点:表单校验、并发领取/完成、超时处理与审计记录完整性。