Mirth: Как получить каталог с исходным файлом из канала чтения файлов - PullRequest
1 голос
/ 23 октября 2009

У меня есть канал для чтения файлов, собирающий документ XML. По умолчанию канал чтения файлов заполняет 'originalFilename' в карте каналов, которая только дает мне имя файла, а не полный путь. Есть ли способ получить полный путь, без необходимости что-то кодировать?

Ответы [ 3 ]

3 голосов
/ 21 марта 2012

Вы можете получить любое из свойств считывателя источника, например:

var sourceFolder = Packages.com.mirth.connect.server.controllers.ChannelController.getInstance().getDeployedChannelById(channelId).getSourceConnector().getProperties().getProperty('host');

Я разместил его на форумах Mirth со списком других свойств, к которым вы можете получить доступ http://www.mirthcorp.com/community/forums/showthread.php?t=2210

1 голос
/ 07 марта 2012

Вы можете поместить каталог в сценарий развертывания канала:

globalChannelMap.put("pickupDirectory", "/Mirth/inbox");

затем используйте эту карту в вашем исходном соединителе:

${pickupDirectory}

и в сценарии другого канала:

function getFileLastModified(fileName) {
   var directory = globalChannelMap.get("pickupDirectory").toString();
   var fullPath = directory + "/" + fileName;
   var file = Packages.java.io.File(fullPath);
   var formatter = new Packages.java.text.SimpleDateFormat("yyyyMMddhhmmss"); 
   formatter.setTimeZone(Packages.java.util.TimeZone.getTimeZone("UTC")); 
   return formatter.format(file.lastModified()); 
};
1 голос
/ 25 ноября 2009

К сожалению, нет переменной или метода для получения полного пути к файлу. Конечно, вы, вероятно, уже знаете путь, так как вам пришлось бы указать его в поле Каталог. Я экспериментировал с использованием препроцессора для сохранения пути в переменной канала, но поле Directory не может ссылаться на переменные. Таким образом, вы застряли при необходимости жестко запрограммировать полный путь везде, где вам это нужно.

...