西班牙
斯潘4
本教程将介绍如何将更改逻辑合并到工作区中,以便只传播那些新的或更新的功能,而不缓存整个数据集。
这将通过创建一个sqlite数据库文件来完成,该文件存储工作区的名称和上次运行时。最后一次运行时间将用于与Roadworks数据集上的时间戳进行比较,并发送新功能或更改功能的通知。
下载roadworks.fmw并花点时间查看工作区。
工作区正在读取温哥华所有计划的道路工程,并生成一条json消息来通知fme服务器。
为了确保工作区正常运行,您需要在fme服务器中创建一个名为roadworks的新主题。在fme服务器的web ui中,导航到notifications>topics>new。
创建主题后,检查roadworks.fmw中的fmeservernotifier连接设置,并确认它正在通知roadworks主题。
在fme服务器web ui中,开始监视roadworks主题。
运行工作区。
如果工作区运行正常,则应为工作区中处理的每个道路工程功能显示主题消息。
要记录工作区上次运行的时间,我们将创建一个工作区以在此工作区之后运行(如果成功),以记录工作区和运行时的名称。
在fme服务器中创建一个名为“roadworkssuccess”的新主题并开始监视它。将roadworks.fmw工作区发布到fme服务器。请确保编辑作业提交者属性,并将“道路作业成功”设置为成功后要发布到的主题。
工作区发布后,打开一个新的选项卡并导航到fme服务器web ui以运行工作区。完成后,请检查“主题监视”选项卡。
您应该会看到一条json消息,其中包含成功运行的作业的详细信息。
接下来,我们需要创建一个可以解释json并存储工作区名称和运行时的工作区。将json复制并粘贴到文本编辑器中,并将其保存为json文件。这将是下一个工作区的输入。
打开一个空白工作区,读取刚刚保存的json文件。
然后添加一个sqlite非空间数据库编写器并只创建两个属性-workspacename和lastrun。
在读写器之间添加DateTimeFormatter和SubstringExtractor。
有关DateTimeFormatter属性,请参阅以下内容:
有关SubstringExtractor属性,请参见以下内容:
将_substring连接到WorkspaceName属性,将timeStarted连接到LastRun属性。
运行工作区并检查它是否成功。
现在,我们希望将SQLite非空间数据库上传到FME服务器,以便工作空间可以访问它。导航到资源>数据。创建一个名为ChangeDetection的新文件夹,并上传SQLite非空间数据库。
选择上传的文件并单击Properties。复制系统路径,因为我们将在工作空间中使用该路径作为目标路径。
在工作区的导航器中,将系统路径粘贴到目标数据集参数:
在JSON阅读器和DateFormatter之间添加一个日志转换器。这可用于检查工作空间作业日志中输入的作业信息是否正确。
将此工作区发布到FME服务器。在本例中,发布的工作区称为WorkspaceRunRecorder.fmw。
不要上传任何数据文件。
使用通知服务注册工作区,订阅RoadworksSuccess主题,并设置参数将主题消息获取到源JSON。
工作空间发布后,转到FME服务器并运行Roadworks.fmw。您应该能够从WorkspaceRunRecorder从已完成的作业检查。fmw跑在道路施工之后。
现在,我们需要从SQLite非空间数据库读取最后一次运行时,以确定是否有新的道路工程数据。
要比较工作空间上一次运行到更新道路工程数据的时间,使用SQLite非空间数据库获得最后一次运行时间,并使用DateTimeCalculator计算出日期时间的差异。
下载道路施工。fmw that was previously uploaded to FME Server.
为了进行测试,请在上传到FME服务器之前读取创建的SQLite数据库。将这个连接到FeatureReader,而不是一个创造者。
确保FeatureReader属性处理参数设置为“合并启动程序和结果”:
要确定是否有新的道路工程数据,在现有的DateTimeCalculator和JSONTemplator之间添加一个DateTimeCalculator和Tester。
在DateTimeCalculator中,设置参数来计算Datetimes之间的时间间隔,起始日期时间作为LastRun属性,结束日期时间作为_result_datetime属性。将结果类型设置为Seconds,并注意Result属性。
在测试程序中,测试DateTimeCalculator的结果是否为阳性结果(> 0)。
运行工作区以进行测试。
如果成功,则使用到FME服务器位置的路径替换SQLite数据库,就像第一个版本的工作空间一样。将工作空间重新发布到FME服务器。
现在工作区应该只通知FME服务器数据集中的新道路工程。您可以通过等待作业运行两次来测试它。而不是所有的道路工程出现在主题监控页面,只有少数或没有应该出现。
此进程可以作为订阅链接到另一个FME服务器工作区。工作空间可以用来生成一封电子邮件,检查一个地理范围内的道路工程(如果使用GeoRSS feed),或者生成道路工程的图像来通知某人。
?2019安全亚搏在线软件公司|合法的