Я работаю с Mirth Connect Server 3.8.1, и я использую JavaScript Reader в качестве исходного соединителя канала. Я пытаюсь получить текущий идентификатор канала, но кажется, что это невозможно. После поиска в Google я попробовал следующие вещи, чтобы увидеть, дали ли они какие-либо результаты, но это не так:
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" в журналах. Очевидно, я мог бы жестко закодировать идентификатор канала, но в конце концов я хочу экспортировать этот конфиг и иметь возможность импортировать его в другие среды без необходимости что-либо редактировать. Кроме того, похоже на то, что кусок исходного соединителя JS должен знать, для кого он работает.
Как получить эту информацию из скрипта?
Обновление: Ответ «Это должно работать», по сути, правильный, потому что, как оказалось, это работает на совершенно новом канале. Канал, с которым я работал, был импортирован, и, хотя я не смог найти других скриптов, влияющих на этот канал, он был явно поврежден. Поэтому вполне возможно, что реальный ответ таков: «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
был установлен каждый раз при выполнении скрипта, это не должно быть проблемой, но, очевидно, это не так.