
# 完成任务 - completeTask
#### 功能介绍
本接口用于完成流程引擎中的任务，包括普通用户审批任务、子流程任务等。与[查询任务列表 - queryTaskList](https://support.huaweicloud.com/api-idme/queryTaskList.html)接口配合，可完成完整的任务审批闭环场景。
#### 接口约束
- 本接口支持基础版和体验版数据建模引擎-流程引擎场景。
  
- 调用本接口前，需确保流程实例已启动，且任务处于"待处理"状态。可通过[查询任务列表](https://support.huaweicloud.com/api-idme/queryTaskList.html)接口确认任务状态。
  
- 调用者必须是任务的当前处理人，或具备任务委托权限。
  
- 如果任务配置了必填表单字段，必须在"formList"参数中提交完整数据，否则接口将返回校验失败。
  
- 同一任务同一时间仅允许一个完成操作，并发调用将返回任务锁定异常。
  
- 任务完成后，流程将自动流转至下一个节点。如果下一节点为人工任务，将生成新的待办任务。
  
 
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-idme/idme_api_0003.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-idme/idme_api_0017.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
 
#### URI
POST /console/servicetask/api/localMethod/assessment_trilogy/completeTask
#### 请求参数
表1请求Header参数 
| 参数               | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| X-Auth-Token     | 是    | String | **参数解释：** IAM用户的token。 通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取（即响应消息头中X-Subject-Token的值）。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                   |
| X-Application-Id | 是    | String | **参数解释：** 应用ID。 您可以在应用设计态的"应用中心 \> 应用发布"页面获取，详情请参见[应用发布](https://support.huaweicloud.com/usermanual-idme/idme_usermanual_0085.html)。 **约束限制：** 不涉及。 **取值范围：** 由英文字母和数字组成，且长度为32个字符。 **默认取值：** 不涉及。                                                                                                                                                                                                  |
| X-Tenant-Id      | 是    | String | **参数解释：** 数据建模引擎运行态租户ID。 您可以从访问流程引擎编排服务的浏览器地址栏中获取。 流程编排服务地址：http://{承载流程编排服务的服务器域名或IP地址}:{流程编排服务的端口号}/{流程编排服务文根}/index.html#/processApplicationForm?tenantId={数据建模引擎运行态租户ID}\&applicationId={应用ID} 例如tenantId=-1，表示数据建模引擎运行态默认租户"basicTenant"的租户ID为-1。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| X-User-Id        | 是    | String | **参数解释：** 请求当前接口时上下文中的用户ID，即OrgID的用户ID。 通过调用OrgID服务的[获取用户信息](https://support.huaweicloud.com/api-orgid/ShowOauth2UserInfo.html)接口获取。 **约束限制：** 仅基础版数据建模引擎-流程引擎需要配置此参数。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                |
   
表2请求Body参数 
| 参数                | 是否必选 | 参数类型                                                                         | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| taskId            | 是    | String                                                                       | **参数解释：** 任务ID，用于唯一标识需要完成的任务实例。 可通过[查询任务列表](https://support.huaweicloud.com/api-idme/queryTaskList.html)接口获取。 **约束限制：** 不涉及。 **取值范围：** 最大长度100字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| processInstanceId | 是    | String                                                                       | **参数解释：** 流程实例ID，用于标识任务所属的流程实例。可通过[查询流程实例列表 - queryProcessesInstanceList](https://support.huaweicloud.com/api-idme/queryProcessesInstanceList.html)或[启动流程 - startProcessInstance](https://support.huaweicloud.com/api-idme/startProcessInstance.html)接口获取。 **约束限制：** 不涉及。 **取值范围：** 最大长度100字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| variables         | 否    | Map\<String,String\>                                                         | **参数解释：** 流程变量，用于在任务完成时传递额外的流程上下文数据，例如指定流转分支条件等。 格式为Map\<key, value\>。其中，key为变量名，value为变量值。 - key：流程变量名称，支持以下预置变量及自定义变量： - sequenceFlow：排他网关流转连线ID，用于指定任务完成后经过排他网关时的流转分支。示例："Flow_02snpia"。   - internalRemark：审批意见文本，用于记录审批人的审批意见。最大长度4000字符。示例："同意"。   - internalOperate：自定义操作标签，用于在审批日志中标记操作类型。示例："ok"、"reject"。   - _mail_cc：抄送人用户ID，多个用户ID以英文逗号分隔，用于任务完成时发送抄送通知。示例："user001,user002"。   - isFreeFlowJump：是否为管理员自由跳转标志，取值"true"或"false"，标识该完成操作是否由管理员自由跳转触发。   - 自定义变量：业务可根据流程模板中定义的变量名传递自定义流程变量。     - value：流程变量的值，类型为字符串。非字符串类型的值需转换为字符串传入。   - 流程实例变量总数（含已有变量）不超过200个。   - 字符串值最大长度4000字符。   - 变量值不允许包含表达式语法"${...}"。    **约束限制：** **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| operation         | 否    | String                                                                       | **参数解释：** 操作类型，用于指定任务的审批结论。 **约束限制：** 不涉及。 **取值范围：** - ok：同意，流程将沿默认分支继续流转。   - reject：驳回，流程将回退或终止（取决于流程配置）。    **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| formList          | 否    | Array of [formList] objects | **参数解释：** 多表单数据列表，用于提交任务关联的表单信息。如果任务配置了多表单，必须完整提交，否则表单数据将丢失。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| comment           | 否    | String                                                                       | **参数解释：** 审批意见，用于记录任务处理人的审批备注信息。 **约束限制：** 不涉及。 **取值范围：** 最大长度2000字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| attachmentList    | 否    | Array of strings                                                             | **参数解释：** 附件集合，用于上传任务相关的附件文件标识列表。附件需先通过文件上传接口获取文件标识。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表3formList 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| data       | 否    | Object | **参数解释：** 表单数据，包含表单中各字段的具体业务数据。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                 |
| holderType | 否    | String | **参数解释：** 表单Holder类型，用于标识表单所属的业务对象类型。 **约束限制：** 不涉及。 **取值范围：** - business：申请单级别表单，与整个流程实例关联。   - task：任务级别表单，仅与当前任务关联。    **默认取值：** 不涉及。 |
| name       | 否    | String | **参数解释：** 表单标识，用于唯一标识表单模板。与流程元模板中配置的表单名称一致。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                     |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数      | 参数类型                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| code    | Integer                                                     | **参数解释：** 接口返回码，标识接口调用的执行结果。 **取值范围：** - 200：成功。   - 非200：失败，具体错误码请参见[错误码](https://support.huaweicloud.com/api-idme/WorkFlow-Engine-ErrorCode.html)。    |
| data    | [data] object | **参数解释：** 接口响应数据，包含任务完成后的业务返回信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| orderID | String                                                      | **参数解释：** 请求跟踪流水号，用于唯一标识本次接口请求，便于问题排查和链路追踪。 遇到问题时，请提供此ID联系技术支持。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表5data 
| 参数           | 参数类型             | 描述                                                                                                                                                                                                                     |
|:---|:---|:---|
| nextTaskInfo | Array of strings | **参数解释：** 下一个任务信息列表，用于获取任务完成后流转到的后续任务信息。如果流程已结束，则返回空数组。 **取值范围：** 不涉及。 |
| businessKey  | String           | **参数解释：** 业务Key，用于关联业务系统的业务标识。在流程启动时传入，贯穿整个流程生命周期。 **取值范围：** 不涉及。      |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
| result     | String | 结果。   |
| trace_id   | String | 追踪ID。 |
   
#### 请求示例
```
POST https://dme.cn-north-4.huaweicloud.cn/workflowRuntime/console/servicetask/api/localMethod/assessment_trilogy/completeTask
{
  "taskId" : "0efe5d09-75b4-11f1-bccc-fa163e3e9614",
  "processInstanceId" : "0eea86d3-75b4-11f1-bccc-fa163e3e9614",
  "internalOperate" : "",
  "variables" : {
    "sequenceFlow" : "Flow_0tb56k3"
  },
  "operation" : "ok",
  "formList" : [ {
    "data" : {
      "approlAllData" : [ ],
      "conclusion" : "Flow_0tb56k3",
      "operation" : "ok",
      "passNodes" : [ {
        "id" : "Flow_0tb56k3",
        "routerType" : "passNode",
        "routerNameCn" : "Flow_0tb56k3",
        "routerNameEn" : "Flow_0tb56k3"
      } ],
      "rejectNodes" : [ ],
      "formApprolData" : {
        "opinion" : "123",
        "customOpinion" : ""
      }
    },
    "holderType" : "task",
    "name" : "routeInfo"
  } ],
  "comment" : "123",
  "attachmentList" : [ ]
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "code" : 0,
  "data" : {
    "nextTaskInfo" : [ ],
    "businessKey" : "P10000548"
  },
  "orderID" : "6d2c824356f547b4bcf8eeaa3a1f1820"
}
```
**状态码：400**
Bad Request
```
{
  "error_code" : "500",
  "error_msg" : "origin is not allowed!",
  "result" : "FAIL",
  "trace_id" : "2509bee60b3e40asdf9f741d9e23466a9"
}
```
#### 状态码
| 状态码 | 描述          |
|:---|:---|
| 200 | OK          |
| 400 | Bad Request |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-idme/WorkFlow-Engine-ErrorCode.html)。
