mirth : 파일 리더 채널에서 소스 파일 디렉토리를 얻는 방법

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

  •  06-07-2019
  •  | 
  •  

문제

XML 문서를 선택하는 파일 리더 채널이 있습니다. 기본적으로 파일 리더 채널은 채널 맵에서 'OriginalFilename'을 채 웁니다. 하드 코드가 있어야하는 전체 경로를 얻을 수있는 방법이 있습니까?

도움이 되었습니까?

해결책

불행히도 파일의 전체 경로를 검색하는 변수 나 방법이 없습니다. 물론, 당신은 아마도 디렉토리 필드에서 그것을 제공해야했기 때문에 이미 경로를 알고있을 것입니다. 사전 처리기를 사용하여 경로를 채널 변수에 저장하는 것을 실험했지만 디렉토리 필드는 기준 변수를 참조 할 수 없습니다. 따라서 필요한 곳마다 전체 경로를 하드 코딩해야합니다.

다른 팁

다음과 같은 소스 리더 속성을 얻을 수 있습니다.

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

디렉토리를 채널 배포 스크립트에 넣을 수 있습니다.

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