【问题标题】:How do I get channel information in a Mirth Connect JavaScript Reader Source Connector?如何在 Mirth Connect JavaScript 阅读器源连接器中获取频道信息?
【发布时间】:2020-02-17 20:09:45
【问题描述】:

我正在使用 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,这应该不是问题,但显然情况并非如此。

【问题讨论】:

  • 我希望channelId 能够工作。 @Neils 的回答表明这可以在较旧的 mirth 版本中使用,但我没有理由相信这种情况已经改变。 connector 不会在 Javascript 阅读器上下文中定义,我不知道 channel 会在任何上下文中定义。可能您有其他代码导致您的问题?如果您在一个全新的频道中尝试它,它是 Javascript 阅读器中唯一的代码,您会得到相同的结果吗?是否有分配给此通道的任何代码模板可能会造成冲突?
  • @agermano 我尝试了你的建议并创建了一个全新的频道,在源 JavaScript 阅读器中复制粘贴下面的 Neils 行后,它就像一个魅力。将同一行粘贴到原始的 Source JavaScript Reader 中仍然会导致打印“未定义”。因此,该频道一定有问题。该频道非常简单,我没有找到任何其他可能导致此问题的脚本。该通道的唯一区别是它是从另一个环境导出/导入的。无论如何,现在有一个解决方法,谢谢!

标签: javascript mirth


【解决方案1】:

你可能把事情复杂化了。

在 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 阅读器中工作。在这种情况下,记录的消息是

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

【讨论】:

  • OP 在 Javascript 阅读器中特别说过,我希望它仍然可以工作,但我自己还没有测试过。示例代码的第一行使用了与您所做的相同的变量,并且根据原始帖子,该变量未定义。
  • @agermano,我刚刚在 Javascript 阅读器中测试了我的代码。它起作用了,尽管记录的消息略有不同。我使用的是比 OP 提到的旧版本的 Mirth。认为这是问题的根源?
  • 这个答案是正确的,因为它应该起作用。如果您访问此页面是因为这不适合您,请先在全新的频道中尝试。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-10
  • 1970-01-01
  • 2021-10-12
相关资源
最近更新 更多