
# 引用变量
在组合应用的流任务编排中，以及连接器和处理器配置中涉及到大量的输入输出信息，还涉及到大量的配置信息需要填写。用户在编辑设计组合应用时，可以通过变量的方式快速引用流任务中的输入输出信息和配置信息，帮助用户便捷高效地设计组合应用。
组合应用中的变量可以分为系统变量、节点变量和自定义变量三种。同名变量的优先级为：系统变量 \> 节点变量 \> 自定义变量。
#### 系统变量
系统提供了一些内置的变量，表示系统参数或者某些连接器的特定输出。当前组合应用提供的系统变量如[表1]所示。
系统变量引用方式：${变量名}。
 表1系统变量说明 
| 变量                        | 说明                                                                                                                     |
|:---|:---|
| Execution time            | 当前步骤执行耗时(毫秒)。                                                                                                          |
| Previous scheduled time   | 上一次执行的UTC时间，如2023-03-01T10:26:33.410Z。                                                                                 |
| Next scheduled time       | 下一次执行的UTC时间，如2023-03-01T10:26:33.410Z。                                                                                 |
| Status code               | HTTP请求的响应码。                                                                                                            |
| Selected count            | 上一个数据库节点执行查询操作的数据条数。 仅支持MySQL，Gauss200，PostgreSQL，Oracle，SQL Server或DB2数据库。        |
| Updated count             | 上一个数据库节点执行插入、更新和删除操作的数据条数。 仅支持MySQL，Gauss200，PostgreSQL，Oracle，SQL Server或DB2数据库。 |
| Loop index                | 上一个循环处理节点，当前循环的索引，从0开始。                                                                                                |
| Loop size                 | 上一个循环处理节点的循环总次数。                                                                                                       |
| Item                      | 上一个循环处理节点遍历的数据                                                                                                         |
| Split index               | 上一个数据拆分节点，在数据拆分时当前数据块的索引，从0开始。                                                                                         |
| Split size                | 上一个数据拆分节点的数据拆分数量。                                                                                                      |
| split_complete            | 上一个数据拆分节点，数据拆分是否完成。                                                                                                    |
| Payload                   | 上一个节点的输出内容。                                                                                                            |
| Request method            | 上一个Open API节点的请求方法。                                                                                                    |
| Request path              | 上一个Open API节点的请求路径。                                                                                                    |
| Script result             | 上一个脚本执行节点的结果。                                                                                                          |
| Aggregation complete time | 各分支执行完成后，完成聚合结果的UTC时间，如2023-03-01T10:26:33.410Z。                                                                       |
   
 #### 节点变量
上一个节点的执行结果，可以作为节点变量，被后续节点进行引用，如Open API的请求体内容、查询数据库的结果、HTTP请求的结果等。
节点变量引用方式：${payload}。
如果执行结果是一个对象，如JSON对象、XML对象等，可以使用${payload.id}或者${payload\[0\].id}等方式，引用执行结果中的部分数据。
**使用示例：**
例如当HTTP请求节点执行完成收到的响应体为如下JSON格式数据，在后续节点可使用${payload}引用该JSON数据，使用${payload.id}来引用"00000000"值，使用${payload.data\[0\].value}来引用"x"值。
```
{
    "id":"00000000",
    "name":"sample01",
    "data":[
        {
            "id":1,
            "value":"x"
        },
        {
            "id":2,
            "value":"y"
        },
        {
            "id":3,
            "value":"z"
        }
    ]
}
```
 #### 自定义变量
自定义变量包括用户在"变量配置"中添加的变量，在"Open API"节点添加的请求参数、在"变量赋值"节点添加的变量、在"脚本处理"节点配置的"输出到变量"参数等，可以在后续节点中被引用。
自定义变量引用方式：${变量名/参数名}。
- 在"变量配置"添加变量
  1. 登录CodeArts Link控制台。
  
  2. 在左侧导航栏选择"组合应用"，在组合应用页面找到要添加变量配置的组合应用。
  
  3. 单击组合应用上的"![](https://support.huaweicloud.com/usermanual-codeartslink/zh-cn_image_0000001643767100.png)"，选择"编辑"，进入组合应用的编辑界面。
  
  4. 单击页面正上方的"变量配置"。
  
  5. 在变量配置弹窗中单击"添加"，添加变量。
     表2配置变量 
     | 参数   | 说明                                                                                                                                                                                                                                                                                           |
     |:---|:---|
     | 变量名  | 填写变量的名称，后续将通过变量名称进行引用。                                                                                                                                                                                                                                                                       |
     | 配置类型 | 选择变量的数据类型，可选择"字符串"、"整数"、"长整数"、"小数"、"布尔"和"密码"。                                                                                                                                                                                                                                                |
     | 变量值  | 填写变量的值。                                                                                                                                                                                                                                                                                      |
     | 作用域  | 选择变量的生效范围： - 所有组合应用生效（global）。  - 仅当前组合应用生效。   |
     | 描述   | 填写变量的描述信息。                                                                                                                                                                                                                                                                                   |
        
     
  
  6. 单击"保存"，保存变量信息。
   
- 在"Open API"节点添加请求参数 具体配置操作请参考[Open API](https://support.huaweicloud.com/usermanual-codeartslink/codeartslink_03_0010.html)。
  
- 在"变量赋值"节点添加变量 具体配置操作请参考[变量赋值](https://support.huaweicloud.com/usermanual-codeartslink/codeartslink_03_0061.html)。
  
- 在"脚本处理"节点配置"输出到变量"参数 具体配置操作请参考[脚本处理](https://support.huaweicloud.com/usermanual-codeartslink/codeartslink_03_0066.html)。
  
 
