Mirth: Comment obtenir le répertoire du fichier source à partir du canal du lecteur de fichiers

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

  •  06-07-2019
  •  | 
  •  

Question

J'ai un canal de lecteur de fichiers qui récupère un document XML. Par défaut, un canal de lecteur de fichiers renseigne le "nom de fichier d'origine" dans la mappe de canaux, ce qui ne m'indique que le nom du fichier, pas le chemin d'accès complet. Existe-t-il un moyen d’obtenir le chemin complet sans avoir à coder quelque chose?

Était-ce utile?

La solution

Malheureusement, il n'y a pas de variable ou de méthode pour récupérer le chemin complet du fichier. Bien sûr, vous connaissez probablement déjà le chemin, car vous auriez dû le fournir dans le champ Répertoire. J'ai essayé d'utiliser le préprocesseur pour stocker le chemin dans une variable de canal, mais le champ Répertoire ne peut pas faire référence à des variables. Ainsi, vous êtes obligé de coder en dur le chemin complet partout où vous en avez besoin.

Autres conseils

Vous pouvez obtenir n'importe quelle propriété du lecteur source comme ceci:

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

Je l'ai mis sur les forums Mirth avec une liste des autres propriétés auxquelles vous pouvez accéder http://www.mirthcorp.com/community/forums/showthread.php ? t = 2210

Vous pouvez placer le répertoire dans un script de déploiement de canal:

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

utilisez ensuite cette carte dans votre connecteur source:

${pickupDirectory}

et dans un autre script de chaîne:

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()); 
};
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top