西班牙
斯潘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。
在reader和writer之间添加datetimeformatter和substringextractor。
有关DateTimeFormatter属性,请参见以下内容:
有关子字符串提取器属性,请参见以下内容:
将子字符串连接到workspacename属性,将timestarted连接到lastrun属性。
运行工作区并检查它是否成功。
现在我们要将sqlite非空间数据库上传到fme服务器,以便工作区可以访问它。导航到资源>数据。创建一个名为changedection的新文件夹,并在其中上载sqlite非空间数据库。
选择上载的文件并单击“属性”。复制系统路径,因为我们将在工作区中使用该路径作为目标路径。
在工作区的导航器中,将系统路径粘贴到目标数据集参数:
在json读取器和dateformatter之间添加一个日志转换器。这可用于检查工作区作业日志中传递的作业信息是否正确。
将此工作区发布到FME服务器。在本例中,已发布的工作区称为workspacerunrecorder.fmw。
不要用它上传任何数据文件。
向通知服务注册工作区,订阅roadworkssuccess主题并设置参数以将主题消息获取到源json。
工作区发布后,转到fme服务器并运行roadworks.fmw。您应该能够从已完成的作业中检查workspacerunrecorder.fmw是否在roadworks.fmw之后运行。
现在我们需要从sqlite非空间数据库中读取上一次运行时的数据,以确定是否有任何道路工程数据是新的。
要比较工作区上次运行到更新道路工程数据的时间,请使用sqlite非空间数据库获取上次运行时间,并使用datetimecalculator计算日期时间的差异。
下载先前上传到FME服务器的roadworks.fmw。
对于测试,请在上传到fme服务器之前读取创建的sqlite数据库。将此连接到FeatureReader以代替创建者。
确保FeatureReader属性处理参数设置为“合并发起方和结果”:
若要确定是否有任何道路工程数据是新的,请在现有的DATEMTIMCalCulter和JSONTEMPPLATER之间添加DATEMTIMECALCART和TITLE。
在DateTimeCalculator中,设置用于计算DateTimes之间的间隔的参数,其中start datetime是lastRun属性,end datetime是_result_datetime属性。将结果类型设置为seconds,并注意result属性。
在测试仪中,测试DateTimeCalculator的结果是否有任何阳性结果(>0)。
运行要测试的工作区。
如果成功,将sqlite数据库替换为fme服务器位置的路径,如工作区的第一个版本中所示。将工作区重新发布到fme服务器。
现在,工作区应该只通知fme服务器数据集中的新道路工程。您可以通过等待作业运行两次来测试它。与主题监视页面中显示的所有道路工程不同,只应显示少数或不显示任何道路工程。
此进程可以作为订阅链接到另一个fme服务器工作区。工作区可用于生成电子邮件、检查地理围栏内的道路工程(如果使用geoss feed)或生成道路工程的图像以通知某人。
?2019安全亚搏在线软件公司|法律