span8
span4
FeatureWriter允许您在工作流程的任何位置写入数据,而不仅仅是在工作空间的末端使用“常规”写入器。亚搏在线这使您有机会对结果进行后期处理。本例将介绍使用FeatureWriter的一种潜在方法,其中包括后处理和集成第三方工具。
有关FeatureWriter transformer的概述,请参阅博客文章:FME 2016:特稿作家变形金刚
在传统的工作流程中,FME使用读写器亚搏在线功能类型读取和写入数据——请参阅附件中的工作空间:FeatureWriter_Begin.fmwt。这个工作空间从一个CAD文件中读取数据,转换和验证数据,然后将结果写到一个地质打包数据库中。
注意:虽然这个例子写的是地理打包数据库,但它适用于任何空间数据库,如Esri地理数据库、SQL Server、Oracle空间、PosGIS等。
在写入所有数据之后,这种方法只能进行有限的附加处理。可以使用Python或TCL关机脚本或数据库编写器SQL在写之前或之后运行,但是这些方法有一些限制
FeatureWriter扩展了工作流的可能性,允许在工作流中间写入数据,然后进行额外的数据转换亚搏在线。当希望在写入数据之后对其进行处理时,这是非常有用的。
下面是FeatureWriter的一些可能性,都是在一个工作区中完成的:
1.Simple procedures previously accomplished with scripts or manually:
2.Complex tasks that required chained workspaces using WorkspaceRunner or FMEServerJobSubmitters:
3.Notifications to FME Server
4.Integrations with third party tools for data transformation in FME without waiting for a new reader:
这个功能编写器演示验证一个CAD数据集,并在所有功能编写完成后将验证报告发送给数据验证管理器。
源数据是CAD文件,有一个城市的温哥华供水网络,水管,阀门,消防栓。数据集包含许多与水网络对象信息相关的属性
的FeatureWriter_Begin.fmw工作空间包括以下基本步骤:
1.读取CAD数据并转换属性
2.验证水网络属性值
3.提取错误消息和失败的水网络对象的验证测试
4.将有效的特性写入地质包CADValidationReport表
运行FeatureWriter_Begin.fmw工作区,并在FME数据检查器中检查得到的地质分布。
你要修改的工作空间:
你可以用FeatureReader替换AutoCAD阅读器。这将允许您预先处理数据,使用SQLExecutor清理数据库表,或者使用外部输入触发读取。在本例中,我们将使用Creator transformer。
1.打开工作空间FeatureWriter_Begin.fmw
2.禁用,但不删除,AutoCAD的读者。
3.添加一个创造者变压器。
4.添加一个FeatureReader选择Autodesk AutoCAD地图3D对象数据格式和AutoCAD DWG文件:CofVWater_small.dwg。配置FeatureReader如下图所示:
在AutoCAD参数对话框中,确保取消选中将块爆炸为实体如下所示:
选择要读取的特征类型下的所有AutoCAD层
5.将输出端口连接到适当的AttributeManager转换器(不是所有的特性类型都需要连接)。
6.通过运行修改后的工作区来测试FeatureReader。如果结果看起来不错,删除AutoCAD阅读器。
7.保存工作空间。
现在,您将向工作空间添加一个功能编辑器,取代“传统的”地理打包编辑器。
1.禁用,但不删除,地质打包作家
2.添加一个FeatureWriter转换器并打开Parameters对话框。配置FeatureWriter参数:
现在我们可以对输出进行一些简单的后处理或验证。例如,可以使用SQLExecutor创建属性或空间索引。在这个工作空间中,您将验证所编写的特性的数量。FME报告编写的特性的数量,但有时这可能与实际插入数据库的特性数量不匹配。如果您正在使用事务,并且其中一个插入失败,就会发生这种情况。您将添加一个SQLExecutor,以在FeatureWriter编写完所有特性之后检查数据库中的记录数量。
1.将检查器转换器添加到FeatureWriter的摘要端口并运行工作区。FeatureWriter的摘要端口输出一个单一的功能,其中列出了所有的功能类型:
在哪里的的名字'是表名吗'数是FME认为它所写的特写的数量。
3.连接一个ListExploder到功能编辑器的摘要端口。选择_feature_type{}列表。这将为编写的每个特性类型生成一个单独的摘要特性。
4.将SQLExecutor连接到listscalder的Elements端口。建立以下查询:
从“@Value(name)”中选择COUNT(*)作为“行”
这将查询数据库并返回'name'属性中每个表的行数。
5.添加一个TestFilter来比较写的特性和写的特性的“count”值。'rows'值返回的SQLExectutor。
6.添加检查器,然后运行工作区并检查结果。
清理
7.最后一步,如果你觉得你所有的修改都是正确的,那就删除原来的AutoCAD阅读器和原来的地质公园编写者,清理你的工作空间。保存您的工作。
附件中的工作区FeatureWriter_Final.fmwt有一些额外的想法,你可以调查:
JSON读者:在最后的工作空间中,我们使用一个JSON阅读器来启动FeatureReader—这将允许您将该工作空间发布到FME服务器,并使用一个目录监视器发布来驱动验证。
DropboxConnector: DropboxConnector允许你移动地理打包数据库文件到dropbox文件夹。如果您没有dropbox帐户,您需要禁用此转换器。或者试试其他的连接器:GoogleDriveConnector, OneDriveConnector, BoxConnector。
写信人:最后的工作空间包括一个电子邮件,它将把验证地理打包数据库文件发送给一个朋友。您需要使用自己的电子邮件帐户信息配置电子邮件发送器,或者禁用转换器以避免错误。
请注意:演示工作空间将返回一个警告,如果您的电子邮件帐户没有正确配置的电子邮件。必要的配置包括配置SMTP对于Gmail,生成a应用特定密码如果使用两步验证。DropboxConnector也是如此。如果你没有合适的帐户,只是禁用这些变压器
©2019安全亚搏在线软件公司法律