# yida-process-atomic Specification ## Purpose TBD - created by archiving change extend-yida-api-coverage. Update Purpose after archive. ## Requirements ### Requirement: 流程实例生命周期 `YDClient_Process` SHALL 覆盖流程发起、终止、撤回、跳转四个关键动作。每个方法 MUST 对应宜搭官方的一个流程实例 endpoint。 #### Scenario: 发起流程 - **WHEN** `startProcess(conf, processCode, formUuid, formDataJson, body_ext)` - **THEN** 对应 `POST /v1.0/yida/processes/instances/start` - **AND** 返回 `processInstanceId` #### Scenario: 终止流程 - **WHEN** `terminateProcess(conf, processInstanceId, body_ext)` - **AND** `body_ext` 中支持 `operator` / `noExecuteExpression` 等 #### Scenario: 撤回流程 - **WHEN** `revokeProcess(conf, processInstanceId, body_ext)` - **THEN** 发起人撤回已提交但未审批完成的流程 ### Requirement: 审批任务动作 `YDClient_Process` SHALL 覆盖同意 / 拒绝 / 转交 / 抄送 / 评论五类审批任务动作。每个方法 MUST 与宜搭官方 task 类 endpoint 1:1 对应。 #### Scenario: 同意任务 - **WHEN** `agreeTask(conf, processInstanceId, taskId, comment, body_ext)` - **THEN** 对应 `POST /v1.0/yida/processes/tasks/agree` #### Scenario: 拒绝任务 - **WHEN** `disagreeTask(conf, processInstanceId, taskId, comment, body_ext)` - **AND** `body_ext` 支持 `nextOperatorUserIds`(拒绝后指定下一个审批人,部分流程开启此功能) #### Scenario: 转交任务 - **WHEN** `redirectTask(conf, processInstanceId, taskId, toUserId, comment, body_ext)` #### Scenario: 抄送 - **WHEN** `ccTask(conf, processInstanceId, taskId, toUserIds, comment, body_ext)` #### Scenario: 添加评论 - **WHEN** `commentTask(conf, processInstanceId, taskId, comment, body_ext)` ### Requirement: 流程与任务查询 `YDClient_Process` SHALL 提供流程详情、流程列表、任务列表三类查询能力。 #### Scenario: 查单个流程详情 - **WHEN** `getProcess(conf, processInstanceId, body_ext)` - **THEN** 返回流程全量信息含已走过的所有节点 #### Scenario: 分页查流程 - **WHEN** `searchProcesses(conf, appType, formUuid, processCode, searchCriteria, body_ext)` - **THEN** 支持按发起人 / 状态 / 时间范围过滤 #### Scenario: 查任务列表 - **WHEN** `searchTasks(conf, userId, statuses, body_ext)` - **THEN** 返回某用户当前的待办 / 已办任务 ### Requirement: 节点跳转 `YDClient_Process` SHALL 提供流程节点跳转能力,允许运维干预流程路径。 #### Scenario: 跳转到指定节点 - **WHEN** `redirectProcess(conf, processInstanceId, targetActivityId, body_ext)` - **THEN** 流程跳转到指定节点,支持前跳与后跳