簡體   English   中英

如何在 Mirth Connect JavaScript 閱讀器源連接器中獲取頻道信息?

[英]How do I get channel information in a Mirth Connect JavaScript Reader Source Connector?

我正在使用 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 閱讀器中工作。 在這種情況下,記錄的消息是

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

要獲取頻道名稱,您可以使用以下代碼:

var channelName = Packages.com.mirth.connect.server.controllers.ChannelController.getInstance().getDeployedChannelById(channelId).getName();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM