
# 为华为云Astro轻应用服务编排添加循环图元
#### 循环图元的作用
配置该图元能够对数组里的元素逐个取出做循环操作，类似于for each循环。循环的对象可以是字符串、数字，也可以是结构体等。
#### 如何使用循环图元
例如，当前有数组变量"TestList1"，"TestList2"，要求把"TestList1"中的元素逐个加到数组"TestList2"的后面。
1. 创建数组变量"TestList1"、"TestList2"和普通变量"test_var"。 
   1. 在服务编排编辑器页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301556.png)。
   
   2. 在全局上下文页面，单击"变量"后的加号。
      图1创建变量   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101225.png "点击放大") 
   
   3. 单击新增变量后的"..."，选择"设置"。
   
   4. 设置数组变量"TestList1"，数据类型为文本。
      图2数组变量"TestList1"   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301616.png "点击放大") 
   
   5. 参考上述步骤设置数组变量"TestList2"和普通变量"test_var"，普通变量不用勾选"是否为数组"。
      图3数组变量"TestList2"   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141636.png "点击放大")
      图4普通变量"test_var"   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301592.png "点击放大") 
   
   
   
   
2. 在逻辑中，拖拽"循环"图元到画布中。
3. 选中循环图元，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301532.png)，设置基本信息。
   
   图5设置基本信息   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000002000327749.png "点击放大")
   表1基本信息参数说明 
   | 参数 | 说明                                                                                                                                                                                                                                                                                                                                   |
   |:---|:---|
   | 标签 | 设置图元的标签，用于在服务编排设计页面展示。系统会自动填入该值，格式为Loop*序号*，序号从"0"开始，表示同类型图元序号。                                                                                                                                                                                                                                                                      |
   | 名称 | 设置图元的名称，名称为图元在服务编排中的标识，请确保在当前服务编排中唯一。命名要求如下： - 长度范围为1\~80个字符。  - 必须以英文字母开头，由英文字母，数字或单下划线组成，且不能以下划线结尾。   |
   | 描述 | 请根据实际需求，在输入框中输入图元的描述信息。 取值范围：1\~255个字符。                                                                                                                                                                                                                                                          |
      
   
   
4. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301608.png)，在"循环"页面进行配置。
   
   图6配置循环图元   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141668.png "点击放大")
   表2循环图元配置参数说明 
   | 参数 | 说明                                                                                                                              |
   |:---|:---|
   | 数组 | 进行循环的具体数组，可从全局上下文中拖拽或输入集合变量。 本示例从全局上下文拖拽数组变量"TestList1"，表示对数组"TestList1"进行循环。              |
   | 元素 | 将每次循环取出来的元素，赋值给该变量，可从全局上下文中拖拽或者输入变量。 本示例请从全局上下文拖拽普通变量"test_var"，表示将每次循环取出来的元素赋值给变量"test_var"。 |
   | 排序 | 循环取出的顺序，可选择升序或者降序从数组中依次取出。                                                                                                      |
      
   
   
5. 进行赋值操作，将"test_var"的值加到数组"TestList2"后面。 
   1. 在逻辑中，拖拽"赋值"图元到循环图元后。
      图7拖拽赋值图元   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141612.png "点击放大") 
   
   2. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141672.png)，设置"标签"和"名称"为"AddToList2"。
   
   3. 如下图所示，设置页面参数，从全局上下文拖拽数组变量"TestList2"到变量中，从全局上下文拖拽普通变量"test_var"到值中。将"test_var"的值加到数组"TestList2"后面。
      图8添加Assignment定义   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141656.png "点击放大") 
   
   
   
   
6. 将循环和赋值连线，在连线类型选择"下一个取值"。 
   图9添加连线   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141652.png "点击放大")
   
   
7. 清空"test_var"并闭环。 
   1. 在逻辑中，拖拽"赋值"图元至画布中。
   
   2. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101185.png)，设置"标签"和"名称"为"testvar_Tonull"。
   
   3. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141660.png)，设置页面参数。
      从全局上下文拖拽普通变量"test_var"到变量中，从全局上下文拖拽全局常量"$GlobalConstant.Null"到值中。清空"test_var"。
      图10清空test_var页面   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101201.png "点击放大") 
   
   
   
   
8. 在服务编排编辑器页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141664.png)，按照下图从全局上下文页面中拖拽参数到相应的入参和出参区域，设置服务编排的入参和出参。
   
   图11设置服务编排的入参和出参   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000002006598121.png "点击放大")
   
   
9. 按照下图连线，单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141628.png)，保存服务编排。
   
   图12连接图元   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301516.png "点击放大")
   
   
10. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301600.png)，在"输入参数"中输入参数后，运行服务编排。
    
    在"输入参数"中，输入如下参数：
    ```
    {
        "TestList1": [
            "1",
            "2",
            "3"
        ]
    }
    ```
    
    
11. 检查输出页签的结果是否符合预期。 
    ```
    {
      "interviewId": "002N000000YfbbgBStmq",
      "outputs": {
        "TestList2": [
          "1",
          "2",
          "3"
        ]
      }
    }
    ```
    
    
 
