Mirth: come ottenere la directory dei file di origine dal canale del lettore di file

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

  •  06-07-2019
  •  | 
  •  

Domanda

Ho un canale di lettura file che sta raccogliendo un documento XML. Per impostazione predefinita, un canale di lettura file popola il "nomefile originale" nella mappa del canale, il che mi fornisce il nome del file, non il percorso completo. Esiste un modo per ottenere il percorso completo, senza dover codificare qualcosa?

È stato utile?

Soluzione

Sfortunatamente, non esiste una variabile o un metodo per recuperare il percorso completo del file. Naturalmente, probabilmente conosci già il percorso, dal momento che avresti dovuto fornirlo nel campo Directory. Ho sperimentato l'uso del preprocessore per memorizzare il percorso in una variabile di canale, ma il campo Directory non è in grado di fare riferimento alle variabili. Pertanto, sei bloccato a dover programmare il percorso completo ovunque tu ne abbia bisogno.

Altri suggerimenti

Puoi ottenere una qualsiasi delle proprietà del lettore Sorgente in questo modo:

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

L'ho inserito nei forum Mirth con un elenco delle altre proprietà a cui puoi accedere http://www.mirthcorp.com/community/forums/showthread.php ? t = 2210

È possibile inserire la directory in uno script di distribuzione del canale:

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

quindi utilizza quella mappa in entrambi i connettori di origine:

${pickupDirectory}

e nello script di un altro canale:

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()); 
};
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top