6.1、循环控制
功能模块如图所示:

分组循环开始 ¶
功能:每次迭代处理另一组行。需要指定要分组的列。默认情况下,在循环开始之前,输入数据表将根据指定的列进行排序。如果输入数据表已经根据要分组的列正确排序,则可以关闭排序。如果排序被关闭,但输入表没有正确排序,执行将被取消。

配置界面功能说明:
配置-选项:
- 选择列:选择用于分组循环标识的列。
- 输入已按组列排序[如果排序不正确则执行失败]:如果选中,则输入数据表在循环开始之前不会排序。表必须已经按照要分组的列进行了正确的排序。如果排序被关闭,但输入表没有正确排序,执行将被取消。
循环结束 ¶
功能:循环末尾的节点。它用于标记工作流循环的结束,并通过按行连接传入表来收集中间结果。循环的开始是由循环开始节点定义的,在这个节点中,你可以定义循环执行的频率(固定的或从数据派生的,例如“组循环开始”)。中间的所有节点都要执行那么多次。您可以使用“…”菜单添加更多的输入和输出表。

配置界面功能说明:
配置-标准设置:
- 行关键策略:指定如何处理每个表的行id。
- 生成新的行序号:新生成的行id (Row0, Row1,…)。
- 通过附加后缀来唯一行序号:迭代号被添加到表中的每个行ID,从而使行ID在所有迭代中都是唯一的。
- 保持行序号不变:传入行id不会改变。在这种情况下,必须确保在不同的迭代中没有重复的行id。否则将发生错误。
- 添加迭代列:勾选该项后,将包含迭代数的列添加到输出表中。
- 导出循环中修改的变量:如果勾选,则该节点将导出在循环中修改值的变量。这些变量必须在循环之外声明,即从另一分支注入到循环中,或者在相应的循环开始节点的上游可用。对于后者,变量的任何修改都将在后续迭代中传递回起始节点(例如移动和计算)。注意,循环开始节点本身定义的变量被排除在外,因为这些变量通常表示循环控件。
- 忽略空输入表:如果选中此选项,空输入表及其结构将被忽略,并且不会导致节点失败。
- 允许可变列类型:如果选中,当不同表迭代之间的列类型发生变化时,循环不会失败。结果列将具有不同列类型的公共超类型。
- 允许更改表规范:如果选中,迭代之间的表规范可能不同。如果在迭代之间添加或删除了列,则在结果表中相应地插入缺失的值。如果没有选中,并且表规格不同,则节点将执行失败。
转流变量循环开始 ¶
功能:该节点使用数据表的每一行为每次循环迭代定义新的变量值。变量的名称由列名定义。

配置界面功能说明:
配置-设置:
- 缺失值处理:允许指定如何处理缺失值。注:空表被视为只包含缺失值。
- 失败:如果勾选,输入表为空或要转换的列中缺少值,则节点执行失败。
- 使用预设的默认值:用(配置的)默认值替换任何缺失的值。如果没有默认值与缺失的单元格类型相关联,则执行失败。
- 忽略:缺失的单元格将不会被转换,因此将从输出中删除。
- 默认值设置:允许指定字符串,布尔值,整型,长整型和双双精度浮点型的默认值。
- 列选择:选择那些单元格必须转换为流变量的列。