
# 启动流程实例 - startProcessInstance
#### 功能介绍
本接口用于在流程引擎中发起流程实例，适用于启动审批流程、生产工单流程或业务流程等场景。
与[保存申请单草稿 - saveAsDraftNew](https://support.huaweicloud.com/api-idme/saveAsDraftNew.html)接口配合，可实现"草稿暂存→正式提交→流程启动"的完整申请单生命周期管理；与[完成任务 - completeTask](https://support.huaweicloud.com/api-idme/completeTask.html)接口配合，可实现流程的审批流转闭环。
#### 接口约束
- 本接口支持基础版和体验版数据建模引擎-流程引擎场景。
  
- 流程启动后，系统将根据流程模板定义自动生成首个待办任务（若首节点为人工任务）。
  
- 如使用已保存的草稿数据启动流程，需在"start_process"区块中传入与草稿一致的"businessKey"，系统将自动关联草稿数据。
  
- 启动流程时传入的"businessKey"需全局唯一，重复的业务流水号可能导致流程关联异常。
  
 
#### 调用方法
请参见[如何调用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/start_process/startProcessInstance
#### 请求参数
表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参数 
| 参数       | 是否必选 | 参数类型                                                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| \[数组元素\] | 否    | Array of [DefinitionArrayParam] objects | **参数解释：** 启动流程入参集合，包含业务组件、参与者、附件等各类区块数据。数组中至少需包含一个"blockType"为"save_process_draft"的区块。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值** 不涉及。 |
   
 表3DefinitionArrayParam 
| 参数        | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| blockType | 是    | String           | **参数解释：** 区块类型，用于标识当前数据区块的业务组件类型。 **约束限制：** 不涉及。 **取值范围：** - attachment：附件组件，用于上传任务相关的附件。   - participant：设置参与者，用于预配置流程启动时的审批人信息。   - start_process：启动流程，用于直接启动流程实例。   - save_process_draft：保存草稿，用于保存申请单草稿数据。    **默认取值：** 不涉及。 |
| nodeId    | 是    | String           | **参数解释：** 区块ID，用于标识流程节点在流程模型中的唯一标识。对于"save_process_draft"类型，可传空字符串。 **约束限制：** 不涉及。 **取值范围：** 最大长度100字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| blockId   | 是    | String           | **参数解释：** 节点ID，用于标识业务组件实例的唯一标识。对于"save_process_draft"类型，可传空字符串。 **约束限制：** 不涉及。 **取值范围：** 最大长度100字符。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| data      | 否    | Array of strings | **参数解释：** 携带数据，包含当前区块需要保存的具体业务数据内容。数据结构取决于"blockType"类型。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数      | 参数类型                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| code    | Integer                                                     | **参数解释：** 接口返回码，标识接口调用的执行结果。 **取值范围：** - 200：成功。   - 非200：失败，具体错误码请参见[错误码](https://support.huaweicloud.com/api-idme/WorkFlow-Engine-ErrorCode.html)。    |
| data    | [data] object | **参数解释：** 接口响应数据，包含流程启动后的实例信息及待办任务列表。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| orderID | String                                                      | **参数解释：** 请求跟踪流水号，用于唯一标识本次接口请求，便于问题排查和链路追踪。 遇到问题时，请提供此ID联系技术支持。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表5data 
| 参数                    | 参数类型                                                                          | 描述                                                                                                                                                                                                                                          |
|:---|:---|:---|
| processInstanceId     | String                                                                        | **参数解释：** 流程实例ID，用于唯一标识本次启动的流程实例。后续查询流程状态、撤销流程等操作均需提供此ID。 **取值范围：** 不涉及。                    |
| businessKey           | String                                                                        | **参数解释：** 业务流水号，用于关联业务系统的业务标识。与请求中传入的"businessKey"一致，可用于业务系统与流程引擎的数据关联。 **取值范围：** 不涉及。      |
| taskList              | Array of [taskList] objects | **参数解释：** 任务列表，包含流程启动后生成的待办任务信息。如果流程首节点为自动任务（如脚本任务），列表可能为空，流程将自动流转至首个人工任务节点。 **取值范围：** 不涉及。 |
| processDefinitionName | String                                                                        | **参数解释：** 流程定义英文名称，用于标识当前流程的模板名称。与请求中的"processTemplateName"一致。 **取值范围：** 不涉及。               |
| version               | Integer                                                                       | **参数解释：** 流程模板定义版本，用于标识当前流程使用的模板版本号。与请求中的"processTemplateVersion"一致。 **取值范围：** 不涉及。         |
   
 表6taskList 
| 参数                  | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| processDefinitionId | String  | **参数解释：** 流程模板ID，用于唯一标识流程定义模板。格式为{processTemplateName}:{version}:{deploymentId}。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                     |
| processInstanceId   | String  | **参数解释：** 流程实例ID，用于标识当前任务所属的流程实例。与"data"中的"processInstanceId"一致。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                     |
| suspensionState     | Integer | **参数解释：** 挂起状态，标识当前任务或流程实例的执行状态。 **取值范围：** - 2：挂起   - 4：完成                                                      |
| taskDefinitionKey   | String  | **参数解释：** 任务节点Key，用于标识任务在流程模型中的节点定义标识。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| businessKey         | String  | **参数解释：** 业务单据ID，用于关联外部业务系统的业务标识。与流程实例的"businessKey"一致。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                              |
| name                | String  | **参数解释：** 任务名称，用于展示当前待办任务的标题。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| assignee            | String  | **参数解释：** 审核人，指定当前任务的负责人或处理人。格式为u.{userId}，其中"userId"为OrgID用户标识。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                     |
| id                  | String  | **参数解释：** 任务ID，用于唯一标识当前待办任务。后续[完成任务](https://support.huaweicloud.com/api-idme/completeTask.html)时需提供此ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                             |
| priority            | Integer | **参数解释：** 优先级，用于标识当前任务的处理紧急程度，数值越大优先级越高。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| transferSign        | Boolean | **参数解释：** 转审标识，标识当前任务是否在流程管理编辑中配置了转审组件。如配置转审，任务处理人可将任务转交给其他用户处理。 **取值范围：** - true：是，支持转审。   - false：否，不支持转审。    |
   
**状态码：400**
表7响应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/start_process/startProcessInstance
[ {
  "blockType" : "start_process",
  "nodeId" : "SubmitTask_1",
  "blockId" : "",
  "data" : [ {
    "processTemplateName" : "Test_20260629_0001",
    "processTemplateVersion" : "1"
  } ]
}, {
  "nodeId" : "SubmitTask_1",
  "blockType" : "WXR2024031201",
  "blockId" : "97d4decd",
  "data" : [ ]
}, {
  "nodeId" : "SubmitTask_1",
  "blockType" : "attachment",
  "blockId" : "67c0f8e6",
  "data" : [ ]
}, {
  "nodeId" : "SubmitTask_1",
  "blockType" : "participant",
  "blockId" : "256cf56f",
  "data" : [ {
    "Activity_1170mvn" : "548985778c8d4b7c860066b19a38d17c"
  } ]
} ]
```
#### 响应示例
**状态码：200**
OK
```
{
  "code" : 0,
  "data" : {
    "processInstanceId" : "2b263825-e206-11ee-b9f9-7804e3968f51",
    "businessKey" : "P10000548",
    "taskList" : [ {
      "processDefinitionId" : "WXR2024031201:5:32ff36dd48024b9b8da61e8b44dd27df",
      "processInstanceId" : "2b263825-e206-11ee-b9f9-7804e3968f51",
      "suspensionState" : 1,
      "taskDefinitionKey" : "Activity_0g0ayay",
      "transferSign" : false,
      "businessKey" : "P10000548",
      "name" : "用户任务",
      "assignee" : "u.hid_fje4j2nvnue3xwp",
      "id" : "2b542501-e206-11ee-b9f9-7804e3968f51",
      "priority" : 50
    } ],
    "processDefinitionName" : "WXR2024031201",
    "version" : 5
  },
  "orderID" : "d05ef61428014dd3804038ae6a9a9aea"
}
```
**状态码：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)。
