
# 获取流程变量 - getVariablesByProcInstIdQuery
#### 功能介绍
本接口用于通过流程实例ID获取流程变量，适用于查询流程执行过程中产生的所有变量数据，包括流程级变量（全局变量）和任务级变量（局部变量）。流程变量是流程引擎中用于存储和传递业务数据的核心机制，在流程流转、条件判断、任务分配等场景中发挥关键作用。
与[查询复杂流程图数据 - queryActInstInfoByProcId](https://support.huaweicloud.com/api-idme/queryActInstInfoByProcId.html)接口配合，可将变量数据与节点执行状态结合，完整还原流程的执行上下文；与[完成任务 - completeTask](https://support.huaweicloud.com/api-idme/completeTask.html)接口配合，可验证变量是否正确传递和存储。
#### 接口约束
本接口支持基础版和体验版数据建模引擎-流程引擎场景。
#### 调用方法
请参见[如何调用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
GET /services/workflow/processInstance/instance/getVariables
表1Query参数 
| 参数                | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| processInstanceId | 是    | String | **参数解释：** 流程实例ID，用于指定需要查询流程图数据的流程实例。 可通过[我的任务](https://support.huaweicloud.com/api-idme/mytasks.html)、[我发起的流程](https://support.huaweicloud.com/api-idme/myprocesses.html)等接口获取。 **约束限制：** 不涉及。 **取值范围：** 最大长度100字符。 **默认取值：** 不涉及。 |
| pageSize          | 是    | String | **参数解释：** 分页大小，即每页返回的变量记录数。需与curPage同时传入。 **约束限制：** 建议设置为50-100，过大的分页值可能影响接口性能。 **取值范围：** 正整数，取值范围1-100。 **默认取值：** 不涉及。                                                                                                                                                            |
| curPage           | 是    | String | **参数解释：** 当前页码，用于指定分页查询的页数。需与pageSize同时传入才生效，从1开始计数。 **约束限制：** 不涉及。 **取值范围：** 正整数，取值范围1-1000。 **默认取值：** 不涉及。                                                                                                                                                                       |
   
#### 请求参数
表2请求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)接口获取。 **约束限制：** 仅基础版数据建模引擎-流程引擎需要配置此参数。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数      | 参数类型                                                                                                              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| code    | String                                                                                                            | **参数解释：** 返回状态码，标识接口调用的执行结果。 注意：本接口使用字符串类型的状态码，与其他接口的Integer类型不同。 **取值范围：** - 200：成功。   - 500：失败。    |
| message | String                                                                                                            | **参数解释：** 返回信息，描述接口调用的结果说明。当code为"500"时，此字段包含具体的错误描述。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| result  | Array of [ProcessInstanceVariablesVO] objects | **参数解释：** 返回响应数据列表，包含流程实例的所有变量信息。按createTime升序排列。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| pageVO  | [AdaptPageVO] object                                         | **参数解释：** 返回单个响应数据，包含当前分页的元数据（总记录数、当前页、页大小、总页数等）。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| orderId | String                                                                                                            | **参数解释：** 全局日志追踪ID，用于唯一标识本次接口请求，便于问题排查和链路追踪。遇到问题时，请提供此ID联系技术支持。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表4ProcessInstanceVariablesVO 
| 参数                    | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| id                    | String  | **参数解释：** 流程变量ID，用于唯一标识变量记录。在审计场景中可用于追溯单条变量记录。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| processDefinitionId   | String  | **参数解释：** 该流程的流程模板key+版本+流程实例ID。格式为{processTemplateKey}:{version}:{deploymentId}，用于唯一标识流程定义模板。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| processDefinitionKey  | String  | **参数解释：** 流程模板ID（Key），用于标识流程模板的唯一标识。与流程设计态中的模板Key一致。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| rootProcessInstanceId | String  | **参数解释：** 历史事件触发时的父流程ID。对于主流程实例，此字段与processInstanceId一致；对于子流程实例，此字段指向父流程实例ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| processInstanceId     | String  | **参数解释：** 流程实例ID，标识变量所属的流程实例。与请求参数中的processInstanceId一致。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| taskId                | String  | **参数解释：** 流程任务ID，标识变量所属的具体任务。若为流程级变量（全局变量），此字段为null。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| tenantId              | String  | **参数解释：** 租户ID，标识变量所属的数据建模引擎租户。与请求Header中的X-Tenant-Id对应。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| executionId           | String  | **参数解释：** 流程执行段ID，标识变量所属的执行上下文。在并行分支或子流程场景中，不同分支可能具有不同的executionId。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| activityInstanceId    | String  | **参数解释：** 活动实例ID，标识变量关联的活动实例。与流程引擎内部的活动实例跟踪机制对应。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| name                  | String  | **参数解释：** 流程变量名，标识变量的业务含义。常见变量名包括： - 节点相关：Activity_16kgz9u（节点ID作为变量名，存储节点处理人信息）。   - 申请人相关：applicant（流程发起人账号）。   - 邮件抄送：_mail_cc（邮件抄送人列表）。   - 业务自定义：由流程设计者在流程设计态中定义。    **取值范围：** 不涉及。 |
| caseDefinitionKey     | String  | **参数解释：** 案例定义Key，用于CMMN（案例管理模型和标记法）场景。当前流程引擎场景中通常为null。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| caseDefinitionId      | String  | **参数解释：** 案例定义ID，用于CMMN场景。当前流程引擎场景中通常为null。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| caseInstanceId        | String  | **参数解释：** 案例实例ID，用于CMMN场景。当前流程引擎场景中通常为null。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| caseExecutionId       | String  | **参数解释：** 案例执行ID，用于CMMN场景。当前流程引擎场景中通常为null。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| revision              | Integer | **参数解释：** 流程变量修改版本，标识变量被修改的次数。首次创建时版本为0，每次更新后版本递增。用于乐观锁控制和并发冲突检测。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| createTime            | String  | **参数解释：** 流程变量创建时间，标识变量首次被设置的时间。格式为ISO 8601标准时间字符串（yyyy-MM-dd'T'HH:mm:ss.SSSXXX）。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| value                 | String  | **参数解释：** 国际化数据key对应的value值，即翻译后的显示文本。前端根据当前语言环境匹配对应的value值进行展示。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| textValue2            | String  | **参数解释：** 流程变量文本值，用于存储变量的附加文本信息。通常为null，仅在特定类型的变量（如长文本、JSON字符串）中使用。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| type                  | String  | **参数解释：** 流程变量类型，标识变量值的Java数据类型。调用方需根据此字段进行类型转换和解析。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| state                 | String  | **参数解释：** 流程变量状态，标识变量的生命周期状态。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| taskDefinitionKey     | String  | **参数解释：** 模板中节点（任务）的编号，标识变量关联的节点定义。若为流程级变量，通常为"Global"。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| taskDefinitionName    | String  | **参数解释：** 模板中节点（任务）的名称，标识变量关联的节点名称。若为流程级变量，通常为"Global"。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| taskDefinitionType    | String  | **参数解释：** 模板中节点（任务）的类型，标识变量的作用域范围。 **取值范围：** - processInstance：流程实例级变量（全局变量，整个流程实例可见）。   - userTask：用户任务级变量（局部变量，仅在当前任务及后续节点可见）。   - serviceTask：服务任务级变量。   - scriptTask：脚本任务级变量。       |
   
 表5AdaptPageVO 
| 参数         | 参数类型    | 描述                                                                                                                                                                                                                                    |
|:---|:---|:---|
| totalRows  | Integer | **参数解释：** 数据总数，即符合查询条件的流程变量总记录数。用于前端计算总页数。 **取值范围：** 非负整数。                            |
| curPage    | Integer | **参数解释：** 当前页码，用于指定分页查询的页数。需与pageSize同时传入才生效，从1开始计数。 **取值范围：** 不涉及。                   |
| pageSize   | Integer | **参数解释：** 页大小，与请求参数中的pageSize一致。 **取值范围：** 不涉及。                                       |
| totalPages | Integer | **参数解释：** 总页数，计算公式为ceil(totalRows / pageSize)。 **取值范围：** 非负整数。                        |
| startIndex | Integer | **参数解释：** 开始下标，当前页第一条记录在总记录中的索引（从1开始）。 **取值范围：** 正整数。                                 |
| endIndex   | Integer | **参数解释：** 结束下标，当前页最后一条记录在总记录中的索引。 **取值范围：** 正整数。                                      |
| offset     | Integer | **参数解释：** 偏移量，当前页第一条记录在总记录中的偏移量（从0开始）。计算公式为(curPage - 1) \* pageSize。 **取值范围：** 非负整数。 |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
| result     | String | 结果。   |
| trace_id   | String | 追踪ID。 |
   
#### 请求示例
```
GET https://dme.cn-north-4.huaweicloud.cn/workflowRuntime/services/workflow/processInstance/instance/getVariables?processInstanceId=154a5392-ad56-11ef-94c2-fa163e3e9614&pageSize=100&curPage=1
```
#### 响应示例
**状态码：200**
OK
```
{
    "code": 200,
    "message": "success",
    "pageVO": {
        "totalRows": 8,
        "curPage": 1,
        "pageSize": 100,
        "startIndex": 1,
        "endIndex": 100,
        "offset": 0,
        "totalPages": 1
    },
    "result": [
        {
            "id": "154aa1ba-ad56-11ef-94c2-fa163e3e9614",
            "processDefinitionId": "Process_xiejia_1126_2:1:a60b112ee2304d84a5432b94e86d81ec",
            "processDefinitionKey": "Process_xiejia_1126_2",
            "rootProcessInstanceId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "processInstanceId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "taskId": null,
            "tenantId": 10000243,
            "executionId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "activityInstanceId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "name": "Activity_16kgz9u",
            "caseDefinitionKey": null,
            "caseDefinitionId": null,
            "caseInstanceId": null,
            "caseExecutionId": null,
            "revision": 0,
            "createTime": 2024-11-28T06: 57: 50.778+0000,
            "value": "93172bbfd0f64437956d4c9de9345386",
            "textValue2": null,
            "type": "string",
            "state": "CREATED",
            "taskDefinitionKey": "Global",
            "taskDefinitionName": "Global",
            "taskDefinitionType": "processInstance"
        },
        {
            "id": "154aa1bb-ad56-11ef-94c2-fa163e3e9614",
            "processDefinitionId": "Process_xiejia_1126_2:1:a60b112ee2304d84a5432b94e86d81ec",
            "processDefinitionKey": "Process_xiejia_1126_2",
            "rootProcessInstanceId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "processInstanceId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "taskId": null,
            "tenantId": 10000243,
            "executionId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "activityInstanceId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "name": "applicant",
            "caseDefinitionKey": null,
            "caseDefinitionId": null,
            "caseInstanceId": null,
            "caseExecutionId": null,
            "revision": 0,
            "createTime": 2024-11-28T06: 57: 50.778+0000,
            "value": "XDM_Developer",
            "textValue2": null,
            "type": "string",
            "state": "CREATED",
            "taskDefinitionKey": "Global",
            "taskDefinitionName": "Global",
            "taskDefinitionType": "processInstance"
        },
        {
            "id": "154aa1b9-ad56-11ef-94c2-fa163e3e9614",
            "processDefinitionId": "Process_xiejia_1126_2:1:a60b112ee2304d84a5432b94e86d81ec",
            "processDefinitionKey": "Process_xiejia_1126_2",
            "rootProcessInstanceId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "processInstanceId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "taskId": null,
            "tenantId": 10000243,
            "executionId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "activityInstanceId": "154a5392-ad56-11ef-94c2-fa163e3e9614",
            "name": "_mail_cc",
            "caseDefinitionKey": null,
            "caseDefinitionId": null,
            "caseInstanceId": null,
            "caseExecutionId": null,
            "revision": 0,
            "createTime": 2024-11-28T06: 57: 50.778+0000,
            "value": null,
            "textValue2": null,
            "type": null,
            "state": "CREATED",
            "taskDefinitionKey": "Global",
            "taskDefinitionName": "Global",
            "taskDefinitionType": "processInstance"
        }
    ],
    "orderId": "estgjvuk56sc3o34qonmqwlpo3j65kgc"
}
```
**状态码：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)。
