我正在使用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/