
# 获取导航树 - getNavigateTree
#### 功能介绍
本接口用于获取流程运行态的导航树信息，适用于展示流程实例的节点导航结构、节点状态及流转路径。与[查询任务列表 - queryTaskList](https://support.huaweicloud.com/api-idme/queryTaskList.html)接口配合，可定位当前待办任务在流程中的位置。
#### 接口约束
- 本接口支持基础版和体验版数据建模引擎-流程引擎场景。
  
- 查询流程实例导航树时，必须传入"processInstanceId"；仅查询模板结构时，可只传入"processTemplate"和"templateVersion"。
  
- 导航树的展示方向由"displayMode"控制，支持垂直（vertical）和水平（horizontal）两种布局。
  
 
#### 调用方法
请参见[如何调用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 /console/servicetask/api/localMethod/navtree/getNavigateTree
表1Query参数 
| 参数                | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| processTemplate   | 否    | String | **参数解释：** 流程模板名称，用于指定需要获取导航树的流程模板。仅传入模板参数时，返回模板结构预览，不包含实例执行状态。 **约束限制：** 与"processInstanceId"至少传入一组。如果同时传入"processInstanceId"，此参数将被忽略。 **取值范围：** 最大长度100字符。 **默认取值：** 不涉及。 |
| processInstanceId | 否    | String | **参数解释：** 流程实例ID，用于指定需要获取导航树的流程实例。传入后将返回实例级的导航树，包含各节点的实际执行状态。 **约束限制：** 与"processTemplate"和"templateVersion"至少传入一组。 **取值范围：** 最大长度100字符。 **默认取值：** 不涉及。                    |
| templateVersion   | 否    | String | **参数解释：** 流程模板版本，用于指定流程模板的版本号。 **约束限制：** 需与"processTemplate"同时传入。 **取值范围：** 最大长度100字符。 **默认取值：** 不涉及。                                                                      |
   
#### 请求参数
表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    | Integer                                                     | **参数解释：** 接口返回码，标识接口调用的执行结果。 **取值范围：** - 200：成功。   - 非200：失败，具体错误码请参见[错误码](https://support.huaweicloud.com/api-idme/WorkFlow-Engine-ErrorCode.html)。    |
| data    | [data] object | **参数解释：** 接口响应数据，包含流程导航树的完整结构信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| orderID | String                                                      | **参数解释：** 请求跟踪流水号，用于唯一标识本次接口请求，便于问题排查和链路追踪。 遇到问题时，请提供此ID联系技术支持。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表4data 
| 参数                  | 参数类型                                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|
| showStartCarbonCopy | Boolean                                                                 | **参数解释：** 启动流程是否抄送，标识流程启动节点是否配置了抄送功能。如果配置了抄送，流程启动时将自动通知抄送人。 **取值范围：** - true：已配置抄送。   - false：未配置抄送。                                                                                                                                                                                                                                                                                                                                                                                  |
| processStatus       | String                                                                  | **参数解释：** 流程状态，标识当前流程实例的整体执行状态。当传入"processInstanceId"时返回有效值。 **取值范围：** - RUNNING：运行中。   - COMPLETED：已完成。   - CANCELLED：已取消。   - SUSPENDED：已挂起。    |
| type                | String                                                                  | **参数解释：** 流程类型，标识流程节点的执行方式。用于前端判断节点布局方式（并行节点需特殊渲染）。 **取值范围：** - 0：并行（多个分支同时执行）。   - 1：串行（节点按顺序执行）。                                                                                                                                                                                                                                                                                                                                                                                    |
| steps               | Array of [steps] objects | **参数解释：** 流程步骤列表，包含导航树中各节点的详细信息。数组按"nodeIndex"排序，表示流程执行顺序。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| displayMode         | String                                                                  | **参数解释：** 导航树展示方式，用于控制导航树的页面布局方向。 **取值范围：** - vertical：垂直展示（默认）。   - horizontal：水平展示。                                                                                                                                                                                                                                                                                                                                                                                                 |
   
 表5steps 
| 参数                    | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|
| visible               | Boolean          | **参数解释：** 节点是否可见，用于控制该节点在导航树中的显示状态。不可见节点仍参与流程执行。 **取值范围：** - true：可见（默认）。   - false：不可见。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| compositeClick        | Boolean          | **参数解释：** 展开节点是否不可点击，用于控制复合节点（含子节点）的点击交互行为。如果不可点击，用户无法查看子节点详情。 **取值范围：** - true：可点击。   - false：不可点击。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| editStatus            | Integer          | **参数解释：** 节点是否可编辑，用于控制当前节点表单数据是否允许修改。 **取值范围：** - 1：可编辑。   - 0：不可编辑。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| resetStatus           | Integer          | **参数解释：** 节点状态是否重置，用于标识当前节点是否需要重置为初始状态。通常在驳回后重新执行节点时触发。 **取值范围：** - 1：重置。   - 0：不重置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| skip                  | Boolean          | **参数解释：** 节点是否跳过，用于标识当前节点在流程执行中是否被跳过。 **取值范围：** - true：是。   - false：否。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| rejectTargetRouterIDs | Array of strings | **参数解释：** 驳回节点目标ID列表，用于指定驳回操作后可返回的目标节点标识集合。前端可据此展示驳回路径选择器。 **取值范围：** 节点ID数组，对应"steps"中的"routerId"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| nodeType              | String           | **参数解释：** 节点类型，用于标识当前节点在流程模型中的角色。前端可根据类型渲染不同的节点图标。 **取值范围：** - ACTIVITY：活动节点，人工任务或自动任务。   - INACTIVE：非活动节点，当前未激活的节点。   - START_NODE：开始节点，流程起点。   - END_NODE：结束节点，流程终点。                                                                                                                                                          |
| navigationName        | String           | **参数解释：** 节点中文名，用于在导航树中展示该节点的中文标题。可在流程元模板中配置。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| expand                | Boolean          | **参数解释：** 节点是否展开，用于控制导航树中该节点的默认展开状态。复合节点（含子节点）可配置默认展开/收缩。 **取值范围：** - true：展开。   - false：收缩。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| iconStatus            | String           | **参数解释：** 节点状态图标，用于在导航树中展示该节点的可视化执行状态。前端可根据状态值渲染不同颜色。 **取值范围：** - 0：未完成（灰色）。   - 1：当前节点/进行中（进行中蓝色/高亮）。   - 2：已完成（绿色）。   - 3：被驳回（红色）。   - 4：操作节点（橙色，需用户操作）。    |
| routerId              | String           | **参数解释：** 节点ID，用于唯一标识流程模型中的节点定义。与流程元模板中的节点ID一致，可用于关联节点详情。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| showTips              | Boolean          | **参数解释：** 是否展示Tips提示，用于控制该节点是否显示悬浮提示信息。标悬停时展示节点详情。 **取值范围：** - true：是。   - false：否。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| showTodoTaskNum       | Boolean          | **参数解释：** 是否展示任务数量，用于控制该节点是否显示待办任务计数。适用于并行分支场景，展示各分支的待办任务数。 **取值范围：** - true：是。   - false：否。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| nodeIndex             | Integer          | **参数解释：** 节点索引，用于标识该节点在导航树中的顺序位置。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| navigationNameEn      | String           | **参数解释：** 节点英文名，用于在导航树中展示该节点的英文标题。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述    |
|:---|:---|:---|
| error_code | String | 错误码。  |
| error_msg  | String | 错误描述。 |
| result     | String | 结果。   |
| trace_id   | String | 追踪ID。 |
   
#### 请求示例
```
GET https://dme.cn-north-4.huaweicloud.cn/workflowRuntime/console/servicetask/api/localMethod/navtree/getNavigateTree?processTemplate=Test0425&processInstanceId=867272db-037c-11ef-8a3a-fa163eaf0a4f&templateVersion=6
```
#### 响应示例
**状态码：200**
OK
```
{
  "code" : 0,
  "data" : {
    "showStartCarbonCopy" : false,
    "type" : "",
    "steps" : [ {
      "visible" : true,
      "compositeClick" : true,
      "editStatus" : 1,
      "resetStatus" : 0,
      "skip" : false,
      "rejectTargetRouterIDs" : [ ],
      "nodeType" : "START_NODE",
      "navigationName" : "start",
      "expand" : true,
      "iconStatus" : "1",
      "routerId" : "StartEvent_1",
      "showTips" : false,
      "showTodoTaskNum" : false,
      "nodeIndex" : 4,
      "navigationNameEn" : "start_EN"
    }, {
      "visible" : true,
      "compositeClick" : true,
      "editStatus" : 0,
      "resetStatus" : 0,
      "skip" : false,
      "rejectTargetRouterIDs" : [ ],
      "nodeType" : "ACTIVITY",
      "navigationName" : "用户任务",
      "expand" : true,
      "iconStatus" : "0",
      "routerId" : "Activity_1atly5y",
      "showTips" : false,
      "showTodoTaskNum" : false,
      "nodeIndex" : 5,
      "navigationNameEn" : "用户任务_EN"
    }, {
      "visible" : true,
      "compositeClick" : true,
      "editStatus" : 0,
      "resetStatus" : 0,
      "skip" : false,
      "rejectTargetRouterIDs" : [ ],
      "nodeType" : "END_NODE",
      "navigationName" : "结束事件",
      "expand" : true,
      "iconStatus" : "0",
      "routerId" : "Event_1cl78en",
      "showTips" : false,
      "showTodoTaskNum" : false,
      "nodeIndex" : 6,
      "navigationNameEn" : "结束事件_EN"
    } ],
    "displayMode" : "vertical"
  },
  "orderID" : "4955656faee64b9781ab3a1f45a948ea"
}
```
**状态码：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)。
