西班牙
斯潘4
在通知服务中,我们使用JSON或文本行阅读器从主题消息中获取值。这是因为当主题接收到消息时,它被写入FME服务器中的临时文件位置。这使读取器能够接收此消息,因为源数据集引用了文件路径。
例如`--SourceDataset_JSON'`$(FME_SHAREDRESOURCE_SYSTEM)临时/订阅/79b0c08e24eb4dd8d882c708b471104.JSON'
然而,在自动化中,不再需要将主题作为信使的概念,您可以直接从触发器传递到操作。这意味着您正在传递实际的JSON事件值,因为它没有保存到文件中,因此读取器无法消化此信息,因为它需要一个文件路径,因此将产生类似于以下的错误:。
文件“{file .PATH”:“/DATF/FMERVER数据/资源/数据/示例.txt”,“file .事件”:“创建”,“源”:“DeWAT”,“时间”:“2019-05-06T18:21:22Z”,“事件ID”:“F75 4C6B3-C75 C-4E95-A4E-0A1DB41DECFC}不存在。
如果查看作业配置,您将看到与通知中不同的是,源发布参数值是JSON字符串本身,因此您不能再使用读取器提取此信息。
例如`--SourceDataset_JSON'`{“file.path”:“/data/fmeserverdata/resources/data/DirWatchExample.JSON”,“file.event”:“创建”,“source”:“dirwatch”,“时间”:“2019-05-06T18:42:42Z”event.id“:”fa3062ae-8291-4b95-ba6a-855c07617644“}”
相反,您可以将用户参数Type=Text与JSONFragmenter转换器一起使用。附加的工作区演示了如何设置此设置,以便从一个“Watcher”触发器获取文件路径。我使用ParameterFetcher将JSON带入一个属性,然后使用JSONFragmenter只获取file.path值。您可以在JSONFragmenter中修改查询以读取这些不同的元素。我还不得不使用一个Creator transformer来传递一个空特性来启动翻译。
您好!@霍利雅塔亚搏在线,我想我有一个类似的问题:我定义了一个自动化:trigger是一封电子邮件。
我尝试使用Creator、ParameterFetcher和JSON Fragmenter,希望使用“Email .from”作为电子邮件发送器中的电子邮件。发送来自另一个工作流的附件。亚搏在线
然而,这并不奏效:
在自动化:我得到以下错误日志:
90 | 809032: user1:无法提供“”中的附件;相反,附件可以在“C:\ProgramData\Safe Software\FME Server\resourc亚搏在线es\system\temp\emailattachments”中找到。错误是:路径未找到: |
希望你能帮忙!马里恩
您好!@mabaho,
我认为我们可以在一定程度上简化您的工作流程,使用自动化中的亚搏在线所有触发器以及将完整的事件消息作为JSON提供,这个JSON已经被简化为其单独的元素。因此,不必自己编写JSON查询,只需解析Email .from value直接进入电子邮件—看起来您已经在处理电子邮件附件了,所以过程是一样的。
惟一不适用的触发器是主题,因为它可以来自任何地方,所以JSON结构是未知的,这就是为什么上面的内容在某些场景中仍然有用。
其次,对于你收到的错误,这看起来像是说,没有电子邮件附件存在-有没有一个在发送的电子邮件?如果你可以分享完整的日志文件,我可能可以提供更多的帮助在这里。
冬青
我看过了gettopicinfo.fmw公司但不能跟进。这两个通知和自动操作的例子都有公共参数和文件的搜索路径!?在您描述的文本中,有o需要将文件作为工作区输入。
我升级了一个服务器到FME 2019,有som工作流的主题,我喜欢用自动化升级。亚搏在线我正在处理的案例是一个带有json的主题,它应该触发一个使用json的工作空间,并将其转换为参数。我不知道如何使它与自动化一起工作。
最好的/
约翰
您好!@北斯威汉,
在自动你必须选择'事件为JSON'的属性值:
在通知中,从主题发送的消息被存储在FME服务器的临时位置中,因此发布的参数值是到该临时位置的文件路径,这就是为什么我们使用JSON阅读器来提取该信息。但是在自动化中,当您为发布的参数值选择“Event as JSON”时,这将返回实际的JSON内容,因此无需读取文件。
我可以看到,我的例子可能会造成混乱,因为我设置使用示例JSON从DirectoryWatch触发器返回一个文件。path元素,为了简化所有的触发器事件,JSON应该是这样的:
”{attributename”:“attributevalue”、“attributename”:“attributevalue”、“attributename”:“attributevalue”}”
因此,如果你的触发器是一个FME服务器主题的值将看起来像:
{"subscriber_content": "Example Topic Message", "ws_topic": "Test"}
然后,根据您希望如何使用数据,您可以使用JSONFragmenter、JSONExtractor或jsonflater转换器来获取相关信息。
如果您需要更多的指导,请告诉我。
冬青
2019年FME服务器自动化4个答案
发布到FME服务器1个答案
?2019安全亚搏在线软件公司|合法的