Frage

Ich habe einen Dateileserkanal, der ein XML -Dokument aufnimmt. Standardmäßig populiert ein Dateileserkanal den 'Originalfilename' in der Kanalkarte, die mir den Namen der Datei gibt, nicht den vollständigen Pfad. Gibt es eine Möglichkeit, den vollständigen Weg zu finden, wobei Auth etwas harte Codes für etwas codieren muss?

War es hilfreich?

Lösung

Leider gibt es keine Variable oder Methode, um den vollständigen Pfad der Datei abzurufen. Natürlich kennen Sie wahrscheinlich bereits den Weg, da Sie ihn im Bereich des Verzeichnisses bereitstellen müssen. Ich habe mit der Verwendung des Präprozessors experimentiert, um den Pfad in einer Kanalvariablen zu speichern, das Verzeichnisfeld kann jedoch keine Variablen referenzieren. Daher müssen Sie den vollen Weg überall harten, wo Sie ihn brauchen.

Andere Tipps

Sie können eines der Quell -Reader -Eigenschaften wie folgt erhalten:

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

Ich stelle es in den Mirth -Foren mit einer Liste der anderen Eigenschaften auf, auf die Sie zugreifen könnenhttp://www.mirthcorp.com/community/forums/showthread.php?t=2210

Sie können das Verzeichnis in einem Kanalbereitstellungsskript einfügen:

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

Verwenden Sie dann diese Karte in Ihrem Quellanschluss:

${pickupDirectory}

und in einem anderen Kanalskript:

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()); 
};
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top