我正在使用Mirth Connect Server 3.8.1,并且正在使用JavaScript阅读器作为通道的源连接器。我正在尝试获取当前的频道ID,但这似乎是不可能的。谷歌搜索后,我尝试了以下操作,看是否产生了任何结果,但没有成功:

logger.info(typeof channelId != 'undefined' ? ChannelUtil.getDeployedChannelName(channelId) : 'N/A');
logger.info(typeof connector != 'undefined' ? connector : 'N/A');
logger.info(typeof channel != 'undefined' ? channel : 'N/A');


这只会在日志中产生三个“ N / A”。显然,我可以对通道ID进行硬编码,但是我希望最终导出此配置,并能够将其导入其他环境,而无需进行任何编辑。另外,感觉像是JS的Source Connector片段应该知道它是为谁工作的。

如何从脚本中获取此信息?

更新:答案“应该有效”从本质上是正确的,因为事实证明,这确实在全新的渠道中有效。我正在使用的通道已导入,尽管我找不到其他脚本会影响该通道,但它显然已损坏。因此,真正的答案可能是“ Mirth Connect Server 3.8.1有一个错误,该错误有时导致它无法正常工作,并且解决方法正在创建新频道。”

更新2:罪魁祸首是我后来在本地范围内使用channelId变量,类似以下内容:

for (var i=0; i<allChannelIds.size(); i++) {
    var channelId = allChannelIds.get(i);
    // Other code
}


我写道,在意识到全局范围变量channelId之前,需要它。显然,这会将其重置为undefined。如果在每次执行脚本时都设置了全局channelId,则应该不会有问题,但显然不是这种情况。

最佳答案

您可能使事情复杂化了。

在Mirth 3.5.1中,以下代码在通道的源连接器上的Transformer中对我来说运行良好:

logger.info("Channel ID: "+channelId);


结果是这样的:

[2020-02-25 13:03:30,033]  INFO  (transformer:?): Channel ID: 1122e1c7-34af-4141-9388-533005346d0b


该ID与出现在Mirth仪表板和频道摘要页面上的ID相匹配。

我还验证了该代码可在Javascript Reader中使用。在这种情况下,记录的消息是

[2020-02-25 14:33:20,004]  INFO  (js-connector:?): Channel ID: 1122e1c7-34af-4141-9388-533005346d0b

关于javascript - 如何在Mirth Connect JavaScript Reader源连接器中获取 channel 信息?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60269717/

10-11 20:32
查看更多