Actualizar ficheros externos

Hola a todos:

Tengo un caso de uso del entorno que no logro resolver. Me ocurre tanto en V7.14 como V7.16

Cuento con una solución gráfica a través de la librería HighStock.

Uso varios ficheros que me permiten interaccionar con la librería, a saber:

cvSignalGrafico.htm
exporting.js
fondo_grafico.jpg
highstock.js
jquery.js

Uso vDevelop para desarrollar en remoto. Para modificar los ficheros anteriores tengo que cambiar los existentes en:
~/Velneo/cacherun/mi.ip.del.server_puerto

Pero cuando lanzo vClient desde otro equipo, en la aplicación no aparecen las modificaciones.

El workaround que he encontrado es copiar y pegar los ficheros en el cacherun del propio servidor, pero me obliga a compartir la carpeta del servidor a través de windows o linux.

Lo anterior, aunque no deseable, es posible si el sistema de archivos es gestionable por nosotros, pero ¿como se haría con los servidores en nube proporcionados por las subscripciones?.

¿Tendría que realizar un .vim por cada actualización que realizara?.

Muchas gracias.

Hola:

Adjunto dos capturas de pantalla donde os muestro como tengo organizado los ficheros, así como el detalle de uno de ellos.

Os agradecería que me pudiérais facilitar alguna ayuda al respecto o algún lugar donde localizar información para solventarlo.

Muchas gracias.

image

image

Por último os subo el manejador de eventos que utiliza uno de los ficheros auxiliares (cvSignalGrafico.htm) y el inspector de scripts donde lo he importado.

Busco poder enlazar en el manejador de eventos el fichero (vSignalGrafico.htm) que aparece en el inspector de scripts.

Gracias.

image

Hola Alejandro.

Entiendo que tu problema es trasladar el cambio que realizas en un Adjunto a todos los vClients de la Solución.
No tengo claro si el fichero cvSignalGrafico.htm cambia contínuamnete o es un adjunto del proyecto.

Te copio aquí unas conclusiones que escribí en otro hilo


  • La caché se crea por usuario y máquina (\velneo\cacherun<dominio/ip_vServer>

  • Los ficheros adjuntos del proyecto se copian a la caché desde la carpeta de la Solución en vServer

  • Un fichero adjunto se copiará o actualizará a la caché en los siguientes casos:

    Cuando el proyecto al que pertenece cambia
    Cuando se borra manualmente el proyecto en la caché
    
  • Borrar manualmente un fichero adjunto de la caché no desencadena su actualización, aunque es suficiente con borrar el proyecto al que pertenece.

Así que las conclusiones son que:

  • Para actualizar varios ficheros adjuntos vale con copiar la nueva versión a la carpeta del vServer y forzar un guardado del proyecto. Con esto el fichero vca o vcd se copiará de nuevo a la caché junto con todos los adjuntos. Así, no es necesario borrar el objeto Adjunto y crearlo nuevamente y nos ahorramos un trabajo tedioso en el caso de que sean muchos adjuntos.
    Observad que esta actualización se hará para todos los Usuarios y máquinas.
  • Para el caso que queramos borrar manualmente un fichero sospechoso de la caché, no es necesario borrar toda la caché, simplemente borramos el proyecto al que pertenece el adjunto y se actualizarán todos los adjuntos (por esta razón es necesario guardar una copia de la caché original que causa problemas, para reponer los ficheros de nuevo a la caché).
    Observad que esta actualización solo se hará para el usuario/máquina conectado.

A veces no será posible borrar toda la caché porque habrá ficheros de personalización, de logs, etc… pertenecientes al usuario.


Así que realiza un guardado del proyecto (vca y vcd) en el vServer del cloud y reinicia la Solución. Con esto en todos los vClients se actualizará el cacherun y por consiguiente todos los adjuntos.

Pruébalo.

Saludos
Paco Satué

Muchas gracias Paco.

El comportamiento tal y como lo describes (así también lo entiendo yo) fuerza a compartir la carpeta en el sistema de ficheros del vSever para actualizar el fichero (cvSignalGrafico.htm), pues éste es susceptible de ser modificado por el programador en el desarrollo del proyecto.

Lo anterior, aunque no deseable, es posible si el sistema de archivos es gestionable por nosotros, pero:

a) ¿Cómo se haría con los servidores en nube proporcionados por las subscripciones?. No tengo posibilidad de modificación “directa” en el sistema de ficheros de dichos servidores.
b) ¿Podría usar a través del inspector de scripts un repositorio de dicho fichero (cvSignalGrafico.htm)?. De ser factible, ¿cómo hago referencia a él en un manejador de eventos?

Muchas gracias de antemano.

Hola Alejandro.

Creo que no estás entendiendo cómo funciona la caché en los clientes.
Tú dices:

El comportamiento tal y como lo describes (así también lo entiendo yo) fuerza a compartir la carpeta en el sistema de ficheros del vSever para actualizar el fichero (cvSignalGrafico.htm), pues éste es susceptible de ser modificado por el programador en el desarrollo del proyecto.

No es necesario compartir ninguna carpeta del vServer:

  • El programador modifica el fichero Adjunto cvSignalGrafico.htm.
  • Lo único que tiene que hacer es guardar la Solución desde vDevelop.
  • Localizar la carpeta Cajas del vServer local donde está guardada la Solución.
  • Copiar los 2 nuevos ficheros de los proyectos (.vcd y .vca) y los Adjuntos a la carpeta Cajas del Servidor en la nube
  • Puedes usar un cliehte FTP (tipo FileZilla) para este cometido. Con esto accedes al sistema de archivos del vServer en Cloud.
    Consulta el artículo http://velneo.es/explorador-archivos-cloud/
  • Una vez que reinicies la Solución del vServer mediante vAdmin el fichero adjunto cvSignalGrafico.htm se copiará de forma transparente en todos los clientes conforme vayan ejecutando vClient.
  • Usar FTP para copiar manualmente los ficheros de la carpeta Cajas evita tener que usar un fichero vin de instalación.

Otro tema es que el fichero cvSignalGrafico.htm se modifique en tiempo de ejecución. En este caso tendrías que usar los comandos SDV de Velneo para subir el fichero al vServer del Cloud y que el resto de clientes lo pudieran descargar a petición.
O guardar el fichero cvSignalGrafico.htm en un campo de texto de una tabla y recuperarlo con la clase VFile del API cada vez que se necesite.

Saludos
Paco Satué

Hola Paco:

Gracias por tus aclaraciones. Ahora lo entiendo.

Lo pongo en práctica.

Un saludo.