Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Mirth Connect JavaScript阅读器源连接器中获取通道信息?_Javascript_Mirth - Fatal编程技术网

如何在Mirth Connect JavaScript阅读器源连接器中获取通道信息?

如何在Mirth Connect JavaScript阅读器源连接器中获取通道信息?,javascript,mirth,Javascript,Mirth,我使用的是MirthConnect服务器3.8.1,我使用JavaScript阅读器作为通道的源连接器。我正在尝试获取当前的频道id,但这似乎是不可能的。在谷歌搜索之后,我尝试了以下方法,看看是否有任何效果,但没有: logger.info(typeof channelId != 'undefined' ? ChannelUtil.getDeployedChannelName(channelId) : 'N/A'); logger.info(typeof connector != 'undefi

我使用的是MirthConnect服务器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的源连接器应该知道它为谁工作

如何从脚本中获取此信息

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

更新2:罪魁祸首后来在局部范围内使用
channelId
变量证明是我,大致如下:

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

for(var i=0;i您可能使事情过于复杂

在Mirth 3.5.1中,以下代码在通道源连接器上的变压器中运行良好:

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

你可能把事情搞得太复杂了

在Mirth 3.5.1中,以下代码在通道源连接器上的变压器中运行良好:

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更旧的版本。你认为这是问题的根源吗?这个答案是正确的,因为它应该是有效的。如果你来到这个页面是因为它对你不起作用,请先在一个全新的频道中尝试它。OP在Javascript阅读器中特别提到,我希望它仍然有效,但我没有aven还没有自己测试过。示例代码的第一行使用了与您相同的变量,并且根据原始帖子,该变量未定义。@agermano,我刚刚在Javascript阅读器中测试了我的代码。虽然记录的消息略有不同,但仍然有效。我使用的是比前面提到的OP更旧的Mirth版本。Think这就是问题的根源?这个答案是正确的,因为它应该是有效的。如果你来到这个页面是因为它对你不起作用,请先在一个全新的频道中尝试。我希望
channelId
能起作用。@Neils的答案显示这个在一个旧的欢乐版本中起作用,但我没有理由相信它已经改变了。
connector
不会在Javascript阅读器上下文中定义,我也不知道在任何上下文中定义了
通道
。可能是其他代码导致了您的问题?如果您在全新的通道中尝试,而该通道是Javascript阅读器中唯一的代码,您会得到相同的结果吗?是否有任何代码模板分配给toro这个频道可能会产生冲突?@agermano我尝试了你的建议,创建了一个全新的频道,在复制粘贴源JavaScript阅读器下面的Neils行后,效果非常好。将同一行粘贴到原始源JavaScript阅读器中仍然会导致“未定义”的打印。所以一定是出了问题改为使用该频道。该频道非常简单,我没有发现任何其他可能导致此问题的脚本。该频道唯一的区别是它是从另一个环境导出/导入的。无论如何,现在有一个解决方法,谢谢!我希望
channelId
可以工作。@Neils的回答显示了这一点在一个旧的欢乐版本中工作,但我没有理由相信这已经改变了。
连接器
不会在Javascript阅读器上下文中定义,我也不知道
频道
会在任何上下文中定义。可能你有其他代码导致你的问题?如果你在一个全新的频道中尝试,它是唯一的合作伙伴de在Javascript阅读器中,你得到了同样的结果吗?是否有任何分配给该频道的代码模板可能会产生冲突?@agermano我尝试了你的建议,创建了一个全新的频道,在源Javascript阅读器中复制粘贴Neils行后,效果非常好。将同一行粘贴到源Javascript阅读器中inal Source JavaScript Reader仍然导致“undefined”的打印。因此,该通道一定是出了问题。该通道非常简单,我没有找到任何其他可能导致此问题的脚本。该通道的唯一区别是它是从另一个环境导出/导入的。在任何情况下,都有一个解决方法n噢,谢谢你!