Punto de Consulta
Función
El Punto de Consulta OpenProdoc (en ocasiones denominado en esta documentación con el término tradicional OPAC por analogía),
permite a personas externas al sistema consultar de forma sencilla los documentos (o carpetas) del mismo sin necesidad de disponer de usuario o autenticarse.
Básicamente el Punto de Consulta permitirá elegir el tipo de documento (o carpeta) a buscar, introducir los criterios de consulta y elegir el formato de presentacion de los resultados.
Esto requiere parametrización para simplificar el uso y también para añadir seguridad, ya que estamos permitiendo el acceso a personas a las que no hemos dado una identificación y que podrían acceder a documentación confidencial o causar daños por error o intencionadamente.
La parametrización se hace por medio de un fichero de propiedades con los elementos que se detallan a continuación. Al final se incluye un ejemplo (las líneas que empiezan por # se toman como comentarios y se ignoran, al igual que las líneas en blanco) :
Con la función "OPAC" puede crearse formularios como:
Diseño Athena creado por Lucycons3 y Nosturi
Sintaxis
Este fichero sigue el estandar habitual de los ficheros de propiedades (etiqueta+"="+Valor), admitiendo comentarios (líneas que empiezan con el caracter '#'). El significado de cada etiqueta (que no puede repetirse) es el siguiente:
- DocTipesList : Nombres de los Tipos de documentos por lo que podrá buscar un usuario.
Debe tenerse en cuenta que si el parámetro Inheritance está activado (es igual a 1), se buscará automáticamente por todos los subtipos de cualquiera de los tipos elegios.
Si se desea buscar por carpetas (usando la url OPACf) debe incluirse tipos de carpetas.
- FieldsToInclude : Nombres (Internos, no los nombres de usuario) de los Metadatos/Campos (de cualquiera de los tipos) por lo que podrá buscarse documentos.
Solo se presentarán en el formulario de consulta (y se buscará por) los metadatos de cada tipo incluidos en la lista.
Es decir, cada vez que se elija un tipo, se actualizará el formulario para presentar, de todos los metadatos del tipo, los incluidos en la lista.
Esto no tiene relación con los metadatos presentados de los resultados de búsqueda ni el formato de los resultados, que dependen de los informes elegidos en ResultForm.
- FieldsComp : Operadores de búsqueda/comparacion para cada metadato. Por defecto es igualdad (EQ) es decir se busca todos aquellos documentos (o carpetas) cuyo valor de ese metadato es igual al introducido. Los posibles valores son caracteres de 2 letras: = EQ, <> NE, > GT, >= GE, < LT, <= LE, Contains CT . Puede asignarse valores diferentes de forma que ppor ejemplo un metadato de tipo fecha se busque por valores superiores al introducido usando GE. El operador CT permite buscar metadatos que CONTENGAN el valor introducido, lo que facilita la búsqueda pero la hace más lenta y puede generar demasiados resultados.
- BaseFolder : Arbol de carpetas por debajo de la cual se realizarán las búsquedas. El resto de los documentos almacenados fuera de ese árbol no se devolverán.
- Inheritance : Si este parámetro está activado (1) la búsqueda incluirá todos los subtipos de documentos del tipo documental seleccionado. Si está desactivado solo incluirá el tipo seleccionado. Esta opción NO afecta al rendimiento, por lo que el criterio para usarlo es puramente documental.
- ResultForm : Códigos identificadores (PDId) de los documentos de tipo Informes (PD_REPORTS) que se utilizaran para presentar los resultados. Debe incluirse al menos 1.
- MaxResults : Máximo numero de resultados que se devolverá (0 = "sin límite", realmente 1 millón).
- FormSearchCSS : Código identificador (PDId) del fichero CSS a utilizar para la pantalla de consulta. Los estilos predefinidos en la página se detallan en Estilos OPAC CSS
- FormSearchLogo : URL del logo a presentar en la pantalla de consulta. Puede ser externo (ej. intranet.empres.com/img/Logo.jpg) o interno (Ej. SendDoc?Id=44345543-757656 ) utiilizando como valor del parámetro Id, el código único PDId de una imagen almadenada en OpenProdoc. Debe verificarse que ese documento es visible para todos los usuarios.
- User : Usuario con el que se realizarán las consultas a OpenProdoc. Debe comprobarse que ese usuario tiene acceso a los documentos pero no permisos de otro tipo, ya que el Punto de Consulta realiza una conexión real que podría permitirle reaizar operaciones. La recomendación es crear un usuario especifico para consultar y asignarle un Rol sin ningún permiso (con lo que solo podra consulltar)
- Pass : Clave (en claro) del usuario de consulta.
- Title : Cabecera del formulario de consulta.
- DTLabel : Etiqueta de la lista desplegable de tipos documentales (o tipos de carpetas) sobre los que podrá realizarse la búsqueda.
- FTLabel : Etiqueta del campo de búsqueda por texto completo de los documentos. (Solo válido para búsqueda de documentos)
- FormatLabel : Etiqueta de la lista desplegable de formatos de salida (definidos en el parámetro ResultForm
- HelpForDocType : Texto de la ayuda emergente que se presentará al situarse en el combo de selección de tipos de documento (o carpeta). Puede contener caracteres de control html.
- HelpForFullText : Texto de la ayuda emergente al situarse en el campo de búsqueda por texto completo de los documentos. Puede contener caracteres de control html. (Solo válido para búsqueda de documentos)
- HelpForFormatType : Texto de la ayuda emergente al situarse en el combo de selección de formatos de salida. Puede contener caracteres de control html, como <b>, <br>
- UrlHelp : Url de la página de ayuda personalizada para el punto de consulta que se presentará a los usuarios al pulsar el botón de ayuda.
El proceso de parametrizar un punto de consulta consiste en crear un archivo de texto con el contenido citado (puede utilizarse como base el ejemplo incluido y modificarlo), introduciendo los valores adecuados a la instalación de OpenProdoc concreta.
Previamente debe modificarse el fichero de configuración de OpenProdoc (Prodoc.properties o el nombre utilizado) y añadirse 2 líneas:
User=Usuario1
Pass=ClaveUsuario1
Donde Usuario1 y ClaveUsuario1 serán datos de un usuario que tenga acceso a los distintos documentos que configuración (OPAC y OPAC_CS) que se describen a continuación.
Se recomienda que sea un usuario con un rol (perfil) limitado y con un mínimo de permisos, ya que solo debe poder acceder en modo lectura a los ficheros de configuración de las consultas.
Como todo cambio en el fichero de configuración (Prodoc.properties), debe reiniciarse el servidor para que se lea de nuevo.
A continuación debe crearse (o modificarse el ejemplo incluido) el CSS para adaptarlo al estilo de la institución o empresa correspondiente.
Luego deberá añadirse el CSS al repositorio OpenProdoc y anotar el PdId generado.
Ese PdId es el que deberá referenciarse como parámetro FormSearchCSS del fichero de configuración del punto de consulta.
A continuacion se subirá ese fichero de configuración de consulta.
Con el Id generado deberá invocarse la url de OpenProdoc (Ej.: http://localhost:8080/ProdocWeb2/OPAC?Id= + el identificador del nuevo documento subido, por ejemplo http://localhost:8080/ProdocWeb2/OPAC?Id=566b6464a654-9696e68d686 ).
Si la búsqueda se refiere a carpetas deberá invocarse la url de OpenProdoc (Ej.: http://localhost:8080/ProdocWeb2/OPACf?Id= + el identificador del nuevo documento subido, por ejemplo http://localhost:8080/ProdocWeb2/OPACf?Id=56aa4a633-111e68d644 )
OpenProdoc presentará una página de acuerdo a los parámetros definidos en ese fichero, incluido hoja de estilo, literales, tipos documentales, etc.
En ella, los usuarios, sin introducir datos de acceso (usuario/password), podrán elegir uno de los tipos documentales por los que quieren buscar, introducir palabras del contenido o metadatos conocidos, elegir el formato de los resultados y buscar.
Al pulsar el botón de búsqueda, Openprodoc se conectará con el usuario indicado en la parametrización, buscará de acuerdo a los criterios incluidos y devolverá lo sresultados en el formato elegido.
El formato puede ser html para presentar con un formato más estético, txt o csv para un tratamiento automático, o xml para poder intercambiar o procesar.
Dado que toda la apariecia es parametrizable, incluidas tipologías documentales, metadatos, etc, y que está orientado a usuarios esporádicos, es razonable asumir que sea necesaria una ayuda peronalizada. Para eso se dispone de un botón que abrirá la página html cuya url se indique en a configuración. Podría ser una página externa o un documento html almacenado en OpenProdoc.
Hay que resaltar que el fichero de configuración, como cualquier documento de Openprodoc puede ser editado y versionado, utilizándose siempre para componer el punto de consulta la última versión publicada.
No obstante la actualización puede llevar cierto tiempo, ya que para mejorar el rendimiento la configuración no se actualiza inmediatamente.
Dado que la parametrización se basa en un documento de Openprodoc y el estilo en otro, es posible tener diversas parametrizaciones simultaneamente, que presenten diferentes conjunts de documentos, distinto idioma del interfaz, distinto estilo o diferente usuario de consulta.
Suministrando a cada colectivo de usuarios la url adecuada (que solo se diferenciará en el Identificador de documento, puede ofrecerse simultaneamente muchos puntos de consulta distintos con muy poco esfuerzo.
Si la plantilla html de OPAC incluida en OpenProdoc se desea modificar más aún de lo que permite los CSS, o adaptar la página a cada navegador, es posible referenciar diferentes plantillas. Para ello debe incluirse unas entradas opcionales en el fichero:
- NumHtmlOpac: Número de HTML alternativos para cubrir necesidades específicas de navegadores concretos o para usar un formato diferente al interno de OpenProdoc. A continuación debe incluirse tantas parejas de parámetros como se indica en NumHtmlOpac
- ListAgent[i]=Texto1|Texto2|...: Debe incluirse tantas entradas como las indicadas en NumHtmlOpac empezando en 0, es decir: ListAgent0, ListAgent1, ListAgent2,.. .
Si la descripción "User-Agent" del navegador CONTIENE cualquiera de los textos Texto1, Texto2,.., entonces la plantilla usada será el html almacenado en OpenProdoc como PDID especificado en HtmlAgent.
Si la cadena es *, entonces no se realizará más comprobaciones de navegador y de devolverá el identificador correspondiente.
- HtmlAgent[i]=PDID Documento: Identificador del documento a utilizar como plantilla en caso de que User-Agent contenga alguno de los textos incluidos en el ListAgent correspondiente.
Los números deben empezar en 0, es decir: HtmlAgent0, HtmlAgent1, HtmlAgent2,...
Si el User-Agent del navegador no contiene ninguna de las entradas indicadas, entonces se utilizará la plantilla interna incluida en OpenProdoc.
Ejemplo
Ejemplo de Archivo de configuración de punto de consulta:
#############################################
####
OPAC ####
#############################################
# Nombres de los Tipos de documentos por lo que podrá buscar un usuario
DocTipesList=Article|ECM_Standards|InternetProfile|MusicRecords|Picture
# Nombres (Internos) de los Metadatos/Campos (de cualquiera de los tipos de documentos) por lo que podrá buscar un usuario
FieldsToInclude=Author|Authors|Keywords|Player|Title|Country|CreativeCommons
# Operators de búsqueda/comparacion. 1 for cada metadato. Por defecto es igualdad EQ
# Posibles valores = EQ, <> NE, > GT, >= GE, < LT, <= LE, Contains CT
FieldsComp=EQ|EQ|EQ|EQ|CT|EQ|EQ
# Carpeta por debajo de la cual se realizarán las búsquedas
BaseFolder=/Examples - Ejemplos
#Búsqueda ampliada a los subtipos
Inheritance=1
# Códigos identificadores (PDId) de los documentos de tipo PD_REPORTS que se utilizaran para presentar los resultados. Debe inckuirse al menos 1.
ResultForm=150c9be080c-3fe46f69eb1b2cb7|150c9be8462-3fd76612bb72fece|15dc854acbf-3fedc1977572a008
# Máximo numero de resultados que se devolverá. (0=sin límite)
MaxResults=0
# Código identificador (PDId) de la hoja de estilo (CSS) que se utilizará para el punto de consulta
FormSearchCSS=15db73b6628-3fee99cd40e27fee
# Url (interno o externo) de la imagen utilizada como logo
FormSearchLogo=img/LogoProdoc.jpg
# Usuario con el que se realizará la consulta
User=Invitado
# Clave de acceso del Usuario con el que se realizaá la consulta
Pass=PassInvit
# Cabecera del formulario de consulta
Title=Punto de Consulta Simplificada
# Etiqueta de la lista desplegable de tipos documentales a buscar
DTLabel=Seleccionar tipo de documento a buscar
# Etiqueta del campo de búsqueda por texto completo de los documentos.
FTLabel=Introducir algunas palabras de búsqueda
# Etiqueta de la lista desplegable de formatos de salida.
FormatLabel=Seleccionar formato de salida de los resultados
# Texto de la ayuda emergente al situarse en el combo de selección de tipos de documento
HelpForDocType=Ayuda Tipos Documentales
# Texto de la ayuda emergente al situarse en el campo de búsqueda por texto completo de los documentos.
HelpForFullText=Ayuda Búsqueda Texto Completo<br>Introduzca cualquier palabra(s) del contenido de documento para recuperar por criterios aproximados. Si se desea que el docuemnto contenga la palabra, debe incluirse un signo +. Si desea buscar literalmente debe incluirse la palabra entre comillas. Para buscar documentos que NO contengan una palabra debe incluirse un signo menos -<br>Puede combinarse con la búsqueda por metadatos de los documentos.
# Texto de la ayuda emergente al situarse en el combo de selección de formatos de salida
HelpForFormatType=Ayuda Formatos Salida
# Url de la página de ayuda
UrlHelp=help/EN/HelpIndex.html
#OPCIONALMENTE, en lugar de usar la plantilla html de OPAC incluida en OpenProdoc puede definirse plantillas adicionales
#Número de Htmls alternativos
NumHtmlOpac=2
#2 entradas para cada número de Htmls, empezando en 0
#------- 0 --
ListAgent0=Edge|Explorer
HtmlAgent0=1632c1c280b-3fa2b6496a3c3250
#------- 1 --
ListAgent1=Firefox
HtmlAgent1=1632c1dd6a2-3fe55f2e09ab3605
Compartir informes y documentos
Es posible compartir informes generados dinámicamente desde el OPAC. Para ello, dentro de los Informes existe una variable @OPD_URLOPACREPORT que almacena datos del OPAC usado para generar un informe, el tipo de informe y los parámetros de búsqueda.
Esa variable, que contiene una url generada dinámicamente (Ej.: http://localhost:8080/ProdocWeb2/OPAC2?OPAC_Id=OPAC_DocEx&DT=Picture&FORMAT_REP=15dc854acbf-3fedc1977572a008&Picture_Author=Joaquin%20Hierro), puede incluirse en el informe y compartirse con otros usuarios.
Si estos usuarios tiene acceso a esa url, podrán ver el informe, que se calculará en tiempo real.
Al ser calculado en tiempo real, debe tenerse en cuenta que puede devolver más o menos documentos (según se añadan o eliminen de OpenProdoc pasado un tiempo).
Adicionalmente, existe la posibilidad de compartir un documento recuperado en un informe. Para ello puede construirse en el informe una url con la estructura:
http://localhost:8080/ProdocWeb2/OPAC2?OPAC_Id=OPACId&DT=TipoDocument&PDId=PDIdDocumento, donde:
- OPACId: Identificador del punto de consulta utilizado.
- TipoDocumento: Tipo documental recuperado. Puede generarse dinámicamente en el informe utilizando @OPD_VAL_DocType
- PDIdDocumento: Identificador PDId del documento. Puede generarse dinámicamente en el informe utilizando @OPD_VAL_PDId
Ejemplo: http://localhost:8080/ProdocWeb2/OPAC2?OPAC_Id=OPAC_DocEx&DT=Picture&PDId=172ad6d6fc2-3fef4815f4e4d451
En ambos casos, las Urls son comprobadas por la función OPAC (aunque no se esté utilizando en su forma habitual), por lo que la seguridad y control de acceso son los mismos que con el OPAC. La información que no pueda recuperarse desde el OPAC no puede recuperarse igualmente a tarvés de estas url.
Si se manipula su contenido para obtener acceso a información no pública, será rechazado, pudiendo devolver errores o nada en absoluto.
Índice Ayuda OpenProdoc