Mirth: Как получить каталог с исходным файлом из канала чтения файлов

StackOverflow https://stackoverflow.com/questions/1614664

  •  06-07-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

Другие советы

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

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 ? Т = 2210

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

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()); 
};
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top