miércoles, 12 de diciembre de 2007

Uso del servlet DownloadBlob en el ESS/MSS

Muchas veces nos encontramos con la necesidad de publicar documentos en el ESS o en el MSS que son "estáticos" por ejemplo un listado de personas, o una descripción de una unidad organizativa,...

Ante este caso podemos actuar de dos maneras:

Enlace HTML:
Dejamos el documento en las carpetas del servidor Web y referenciamos a ellas mediante un ancla o "anchor" de la siguiente forma href="/documents/documento.pdf".

  • Pros:
    Esto es lo más sencillo
  • Contras:
    1) no podemos controlar que ese link sea privado, por lo que cualquier persona podrá enlazar a ese documento de la forma http://server:port/documents/documento.pdf.
    2) si el usuario necesita modificar el documento, es muy probable, que tenga que pedirlo a otras personas para que se lo cuelguen. (O con los implantadores) (A no ser que lo montemos como un link en PeopleNet)
    3) el documento SIEMPRE se deberá llamar de la misma forma y tener la misma extensión ya que si no tendremos que modificar también la página.

Uso de Campo BLOB:
Usar el tipo Blob en un campo de una de nuestras tablas y ser capaz de descargarlo.

  • Pros:
    1) podemos controlar que ese link sea privado, ya que como la descarga se hace usando tecnología Meta4 es necesario estar logado al sistema.
    2) si el usuario necesita modificar el documento lo hará desde Meta4 PeopleNet.
    3) Se puede cambiar de nombre y extensión las veces que se quiera... Meta4 se encarga de la descarga y vuestro navegador de decidir que programa usa para abrirlo.
  • Contras:
    1) Es algo "más" complicado ya que hay que ser capaz de insertar ese documento en la Base de Datos
    2) Si el número de documentos es grande o esto son muy grandes podemos llenar la Base de Datos.
Este post trata, además de explicar porqué lo hago, describir la forma de poder llevar a cabo esta descarga.

Vamos a pensar en que debemos sacar la descripción de una Unidad Organizativa que es un documento que el usuario realiza y pasa luego a pdf y que lo quiere colgar del historial de puestos de los empleados, de tal forma que pinchando, o haciendo click, en un link el empleado pueda ver esta descripción, pero sólo de aquellas Unidades Organizativas por las que ha pasado a lo largo de su vida profesional.

Modelo de Datos: Lo primero sería, crear una tabla que, por ejemplo, se herede de STD_WORK_UNIT (También se puede hacer con un tabla con relación 1:1 con esta). A esta tabla le añadiremos un campo CXX_DESCRIPCION_BLOB con un tipo extendido basado en un BLOB.

Meta4Object: Crearemos un Meta4Object, llamémosle CXX_WUNIT_BLOB con un nodo y estructura de nodo que llame igual de tal forma que en la sentencia recojamos el STD_ID_WORK_UNIT y el campo CXX_DESCRIPCION_BLOB de la tabla que hemos creado en el paso anterior.
Añadiremos una propiedad PRP_ID_WORK_UNIT
Añadiremos un método "CXX_CARGA" con un parámetro ARG_ID_WORK_UNIT para poder recibir el ID Unidad Organizativa que más tarde enviaremos desde la página. El código podría ser: CXX_CARGA.txt


JSPs (ESS): Necesitaremos crear una nueva página sse_g3_desc_uo.jsp. Esta página recibirá un parámetro "iduo" que se pasará al Meta4Object: CXX_WUNIT_BLOB de la siguiente forma: sse_g3_desc_uo.jsp


De esta forma al entrar en esta página se lanzará la ejecución del servlet de la descarga del Blob

No he incluido nada que compruebe que esta Unidad organizativa tiene o no un documento que, creo que se debería.

Para la incluir un documento en un campo blob dedicaré otro post...o retocaré este en breve.


4 comentarios:

Anónimo dijo...

Muy buena información! Te hago una pregunta, ¿has desarrollado como subir archivos desde el Self Service o el JobSite a la base? O me pudes indicar los lineamientos generales para poder implementarlo?
Desde ya, muchas gracias.

Diego Colombo dijo...

Oscar, es una info Genial, pero estoy desesperado esperando el posto que indicas al final, el que da la posibilidad de incluir un documento en un campo BLOB desde el Self Service, ya lo tienes eso? me puedes orientar?

Oscar López dijo...

A partir de tecnología 7.1 SP2 + HF6 está disponible la opción de usar un Gestor Documental dentro de Meta4 (soportado por Oracle o SQL Server). A este gestor se le puede asignar desde Rich o desde ESS documentos. Tengo a un compañero haciendo un desarrollo para un cliente que les permite subir doc's de facturas desde el ESS para solicitar préstamos de consumo.

En cuanto tenga eso terminado le pediré que me deje publicarlo.

Un saludo!
y gracias por seguir leyendo el blog

Marcos dijo...

Hola queria saber si cuando instalaron el meta4 le dio alguna ves el error m4loader.

descarga los modulos
descomprime los modulos
en configurando tira un error m4loader y no anda mas

saludos