我就是这样做的,使用FME服务器2017.0进行了测试:
在订阅触发的工作区中,创建文本文件读取器,确保将其设置为一次读取整个文件。确保文件名是已发布的参数(默认值)。在文本文件读取器之后,您可以引入一个jsonflatter,例如。一个记录员来看看发生了什么。
将工作区发布到FME服务器。
创建订阅时,请确保选中“从主题消息获取值”以获取已发布的参数(即。文本文件读取器的文件名)。例子:
在监视的目录中创建一个文件并在作业lob中查找记录器输出,从而触发工作区一次。例子:
现在可以通过公开关键属性(如
dirwatch_publisher_action dirwatch_publisher_路径
希望这有帮助。
谢谢你的建议。
我打开了“合并功能类型”选项,但它没有解决问题。
这是您在上面绘制的简单工作空间中使用的记录器的输出:
属性(编码:utf-8):“\u FME_TOPIC_MESSAGE”具有值“/opt/fmeserver/resources/system/temp/subscriptions/bb951070e14247cf9d89823889f9f56e.json”
对于下一个文件,它是另一个json文件,因此它不是我可以从中读取的静态路径:
属性(编码:utf-8):`'u fme_topic_message'具有值`/opt/fmeserver/resources/system/temp/subscriptions/eed34f989e324fa3b3aae9e452f18001.json'
你好!
我的第一个建议是尝试在你的阅读器上打开“合并功能类型”(如果还没有)。例子:
如果没有帮助,我建议从一个简单的工作区开始,该工作区记录参数“fme_topic_message”,如下所示:
发布和订阅时,消息应指向与“somefile.txt”不同的文件。
然后您可以使用“FeatureReader”读取该文件。
/超低频