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