更新时间:2024-08-29 GMT+08:00
分享

为AstroZero服务编排添加循环图元

循环图元的作用

配置该图元能够对数组里的元素逐个取出做循环操作,类似于for each循环。循环的对象可以是字符串、数字,也可以是结构体等。

如何使用循环图元

例如,当前有数组变量“TestList1”,“TestList2”,要求把“TestList1”中的元素逐个加到数组“TestList2”的后面。

  1. 创建数组变量“TestList1”、“TestList2”和普通变量“test_var”。

    1. 在服务编排编辑器页面右侧,选择
    2. 在全局上下文页面,单击“变量”后的加号。
      图1 创建变量
    3. 单击新增变量后的“...”,选择“设置”。
    4. 设置数组变量“TestList1”,数据类型为文本。
      图2 数组变量“TestList1”
    5. 参考上述步骤设置数组变量“TestList2”和普通变量“test_var”,普通变量不用勾选“是否为数组”。
      图3 数组变量“TestList2”
      图4 普通变量“test_var”

  2. 在逻辑中,拖拽“循环”图元到画布中。
  3. 选中循环图元,单击,设置基本信息。

    图5 设置基本信息
    表1 基本信息参数说明

    参数

    说明

    标签

    设置图元的标签,用于在服务编排设计页面展示。系统会自动填入该值,格式为Loop序号,序号从“0”开始,表示同类型图元序号。

    名称

    设置图元的名称,名称为图元在服务编排中的标识,请确保在当前服务编排中唯一。命名要求如下:

    • 长度范围为1~80个字符。
    • 必须以英文字母开头,由英文字母,数字或单下划线组成,且不能以下划线结尾。

    描述

    请根据实际需求,在输入框中输入图元的描述信息。

    取值范围:1~255个字符。

  4. 单击,在“循环”页面进行配置。

    图6 配置循环图元
    表2 循环图元配置参数说明

    参数

    说明

    数组

    进行循环的具体数组,可从全局上下文中拖拽或输入集合变量。

    本示例从全局上下文拖拽数组变量“TestList1”,表示对数组“TestList1”进行循环。

    元素

    将每次循环取出来的元素,赋值给该变量,可从全局上下文中拖拽或者输入变量。

    本示例请从全局上下文拖拽普通变量“test_var”,表示将每次循环取出来的元素赋值给变量“test_var”。

    排序

    循环取出的顺序,可选择升序或者降序从数组中依次取出。

  5. 进行赋值操作,将“test_var”的值加到数组“TestList2”后面。

    1. 在逻辑中,拖拽“赋值”图元到循环图元后。
      图7 拖拽赋值图元
    2. 单击,设置“标签”和“名称”为“AddToList2”。
    3. 如下图所示,设置页面参数,从全局上下文拖拽数组变量“TestList2”到变量中,从全局上下文拖拽普通变量“test_var”到值中。将“test_var”的值加到数组“TestList2”后面。
      图8 添加Assignment定义

  6. 将循环和赋值连线,在连线类型选择“下一个取值”。

    图9 添加连线

  7. 清空“test_var”并闭环。

    1. 在逻辑中,拖拽“赋值”图元至画布中。
    2. 单击,设置“标签”和“名称”为“testvar_Tonull”。
    3. 单击,设置页面参数。
      从全局上下文拖拽普通变量“test_var”到变量中,从全局上下文拖拽全局常量“$GlobalConstant.Null”到值中。清空“test_var”。
      图10 清空test_var页面

  8. 在服务编排编辑器页面右侧,选择,按照下图从全局上下文页面中拖拽参数到相应的入参和出参区域,设置服务编排的入参和出参。

    图11 设置服务编排的入参和出参

  9. 按照下图连线,单击页面上方的,保存服务编排。

    图12 连接图元

  10. 单击,在“输入参数”中输入参数后,运行服务编排。

    在“输入参数”中,输入如下参数:
    {
        "TestList1": [
            "1",
            "2",
            "3"
        ]
    }

  11. 检查输出页签的结果是否符合预期。

    {
      "interviewId": "002N000000YfbbgBStmq",
      "outputs": {
        "TestList2": [
          "1",
          "2",
          "3"
        ]
      }
    }

相关文档