Mirth: cómo obtener el directorio de archivos fuente del canal del lector de archivos

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

  •  06-07-2019
  •  | 
  •  

Pregunta

Tengo un canal de lector de archivos que recoge un documento xml. De forma predeterminada, un canal de lector de archivos llena el 'Nombre de archivo original' en el mapa de canales, que solo me da el nombre del archivo, no la ruta completa. ¿Hay alguna forma de obtener la ruta completa, sin tener que codificar algo?

¿Fue útil?

Solución

Desafortunadamente, no hay ninguna variable o método para recuperar la ruta completa del archivo. Por supuesto, probablemente ya conoce la ruta, ya que habría tenido que proporcionarla en el campo Directorio. Experimenté con el uso del preprocesador para almacenar la ruta en una variable de canal, pero el campo Directorio no puede hacer referencia a las variables. Por lo tanto, estás atascado al tener que codificar la ruta completa en todos los lugares donde lo necesites.

Otros consejos

Puede obtener cualquiera de las propiedades del lector de origen como esta:

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

Lo puse en los foros de Mirth con una lista de las otras propiedades a las que puedes acceder http://www.mirthcorp.com/community/forums/showthread.php ? t = 2210

Podría poner el directorio en un script de despliegue de canal:

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

luego use ese mapa en su conector de origen:

${pickupDirectory}

y en otro 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()); 
};
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top