
# 配置条件分支算子
条件分支算子通过获取上游算子的请求参数或结果集进行条件判断，根据定义的表达式来确定下一步执行的分支。注意，多个分支满足条件时仅执行第一个满足条件的分支。
表1条件分支算子 
| 参数   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|
| **分支1**                                                                                                                                                                                                                                                                                                                                                                                                                                               ||
| 条件类型 | 选择条件类型。 - 满足当前条件时：表示传入"条件分支"的数据满足指定的表达式时，将执行该分支。  - 不满足其他条件时：表示传入"条件分支"的数据不满足其他所有分支的条件时，将执行该分支。                                                                                                                                |
| 表达式  | 当条件类型为"满足当前条件时"，需要根据表达式配置条件。 条件分支表达式由上游算子的节点编码和变量名组成，使用方法请参考[变量表达式定义方法]。                                                                                                                                                                                                                                                                               |
| **分支2**                                                                                                                                                                                                                                                                                                                                                                                                                                               ||
| 条件类型 | 选择条件类型。 - 满足当前条件时：表示传入"条件分支"的数据满足指定的表达式时，将执行该分支。  - 不满足其他条件时：表示传入"条件分支"的数据不满足其他所有分支的条件时，将执行该分支。             |
| 表达式  | 当条件类型为"满足当前条件时"，需要根据表达式配置条件。 条件分支表达式由上游算子的节点编码和变量名组成，使用方法请参考[变量表达式定义方法](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0327.html#dataartsstudio_01_0327__section8902124616177)。                                                                                                                                                                                            |
| ...                                                                                                                                                                                                                                                                                                                                                                                                                                                   ||
| **分支n**                                                                                                                                                                                                                                                                                                                                                                                                                                               ||
| 条件类型 | 选择条件类型。 - 满足当前条件时：表示传入"条件分支"的数据满足指定的表达式时，将执行该分支。  - 不满足其他条件时：表示传入"条件分支"的数据不满足其他所有分支的条件时，将执行该分支。   |
| 表达式  | 当条件类型为"满足当前条件时"，需要根据表达式配置条件。 条件分支表达式由上游算子的节点编码和变量名组成，使用方法请参考[变量表达式定义方法](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0327.html#dataartsstudio_01_0327__section8902124616177)。                                                                                                                                                                                           |
   
 #### 表达式定义方法
在定义条件分支的表达式时，需要配置变量表达式。当前仅入口API和普通API支持定义变量，条件分支、并行处理和输出处理暂不支持。表达式标准写法为：${***节点编码*** \|***变量名}*** ，定义方法如[表2]所示。
- **节点编码** ：由系统动态分配，不可改动。您可以在API编排的画布中，单击节点后在节点详情中查看节点编码，并支持通过![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001861660740.png)复制节点编码。
  图1查看节点编码   
  ![](https://support.huaweicloud.com/usermanual-dataartsstudio/zh-cn_image_0000001908583997.png "点击放大")
  
  
- **变量名** ：支持的变量包括请求参数值和结果集相关参数，详情请参见[表2]。
 表2条件表达式定义方法 
| 算子        | 变量表达式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 样例                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|
| **入口API** | 获取入口API的请求参数的值：${***节点编码*** \|++***入参名***++ } 说明： 当入参位置为Query、Header、Path或入参位置为Body的POST请求时，支持此表达式。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 入口API的节点编码为EntryApi_3909f，入参userId位置为Path，获取请求参数的值：${EntryApi_3909f\|userId}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| **普通API** | 1. 获取普通API的请求参数的值：${***节点编码*** \|++***入参名***++ } 说明： 当入参位置为Query、Header、Path或入参位置为Body的POST请求时，支持此表达式。   2. 获取普通API的结果集及相关变量： - 获取普通API的查询状态是否成功，结果为true或false：${***节点编码***\|payload.success}  - 获取普通API查询结果集内的行数：${***节点编码***\|payload.rowSize}  - 获取普通API查询结果集内的列数：${***节点编码***\|payload.columnSize}  - 获取普通API查询结果集内的列名：${***节点编码***\|payload.columnNames}  - 获取普通API查询结果集内的第n行、对应列名为id的值：${***节点编码*** \|payload.data\[***n-1*** \].***id***}     | - 普通API的节点编码为NormalApi_4246f，入参userId位置为Path，获取请求参数的值：${NormalApi_4246f\|userId}  - 普通API的节点编码为NormalApi_4246f，取值结果为多行单列的一维数组，获取结果集内第1行的值：${NormalApi_4246f\|payload.data\[0\]}  - 普通API的节点编码为NormalApi_4246f，取值结果为多行多列的二维数组，获取结果集内第1行、列名为price的值：${NormalApi_4246f\|payload.data\[0\].price}   |
   
例如，对于A（入口API）\>B（普通API）\>C（条件分支）这3个顺序节点，节点C需要取节点A的请求参数值和节点B的输出值：
- A节点编码为EntryApi_3909f，入参userId位置为Path。 取A节点请求参数值：${EntryApi_3909f\|userId}。
  
- B节点编码为NormalApi_4246f，取值结果为多行多列的二维数组，获取结果集内第1行、列名为name的值。 取B节点输出：${NormalApi_4246f\|payload.data\[0\].name}。
  
 
