FME创建循环

原文发布时间:2014-12-09

作者:一峰

什么是循环

循环是在自定义转换器中重复做一部分操作的方法。

循环是程序结构允许一部分重复执行,通常,这用于迭代,重复执行某个过程,逐步缩小范围,通常循环连接一个条件,即循环停止的条件。

注意:在FME中,循环只能在自定义转换器中创建

 

循环创建

除了数据的流入和流出,循环还需要三个对象:循环的输入、循环对象、循环条件。

(1)循环输入

循环的输入是通过输入对象定义的,它跟其他输入端口一样使用,例如,这里有一个输入端口来接受要素,另一个输入端口作为循环的输入。

如果你不希望循环输入端口在自定义转换器中显示,如下:

你可以打开循环输入端口的参数,关闭“publish”复选框:

2)循环对象

循环的关键步骤是定义一个循环对象,在自定义转换器中,

右击>insert Transformer Loop,添加循环对象

当你添加了循环对象,会提示你循环到哪个输入端口(即选择循环的输入端)。

点击OK,循环对象被创建。

(3)循环条件

当然,一般情况下,循环需要一个条件来终止循环,例如,你可以添加一个Tester转换器来进行条件来测试循环,如果失败,则继续循环,如果成功则输出结果。

这样我们在FME中就创建了一个最简单的循环

注意:正确设置循环条件,不要让FME陷入死循环,那样你会很崩溃的。

 

循环作用

在FME中正确利用循环是非常有用的,例如,在list1{N}.A中查找list2{M}.B中的元素,那么利用循环,设置变量i=0,如果i<M,则在list1{N}.A中查找list2{i}.B,如果找到,则记录list2{i}.B,如果没找到,则记录不存在。这样会大大提高FME执行的效率。

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/81092405