Hipervinculo documentos


([N2] atelocalvo) #1

Buenos días, agradezco de antemano vuestra ayuda. Quisiera hacer un proceso mediante el cual desde la aplicación se pueda mostrar un documento que físicamente está en el servidor de la oficina, y que una vez cerrado se quede en el servidor de la oficina y no en la aplicación.

He estado usando un proceso con campo de tipo objeto binario, pero esto está haciendo que usemos mucho espacio del disco en Vserver cloud.

Lo que quiero es decirle vete a esta ruta del servidor, muéstramelo y ciérralo. Por ej: un contrato con un proveedor, físicamente está en el servidor de la empresa, y desde la aplicación que vaya a esa ruta, lo muestre y lo cierre.

Un saludo.


([N3] pacosatu) #2

Hola atelocalvo.

Velneo puede gestionar de forma nativa documentos remotos que están accesibles desde una carpeta definida en el vServer (opción de Disco).
Toda la gestión se realiza sobre el protocolo VATP y usando los comandos SDV.

Busca en el foro sobre el tema SDV, hay mucha información.

Otro opción es servir documentos a través del protocolo HTTP y montar un servidor Web.

Saludos
Paco Satué


([N2] atelocalvo) #3

Muchas gracias Paco,

Buscaré en el foro sobre SDV.

Un saludo.


([N2] atelocalvo) #4

Buenos días, estoy tratando de subir documentos y me da error. Os adjunto lo siguiente por si me podéis ayudar:
1º En VAdmin, creo carpeta Documentación para subir allí los documentos.
2º En la ficha de ofertas creo las variables locales.
3º Creo manejador de evento que adjunto y al final me dice que no se ha podido subir el documento.

Muchas gracias por vuestra ayuda.





([N3] pacosatu) #5

Hola atelocalvo.

Revisa el path del comando SDV: Subir fichero al servidor, parece que hay un signo * en lugar del +.
Tampoco es necesario el comando SDV: conectar pues se supone que el usuario ya tiene acceso a la carpeta datos/Documentacion.

Saludos
Paco Satué


([N2] atelocalvo) #6

Buenos días Paco,

Muchas gracias por la información. He cambiado el * por + y funciona correctamente. Paco, voy a abusar un poco de ti y me gustaría que me explicaras una cosa. Mediante el comando SDV: subir fichero, esta claro que vamos subiendo ficheros a la carpeta datos/Documentación, ¿cómo hago para que me muestre en pantalla un documento particular que exista en esa carpeta?

Es decir, llegará un momento que en datos/Documentación tendré por ejemplo 100 documentos y lo que quiero es que desde la ficha de ofertas me muestre un documentos particular de todos ellos.

Disculpa y muchas gracias por tu ayuda.


([N3] pacosatu) #7

Hola atelocalvo.

Los documentos están en una ubicación remota.
Como con cualquier otra aplicación (explorador web, red local, …) hay que descargarlos y mostrarlos mediante un Visor instalado en el Cliente.

La ventaja con Velneo es que disponemos de un mecanismo sencillo y rápido, los comandos SDV.
Estos documentos solo se pueden descargar desde tu Aplicación aportando un nivel de seguridad de acceso.
Así que el proceso es:

  • Determinar el nombre del fichero a mostrar.
  • Descargar el fichero mediante el comando SDV correspondiente. Se descarga a una carpeta temporal (o la caché) con un nombre personalizado.
  • Mostrar el documento (normalmente un PDF) en el Visor del Cliente. Existe el comando Ejecutar documento () para realizar esto, se abrirá el Visor predeterminado que tenga el Cliente en el sistema operativo.

Saludos
Paco Satué


([N2] atelocalvo) #8

Hola Paco,

Eso es lo que no comprendo como hacer. Me explico, si yo hago un:
SDV: Descargar fichero a local, en fórmula senda VRL de origen pongo: “datos/Documentación”, aquí no le estoy diciendo que documento particular quiero bajar y lo que quisiera obviamente es no escribir es nombre del fichero particular, sino que de cada registro me muestre ese.

Te pido perdón de nuevo y si te estoy importunando contacto con velneo


([N1] vgegeo) #9

Debes crear una tabla plural, de aquellos maestros para los que asociaras un documento o varios.
Cada vez que subas un fichero por SDV conoceras el nombre, y se lo asociaras como plural al maestro al que esta relacionado.
De esta forma, en una ficha de oferta, tendras una serie de adjuntos plurales asociados a esa oferta.

Asi ya tienes determinado el nombre del fichero que esta asociado a la oferta.

Descargas el fichero, y lo muestras.


([N3] pacosatu) #10

Hola atelocalvo.

Por favor, no estás importunando para nada, aquí todos estamos porque queremos.

GEGEO te ha dado la respuesta, debes guardar en la tabla el nombre del fichero que has subido a SDV para posteriormente saber qué documento debes mostrar.

Saludos
Paco Satué


([N4] SyP) #11

Perdonar que me meta por medio, sobre todo porque no he podido probar lo que digo, pero aprovecho el hilo para hacer dos preguntas:

  • Si en lugar de ver el documento quiero editarlo, es decir, descargarlo, abrirlo y modificarlos, supongo que tendré que volver a subirlo, pero como se hace si el cliente ya ha cerrado el documento y es un documento temporal?

  • ¿Que ocurre si el nombre del fichero que subo ya existe, lo sobre escribe?

Muchas gracias.


([N2] atelocalvo) #12

Muchas gracias a los dos. Os cuento en importar fichero he añadido una línea Modificar campo, así consigo el nombre el fichero.

