span8
span4
正如提到的前一篇文章,任何数据集阅读器 - 在任何格式 - 可被用作源用于传出架构。要记住的关键一点是,动态作家需要能够找到模式定义,通过名称,工作流正常工作。亚搏在线
那么当你使用一个全新的名字来写数据时会发生什么呢?
在这种情况下,你需要使用一个特殊的参数作家的所谓的“架构定义名称”功能型内。此参数告知寻找一个匹配模式中的源时要使用正确的名称的作家。
这里有几个原因,你可能会遇到这样的:
在下面的例子中,一期工程已设置,以提供更新的城市模式在数据库的形式。这个数据库已经被预先确定,但包含通用功能类型名称。为了创造一个充满活力的工作流程,并写出与该数据库架构中的数亚搏在线据,数据库必须被添加到该工作区,工作区的资源。然后,我们将改变输出数据集的名称,包括城市作为前缀(即Vancouver_BusStops)。
包含我们的模式中的SpatiaLite数据库:
1.添加源数据集
打开FME到一个新的工作区,并从读者菜单中选择“添加读者”。
2.添加目标数据集
从作家菜单中选择“添加作家”。
3.将数据库添加为资源
将数据库装载到工作区中使用该功能的读者资源:
一旦数据库被添加,一个条目被放置在导航窗口:
4.创建新的表名属性
我们将串联与该城市名称的现有特征的类型名称:“温哥华”。要做到这一点添加StringCocatenator并填写详细信息如下:
5.模式映射
确保工作区包含正确的映射,以匹配数据库中包含的新属性架构。在该例子中,变压器AttributeManager用于提供此。使用下表来创建属性映射。在AttributeManager连接到StringCocatenator,然后AttributeManager输出端口连接到动态作家。
输入属性 | 输出属性 |
PRIMARYINDEX | PID |
类 | ROAD_CLASS |
featureID | FEATUREID |
numberOfLanes | ROAD_LANES |
routeNumber | ROUTE_NUM |
routeType | ROUTE_TYPE |
类型 | ROAD_TYPE |
的名字 | PARK_NAME |
name_alt | NAME_ALT |
STOPABBR | STOP_ABBR |
STOPNAME | STOP_NAME |
6.在Writer特性类型中设置模式定义
打开动态作家特征类型和表名设置为包含您的新名称的属性。在下图中,SpatiaLite数据库已经进入了作为“模式源”。使用原始的fme_feature_type属性模式定义名称的设置,让作者可以找到SpatiaLite数据库内的表名(如果你不这样做,作者将寻找连接名称在数据库中,无法找到正确的功能类型):
7.运行工作空间
运行并检查输出数据集是否具有正确的模式。
最终的想法
在这个阶段,任何未来的更新都可以添加到这个工作流中,而不需要改变现有的工作空间布局。亚搏在线此外,可以在FME环境之外更改数据库模式,并且工作区可以自动处理新模式。
注意:在上面的示例中,如果数据库模式确实发生了更改,那么用户需要更正AttributeManager转换器以提供正确的属性映射。然而,在此场景中使用SchemaMapper转换器将提供一个外部方法来处理任何映射问题,从而使工作空间的更改变得不必要。对于复杂的工作流,这是缓亚搏在线解未来维护问题的完美方法。这将在后面讨论高级技术-使用示意图。
完整的示意图可以在这里找到:SchemaMapper变压器教程
©2019安全亚搏在线软件公司|法律