span8
span4
欢迎来到FME的《小世界5》教程。本文将介绍如何将数据导入Smallworld 5数据库,包括如何处理对Smallworld数据库的增量更新。
信息一旦存储在数据库中,其来源就不太可能保持静态:将发生更改。本文讨论如何使用FME对Smallworld数据库进行增量更新。根据现实世界中的变化保持数据库最新。在FME Workbench中,这是使用format属性fme_db_operation完成的。关于使用fme_db_operation的更多细节可以在文章中找到:更新数据库.
在前面的示例中使用了' fme_db_operation '格式属性文章.FME使用Smallworld writer上的' fme_db_operation '属性为每个特性指定数据库操作INSERT、UPDATE或DELETE。
当操作是UPDATE或DELETE时,您还必须提供与writer特性类型上的Smallworld ' sys_id '匹配的联接键属性。FME将使用此联接键属性自动标识要写入的记录。
当操作被插入时,联接键属性不应该包含在特性中。对于插入的记录,Smallworld自动创建一个内部' sys_id ',如果写入者试图提供一个连接键,插入操作可能会失败。
Cambridge_Electricity_Updates.gml
在前一篇文章中,为新客户提出了供电点和电缆。这些提议的改变现在已被接受。现在需要一些新的连接,还需要更新或删除一些现有的连接。此示例将使用对电气系统的这些更改更新Smallworld数据库。
在本例中,您将使用由变更管理系统创建的GML文件。update_type属性跟踪的更改有D、U、I(删除、更新或插入)。
1)检查源数据集
检查源数据集Cambridge_Electricity_Updates.gml
有些特征没有几何形状。所有特性都有一个update_type属性,该属性指示要执行的数据库操作的类型:I(插入)、U(更新)和D(删除)。
2)添加小世界替代
在Smallworld版本管理应用程序中,选择替代的fme_updates,或者添加这个新的替代,如果它还不存在:
数据集 | 名字的替代 |
电 | fme_updates |
3)生成的工作区
开始FME工作台。在Start选项卡上,选择生成工作区的选项。
读者的格式: | GML(地理标记语言) |
读者数据集: | |
作家格式: | Smallworld 4/5 |
作家数据集: | localhost: 30000 |
作家Coord。系统: | osgb - gps - 2015 |
参数>服务 | FME |
>参数选择 | | fme_updates |
在“导入功能类型定义”复选框上打勾。
确保使用|符号作为替换的第一个字符
单击OK以生成工作区。
4)指定特征类型
当导入作家特征类型对话框出现时,单击参数按钮。
设置这些参数:
服务:FMENOFACTORY
表列表:
当GML选择功能类型对话框,选择这些特征类型:
5)整洁的工作区
对读者的特征类型可以是不同的顺序不是作家。为了使要素类型的名称很容易看到,你可以选择功能类型和调整它们的大小,或添加注释可以连接到每个要素类型。
要添加注释,选择所有要素类型。右键单击并选择附加注释。
整齐的工作区,使得每个读取器特征类型是水平与其匹配的作家特征类型对准;但不要连接只是他们没有。
6)设置数据库操作
添加连接到读取功能型的AttributeValueMapper变压器。哪种类型操作的update_type属性标识适用于各功能。
源属性: | update_type |
新的属性名称: | fme_db_operation |
源值: 我 U D |
目的地的值: |
在变压器上单击鼠标右键,使用重复,使变压器的两个副本,并连接到复制其余要素类型如下图所示:
7)设置几何图形名称:中心线和位置
在前面的章节中您可以设置电缆和供应点的几何名字。一个GeometrPropertySetter变压器连接到AttributeValueMapper供应点和电缆分别设置几何图形名字“位置”和“中心线”。
你为什么不需要“客户”功能类型GeometryPropertySetter?
请注意:本FME的Smallworld 5作家处理以完全不同的方式来的Smallworld 4的Smallworld几何形状。的工作空间的Smallworld的4个版本都将被附加在本文以供参考的底部。几何类型不再暴露属性和不再使用sworld_geometry {}列表中的属性。旧的工作空间仍然在Smallworld的5兼容。
连接到写入器功能类型
在AttributeValueMapper或AttributeCreator输出端口连接到其相关的作家特征类型。
您的工作空间看起来会像下面这样:smallworldex6-complete.fmwt
如何FME使连接到Smallworld的对象为UPDATE和DELETE?FME使用sys_id(或同等),使加入的Smallworld的对象进行更新和删除。在这个例子中,这是id属性(电缆&supply_point)或CUSTOMER_ID(客户)。
9)检查输出
点击作家>重定向到FME数据检查关闭Smallworld的作家和输出督察代替。
保存工作区,然后运行它。
检查在FME数据查验输出。使用检查工具来选择电缆和供应点,然后验证它们的属性。注意,对于刀片的缺少ID(或CUSTOMER_ID客户)。这是因为它是一个新的功能,并还没有尚未建立“sys_id”。
这里是发生了什么事情发生:
功能类型 | 操作 | 特性计算 |
客户 | 插入 | 4 |
电缆 | 删除 | 3. |
电缆 | 插入 | 7 |
supply_point | 删除 | 3. |
supply_point | 插入 | 3. |
supply_point | 更新 | 1 |
总: | 21 |
10)写输出
在FME工作台,点击作家>重定向到FME数据检查直接输出到Smallworld的作家。
暂停:你在写正确的Smallworld的选择吗?
运行工作区。
打开“Smallworld的专业(核心) - Smallworld核心”应用程序。
使用“电网”书签放大才能看到周围的兴趣在橡树大道的区域。
检查中Smallworld的输出。在Smallworld的版本管理工具,双击“fme_updates”,以使它成为当前的选择。您可能需要刷新GIS视图。
找到插入电缆和supply_points。
比较fme_updates替代顶端检测被删除的记录。
使用对象资源管理器找到所插入的“客户”的记载,因为没有几何它们不会在视图中显示。
还有就是供应点,并使用一个中间连接表Customer表之间的关系。该Smallworld的5作家不能创建连接通过中间连接表,所以supply_points还没有加入到他们的客户。你将不得不在Smallworld的GIS对象编辑器来完成这项工作。
FME可用于具有直接连接(父/子)关系导入对象。这些可以是简单的1:0..N简单连接,1:0..N异构加入或1:0..N多个联接。处理联接在描述小世界FME翻译文档- 翻译的Smallworld RWOs的领域 - 连接字段(您需要获得来自GE SupportCentral登录)。你会与加盟领域的工作在后面的文章。
插入的供应点有标签,来自于供应点位置的几何形状来源的标记位置。
在Smallworld的版本管理对话框中的“开始”关卡双击回滚到原始数据。
早在FME工作台,修改工作区的标签几何形状添加到新的供应点。提示:使用Offsetter变压器。到工作区的更改将类似于上一节,你添加标签的供应点。
运行工作空间,在Smallworld的检查重插电源点现在有新标签的位置。
有在FME的Smallworld的5作家创造的几何特征,比4的Smallworld方式的差异。在《小世界5》中要容易得多。下面的例子展示了如何在Smallworld 4中实现这一点。Smallworld 5编写器仍然支持这种旧的方法,所以如果您有现有的工作空间,那么它们将与Smallworld 5兼容,并且应该在不需要更改它们的情况下运行。
©2019安全亚搏在线软件公司法律