Catálogos
Contenido
¿Qué es un catálogo?
Un catálogo
es un componente de ODL que se define como instancia en las definiciones de contenedor, tanto en definiciones de sistema como en definiciones de tipo contenedor. También es posible definir un tipo
de catálogo para definir otros a partir de èl, pero en estos casos, su definición se realiza independientemente de cualquier recurso de ODL.
¿Para qué sirve?
Los catálogos se utilizan para realizar vistas de los diferentes recursos de un centro mediante sentencias SQL. A diferencia de las colecciones, un catálogo no almacena ningún objeto, ni crea ninguna tabla en la base de datos, y tampoco es posible acceder a los objetos desde un catálogo (salvo una excepción). Simplemente, se ejecutará la sentencia SQL que hayamos descrito y eso nos devolverá la vista de los recursos seleccionados en forma de lista. Esto nos va a permitir crear listas cuya información mostrada puede no tener ningún tipo de relación entre sí.
La excepción a la que hemos hecho mención, tiene mucho que ver con las propiedades RRC, DRC y Name de un objeto, ya que, sólo en caso de incluir estos campos en la sentencia SQL, podríamos acceder a los objetos que indiquen ese RRC, DRC y Name accediendo al catálogo y abriendo el ítem que nos interese.
Sintaxis
- Definición de tipo
tipo
[Nombre]es
catalogo
-descripcion
="Descripción"
-sentencia
="select ... from ..."
fin
- Definición como instancia (a nivel de contenedor)
tipo
[Contenedor]es
contenedor
... ...//Otras definiciones
... [Nombre]es
catalogo
-sentencia
="select ... from ..."
fin
... ...//Otras definiciones
...fin
Creación de
Cuando un centro se encuentra en explotación, es posible que sea necesario cambiar en algún momento las sentencias SQL incluídas en las definiciones de catálogos para obtener nuevos resultados. De forma que tendremos que ir al código correspondiente, variar la sentencia SQL y actualizar el diccionario de dicho centro para reflejar los cambios realizados.
Con el fin de evitar cambios en el código fuente del centro, hacemos uso de las vistas en la base de datos.
Podríamos definir una vista como una consulta, donde se reflejan los datos que hayamos seleccionado de las distintas tablas de la base de datos. No es un concepto físico, es decir, no se realiza una copia física de los datos obtenidos, de manera que si hay modificaciones en las tablas, éstos serán aplicados a aquellas vistas que se vean afectadas.
Por tanto, la utilización de vistas nos permite abstraer el modelo de la base de datos subyacente, de formar que en vez de modificar la sentencia SQL de un catálogo, modificaremos la vista sobre la que se realiza la petición SQL en cuestión.
Las vistas que creemos tendremos que definirlas en ficheros .sql que almacenaremos en la carpeta Installation del modelo. Al instalar un centro, los ficheros que se incluyan en dicha carpeta serán ejecutados, por lo que las sentencias incluídas en los .sql serán ejecutadas y por consiguiente, las vistas serán creadas. En caso de modificar alguna vista, se deberá actualizar el centro para que vuelva a ejecutar la sentencia modificada.
Atributos
Atributos genéricos de la definición de un componente
Atributo | Tipo | Valor por defecto | Observaciones |
---|---|---|---|
ayuda
|
Texto | Marcador en la ayuda del centro. | |
descripcion
|
Texto | [Nombre] | Comentario sobre el componente. |
etiqueta
|
Texto | [Nombre] | Etiqueta del componente. |
orden
|
Entero | 0 | Indica la prioridad del componente al ordenarlo sobre el recurso. |
visible
|
Lógico | Verdadero | Indica si el componente es visible. |
Atributos de la definición de catálogo
Atributo | Tipo | Valor por defecto | Observaciones |
---|---|---|---|
sentencia
|
Texto | Sentencia SQL. |