Ahora lo que no sé hacer es en bajar fichero a local, como decirle que es ese nombre, he probado con SDV: Descargar fichero a local ("datos/Documentación/getPathFileName(variable local)

Pero no me lo baja a local.


([N1] vgegeo) #13

Buenas,
-En la primera no te puedo ayudar, trabajo unicamente con PDFs adjuntos.
-En la segunda, puedes renombrar el fichero con algo asociado al momento de subirlo, por ejemplo, algo relacionado con la fecha, un hash sobre la fecha. En cualquier caso, puedes recorrer el directorio para ver si existe ese nombre, y si existe, entonces renombras con algo significativo como fecha+id_maestro, o cualquier cosa que te permita diferenciarlo de otros posibles existentes.

Saludos


([N1] vgegeo) #14

[quote quote=48435]Muchas gracias a los dos. Os cuento en importar fichero he añadido una línea Modificar campo, así consigo el nombre el fichero.

Ahora lo que no sé hacer es en bajar fichero a local, como decirle que es ese nombre, he probado con SDV: Descargar fichero a local (“datos/Documentación/getPathFileName(variable local)

Pero no me lo baja a local.

[/quote]

Con la instruccion SDV: Descargar fichero a local, tienes que localizar el fichero , e indicar la senda destino:

tempPath() + "/" + getPathFileName(FICHERO)

Despues ya solo te queda Ejecutar documento, y como senda, la que has indicado como destino de la descarga


([N1] vgegeo) #15

@atelocalvo
Adjunto proceso con el que puedes subir fichero, bajar el fichero y abrirlo.
Adjutno las variables que utilizo en el proceso

@Syp
-Si el nombre existe, no te avisa y lo sobrescribe, salvo que tu indiques en las instrucciones del proceso para recorrer el directorio y comprobar su existencia o no.

-Con respecto a subir una vez editado, puedes crear un proceso similar de subida, desde el registro que ha descargado (asi ya conoces el nombre que buscar en TEMP), y que en la ventana de seleccion del fichero, te habra el directorio TEMP, para que el usuario no tenga que buscarlo. Ahora bien, en TEMP podra tener mil y una historias.
Esto pensando que tienes, por ejemplo, en la ficha que contiene esos documentos adjuntos, una lista con los documentos asociados a la ficha:
-Puede seleccionar el adjunto que quiere sustituir, y tu por proceso, le abres el TEMP, que lo seleccione, y lo suba, SDV lo sustituira por el nuevo.
-o puedes tambien directamente, sin ventana de seleccion de fichero, subir directamente el que tenga él en TEMP con el mismo nombre. (te tienes que asegurar que exista, y que el usuario pueda cancelar la subida, no vaya a ser que el editado lo haya guardado en otro sitio.

Saludos

PRO_TEST_UP_DOWN_OPEN.pdf (17.6 KB)



([N2] atelocalvo) #16

Hola GEGEO, he estado probando tu proceso y si bien puedo subir ficheros al servidor, no se porque no los puedo bajar a local. Aún así, he logrado hacer un proceso para poder bajar a local los documentos. Lo malo es que ahora lo que quiero es que me muestre en pantalla el documento bajado a local.

Adjunto proceso por si alguien me puede decir como podría ejecutar el documento y que me lo muestre en pantalla.

Muchas gracias a todos.



([N1] vgegeo) #17

Si con tu proceso has conseguido bajar a local, incluye dentro del If (OK=1) la instruccion Ejecutar documento (RUTA DONDE LO HAS DESCARGADO)

Revisa si el usuario que utilizas del sistema operativo tiene acceso a las rutas donde quieres descargarlo, y por tanto, desde donde tendras que ejecutarlo.

Saludos


([N2] atelocalvo) #18

Muchas gracias GEGEO,

Ya ejecuto el documento sin problema. Una última pregunta, ¿Cómo puedo hacer para que importe y/o exporte más de un usuario? En SDV conectar hay que indicar un usuario y contraseña, me gustaría que esto lo pudiera hacer más de un usuario, ¿Se puede hacer?

Un saludo.


([N1] vgegeo) #19

Hola atelocalvo,

Segun la informacion de la ayuda SDV:
(…)el comando SDV: Conectar, sólo es necesario ejecutarlo si vamos a trabajar contra un servidor diferente al que ya estamos conectados, o si queremos ejecutar los comandos con un usuario que tenga permisos diferentes al usuario en curso que está ejecutando la aplicación.(…)

Ahora bien, debes asegurarte que el grupo de usuarios al que pertenecen, esta en los grupos admitidos para la carpeta compartida del vServer donde alojaras los ficheros, ya que, cito textualmente:

(…)El comando SDV: Conectar requiere que el usuario tenga al menos una carpeta compartida en el servidor. Todos los comandos de SDV que se incluyan en el subproceso del comando SDV: Conectar, se ejecutan contra ese servidor.
Todos los comandos de “SDV” comprueban que el usuario tenga permiso para la carpeta en la que se está ejecutando el comando.

Saludos

PD: eso lo deje puesto en el proceso que comparti, ya que hace unas versiones (no recuerdo cual) era necesario SDV: Conectar con un usuario con privilegios Administrador


([N2] atelocalvo) #20

Muchas gracias GEGEO, efectivamente no es necesario utilizar el SDV conectar.

Tengo otra duda, he hecho un manejador de evento para poder ver los documentos importados. El problema viene en el nombre del fichero, si tiene un nombre muy largo no me lo muestra, sin embargo si el nombre es corto me lo muestra. Necesitaría poder ver los documentos con nombre largo.

¿Alguna idea?

Un saludo.