MIRTH: Como obter o diretório de arquivos de origem do File Reader Channel
-
06-07-2019 - |
Pergunta
Eu tenho um canal de leitor de arquivos pegando um documento XML. Por padrão, um canal de leitor de arquivos preenche o 'OriginalFileName' no mapa do canal, que o Ony me dá o nome do arquivo, não o caminho completo. Existe alguma maneira de conseguir o caminho completo, com a Though tendo que codificar alguma coisa?
Solução
Infelizmente, não há variável ou método para recuperar o caminho completo do arquivo. Obviamente, você provavelmente já conhece o caminho, já que teria que fornecê -lo no campo do diretório. Eu experimentei o uso do pré -processador para armazenar o caminho em uma variável de canal, mas o campo do diretório não consegue referir variáveis. Assim, você está preso tendo que codificar o caminho completo em todos os lugares que precisa.
Outras dicas
Você pode obter qualquer uma das propriedades do leitor de origem como esta:
var sourceFolder = Packages.com.mirth.connect.server.controllers.ChannelController.getInstance().getDeployedChannelById(channelId).getSourceConnector().getProperties().getProperty('host');
Eu coloquei isso nos fóruns de alegria com uma lista das outras propriedades que você pode acessarhttp://www.mirthcorp.com/community/forums/showthread.php?t=2210
Você pode colocar o diretório em um script de implantação de canal:
globalChannelMap.put("pickupDirectory", "/Mirth/inbox");
Em seguida, use esse mapa no seu conector de origem:
${pickupDirectory}
E em outro script de canal:
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());
};