span8
span4
当在FME工作时,一些变压器被称为“阻塞变压器”,例如剪刀,空间相关器或者任何可以使用“Group By”功能的转换器。这些转换器要求所有的输入特性都保存在那里,直到所有的特性都被接收,以完成转换器的操作,然后才释放特性,继续执行工作流。亚搏在线看闭锁变压器从2017年FME UC核心概念视频了解更多。
当在自定义转换器中进行循环时,保留所有的特性会出现问题,因为阻塞的转换器永远不会接收所有的输入特性,因为它期望从循环中获得特性。值得庆幸的是,只要你使用FME 2011+, FME就有解决方案。
*注意:要运行simpleloopingdemo-completed.fmw工作区,需要将simpleloopingdemo.fmx自定义转换器移动到工作区可以访问的默认位置。此位置可在“工具”>“FME选项”…>“默认路径”>“共享FME文件夹”中找到。
当使用循环将阻塞转换器添加到自定义转换器内部时,将出现一条警告消息。此消息声明,要使用此转换器,需要将自定义转换器导出到外部的.fmx文件:
文件导出后,就可以使用带有循环的自定义转换器。
在本例中,将使用循环将点移动到正方形的边界,并检查该点是否位于正方形内。一旦点离开正方形,工作空间将结束。
1)打开模板工作区
在FME工作台中,打开SimpleLoopDemo.fmw。这个工作区有一个point和一个square Creator转换器,以及已经设置好的simpledemoop自定义转换器。我们只需要添加SpatialFilter变压器并解决阻塞变压器的错误。
切换到SimpleLoopDemo选项卡,这是几乎完成的自定义转换器。向画布添加一个SpatialFilter。在出现的警告消息上单击Yes。
在导出为自定义转换器对话框中,将插入模式更改为始终链接。保存位置应该用FME选项中设置的默认路径自动填充。常见的路径是:
C:\Users\SampleUser\Documents\FME\变形金刚
单击OK保存转换器。一个新的FME工作台实例将与SampleLoopDemo一起打开。那么玩fmx定制变压器。在使用外部自定义转换器时,重要的是在.fmx中而不是在.fmw工作区中进行所有更改。
2)连接空间过滤器
在保存自定义转换器时打开的FME工作台的.fmx版本中,连接SpatialFilter转换器。将筛选器输入端口连接到方形端口,将候选输入端口连接到点端口。接下来,将传递的输出端口连接到offetter,将失败的输出端口连接到外部端口。
3)设置阻塞参数
在我们可以在工作区中保存和使用这个转换器之前,我们需要设置一些附加参数,以使循环能够与阻塞转换器一起运行。
在Navigator窗口中,展开Transformer参数,然后展开Advanced。双击enable blocked looping,打开参数,并将其更改为yes。接下来,最好是设置迭代参数的最大数量,特别是在测试时,以防止无限循环。双击参数并将其设置为10。保存变压器。
4)运行翻译
回到原来的工作区,我们需要删除simplelopdemo转换器并重新添加它来更新属性,当simplelopdemo转换器有一个不完整的端口时,您就会知道它已经被更新了。可以通过在画布上键入simplelopdemo来重新添加它。重新连接端口,然后运行转换。
运行工作区后,可以检查来自外部端口的正方形、原始点和最终点。检查这些将给出以下结果,其中红色点是原始点,蓝色点是新点。
自定义变压器中的循环-FME桌面高级培训课程手册
闭锁变压器-2017年FME UC的核心概念
©2019安全亚搏在线软件公司法律