更新时间:2026-07-28 GMT+08:00
分享

完成任务 - completeTask

功能介绍

本接口用于完成流程引擎中的任务,包括普通用户审批任务、子流程任务等。与查询任务列表 - queryTaskList接口配合,可完成完整的任务审批闭环场景。

接口约束

  • 本接口支持基础版和体验版数据建模引擎-流程引擎场景。

  • 调用本接口前,需确保流程实例已启动,且任务处于“待处理”状态。可通过查询任务列表接口确认任务状态。

  • 调用者必须是任务的当前处理人,或具备任务委托权限。

  • 如果任务配置了必填表单字段,必须在“formList”参数中提交完整数据,否则接口将返回校验失败。

  • 同一任务同一时间仅允许一个完成操作,并发调用将返回任务锁定异常。

  • 任务完成后,流程将自动流转至下一个节点。如果下一节点为人工任务,将生成新的待办任务。

调用方法

请参见如何调用API

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。

  • 如果使用角色与策略授权,具体权限要求请参见权限和授权项
  • 如果使用身份策略授权,当前API调用无需身份策略权限。

URI

POST /console/servicetask/api/localMethod/assessment_trilogy/completeTask

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

IAM用户的token。

通过调用IAM服务获取用户Token接口获取(即响应消息头中X-Subject-Token的值)。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

X-Application-Id

String

参数解释:

应用ID。

您可以在应用设计态的“应用中心 > 应用发布”页面获取,详情请参见应用发布

约束限制:

不涉及。

取值范围:

由英文字母和数字组成,且长度为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服务的获取用户信息接口获取。

约束限制:

仅基础版数据建模引擎-流程引擎需要配置此参数。

取值范围:

不涉及。

默认取值:

不涉及。

表2 请求Body参数

参数

是否必选

参数类型

描述

taskId

String

参数解释:

任务ID,用于唯一标识需要完成的任务实例。

可通过查询任务列表接口获取。

约束限制:

不涉及。

取值范围:

最大长度100字符。

默认取值:

不涉及。

processInstanceId

String

参数解释:

流程实例ID,用于标识任务所属的流程实例。可通过查询流程实例列表 - queryProcessesInstanceList启动流程 - startProcessInstance接口获取。

约束限制:

不涉及。

取值范围:

最大长度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

参数解释:

附件集合,用于上传任务相关的附件文件标识列表。附件需先通过文件上传接口获取文件标识。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

表3 formList

参数

是否必选

参数类型

描述

data

Object

参数解释:

表单数据,包含表单中各字段的具体业务数据。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

holderType

String

参数解释:

表单Holder类型,用于标识表单所属的业务对象类型。

约束限制:

不涉及。

取值范围:

  • business:申请单级别表单,与整个流程实例关联。

  • task:任务级别表单,仅与当前任务关联。

默认取值:

不涉及。

name

String

参数解释:

表单标识,用于唯一标识表单模板。与流程元模板中配置的表单名称一致。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

响应参数

状态码:200

表4 响应Body参数

参数

参数类型

描述

code

Integer

参数解释:

接口返回码,标识接口调用的执行结果。

取值范围:

  • 200:成功。

  • 非200:失败,具体错误码请参见错误码

data

data object

参数解释:

接口响应数据,包含任务完成后的业务返回信息。

取值范围:

不涉及。

orderID

String

参数解释:

请求跟踪流水号,用于唯一标识本次接口请求,便于问题排查和链路追踪。

遇到问题时,请提供此ID联系技术支持。

取值范围:

不涉及。

表5 data

参数

参数类型

描述

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

错误码

请参见错误码

相关文档