Mirth:如何从文件阅读器通道获取源文件目录

时间:2009-10-23 16:49:15

标签: mirth

我有一个文件阅读器频道拿起xml文档。默认情况下,文件读取器通道会填充通道映射中的“originalFilename”,它会为我提供文件的名称,而不是完整路径。有没有办法获得完整的路径,而不必硬编码?

3 个答案:

答案 0 :(得分:3)

您可以获得以下任何源阅读器属性:

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 :(得分:1)

不幸的是,没有用于检索文件完整路径的变量或方法。当然,您可能已经知道了路径,因为您必须在“目录”字段中提供它。我尝试使用预处理器将路径存储在通道变量中,但Directory字段无法引用变量。因此,您无需在任何需要的地方硬编码完整路径。

答案 2 :(得分:1)

您可以将目录放在频道部署脚本中:

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()); 
};