跳到主要内容
版本:5.0 (最新)

用户任务

概要

用户任务用于描述需要人工交互的流程步骤(表单、审批、分配负责人等)。

当前约束:

  • 用户任务的办理人 / 抄送人只允许配置为 用户职责
  • 不再允许把 服务BotAgent 直接作为用户任务参与者;
  • 若希望由系统、接口或 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"
}

测试要点:表单校验、并发领取/完成、超时处理与审计记录完整性。