Forum

PDF corruptos [Solu...
 
Notifications
Clear all

El foro de caduceus.es ha sido migrado a meditecs.com. Descubre más sobre el cambio en este post.

🇬🇧 English speaker? Go to Meditecs forums in English!

[Solved] PDF corruptos [Solucionado]

7 Posts
2 Users
0 Reactions
2,937 Views
(@cristina_sorli_clemente)
Eminent Member
Joined: 11 years ago
Posts: 17
Topic starter   [#27]

Buenas tardes!

tengo un problema con un canal de mirth desde hace bastante tiempo y es que cuando muevo PDF's a un destino, alguna vez se mueve corrupto y tengo que mover el fichero a mano (por putty) al destino para que pueda ser consultado. En el canal lo muevo a través del 'file writter' en 'destination' por smb. Casi siempre funciona, pero hay veces que se mueve corrupto... y no encuentro la causa de porqué se produce, no se si es un bug que tiene Mirth o que...

Entonces lo que se me ha ocurrido es realizar ese mismo comando de putty a través de mirth que es un 'cp', existe alguna manera de ejecutar un comando de este estilo?? ya que estamos.. se sabe porqué se mueve corrupto en alguna ocasión?

gracias y un saludo!



   
(@fjcarrasco)
Member Admin
Joined: 13 years ago
Posts: 39
 

Hola, Cristina:

Se me ocurre que a veces no se le dé el tiempo suficiente para que la copia del fichero termine de realizarse. ¿Has notado que te ocurre con tamaños de ficheros superiores a la media o es completamente aleatorio?

En cualquier caso, como bien sugieres, me parece buena idea probar a ejecutar el comando directamente para ver si el problema se soluciona. Puedes definir la siguiente función dentro de un code template en Mirth Connect, con la que, además, puedes obtener la respuesta del comando ejecutado:

function executeCommand(cmd) {
  var res = "";
  try {
    var line = new java.lang.String();
    var p = java.lang.Runtime.getRuntime().exec(cmd);
    var bin = new java.io.BufferedReader(
      new java.io.InputStreamReader(p.getInputStream()));
    while ((line = bin.readLine()) != null)
      res += line.toString();
    bin.close();
  } catch (e) {
    res = "ERR: " + e.getMessage();
  }
  return res;
}

Una vez definida, puedes ejecutar esta función desde un conector de tipo JavaScript, y debería funcionar tanto en Windows como en Linux.

Por ejemplo, el siguiente código en un conector de tipo JavaScript en Windows mostraría por consola la típica respuesta 1 archivo(s) copiado(s):

logger.info(executeCommand('CMD /C COPY /Y "C:\tmp\informaticasana\foros\filetocopy.txt" "C:\tmp\informaticasana\foros\filecopied.txt"'));

Ya nos cuentas qué tal.

Un saludo y gracias a ti.



   
(@cristina_sorli_clemente)
Eminent Member
Joined: 11 years ago
Posts: 17
Topic starter  

Hola Francisco,

Primero de todo gracias por tu respuesta. Lo que me comentas sobre el tiempo de creación del fichero, puede ser, ya que tal cual se deja el fichero en la carpeta lo cojo, así que se me ocurre que haya veces que el enlace ya esté y lo coja incompleto... Voy a probar a poner la opción que mire los ficheros a partir de 1000 o 2000 ms de su creación, a ver si seso lo soluciona. Sino probaré la ejecución del comando.

Gracias!



   
(@fjcarrasco)
Member Admin
Joined: 13 years ago
Posts: 39
 

De nada, Cristina, para esto estamos. 😉

Ya nos cuentas cómo te ha ido.

Un saludo.



   
(@cristina_sorli_clemente)
Eminent Member
Joined: 11 years ago
Posts: 17
Topic starter  

Buenas tardes!

He estado probando la función, he puesto en logger.info la línea tal cual me has escrito como ejemplo cambiando las rutas y el nombre del txt, y me muestra 'El sistema no puede encontrar el archivo especificado'

Copio pego tal cual lo tengo, a ver si es que me estoy dejando algo y no lo veo...

var cmd = 'CMD /C COPY /Y "C:\Tmp\cmd\prueba.txt" "C:\Tmp\cmd\prueba3.txt"';

logger.info(executeCommand(cmd));

prueba.txt es un fichero que tiene escritas unas líneas, nada más.

Gracias y saludos!



   
(@cristina_sorli_clemente)
Eminent Member
Joined: 11 years ago
Posts: 17
Topic starter  

Ok! solucionado!

Como escrito .txt en el nombre, entonces para el interprete era prueba.txt.txt ...

Ha funcionado a la perfección!

gracias!!



   
(@fjcarrasco)
Member Admin
Joined: 13 years ago
Posts: 39
 

Perfecto, me alegro de que hayas solucionado el problema. 😉

Un saludo y gracias a ti.



   
Share:
Scroll to Top