Sunteți pe pagina 1din 46

Alfresco

Elmodelodemetadatos

Alfresco:Elmodelodegestindocumental ylautilizacindemetadatos AndrsAznar


andres.aznar.royo@gmail.com

Andrs Aznar Royo

Pgina 1

Alfresco

Elmodelodemetadatos

INDICE 1.- Introduccin a la gestin documental de Alfresco ......................3 1.1.- Alfresco gestor documental .................................................3 1.2.- Sobre el autor ........................................................................3 2.- Los documentos en Alfresco ......................................................4 2.1.- Un contenedor de documentos y algo ms ........................4 2.2.- Bsquedas por metadatos y por contenido........................4 3.- Metadatos ...................................................................................6 3.1.- Etiquetas, Categoras, Aspectos y Tipos ............................6 4.- La definicin del modelo ...........................................................14 4.1.- Estructura jerrquica ..........................................................14 4.2.- Definicin a partir de un ejemplo real ...............................15 5.- Implementacin del modelo......................................................18 5.1.- Fichero de declaracin del modelo ...................................18 5.2.- Fichero de definicin del modelo ......................................19 5.3.- El fichero de publicacin en Alfresco Explorer ................26 5.4.- El fichero de propiedades ...................................................33 5.5.- El fichero de declaracin en Alfresco Share ....................34 5.6.- El fichero de publicacin en Alfresco Share.....................35 5.7.- Los ficheros del men de carga de Share.........................42 6.- Conclusiones ............................................................................46

Andrs Aznar Royo

Pgina 2

Alfresco

Elmodelodemetadatos

1.- Introduccin a la gestin documental de Alfresco


1.1.- Alfresco gestor documental
Alfresco es un gestor documental open source nacido a raz de una escisin de personas desde EMC (empresa propietaria del software de gestin documental Documentum) y la participacin del actual CEO y presidente John Powell que vena de Business Objects (compaa actualmente adquirida por SAP). Alfresco presenta una arquitectura web, basada en una base de datos (acepta tanto open source como Mysql o PostgreSQL como Oracle y otras de carcter comercial), un servidor de aplicaciones Java (tambin en este caso puede ser open source como Tomcat o JBoss o comercial como Websphere o Weblogic) y la propia aplicacin Alfresco que se despliega en el servidor y que tiene formato modular (Explorer, Share, Web Content Manager).

1.2.- Sobre el autor


Andrs Aznar soy yo. Mi formacin es de ingeniera industrial aunque llevo ms de quince aos dedicado a los proyectos IT en diferentes empresas y sectores. Mis inicios en la gestin documental provienen del uso de Autodesk WorkCenter (hoy da un producto obsoleto y no existente) que era un incipiente embrin de la parte de la gestin documental relacionada con el ciclo de vida de producto (PLM o Product Lifecycle Management). Ms tarde he sido implantador de sistemas de gestin documental puros como FileNet o PoseiDoc Gestor documental, sistemas PLM (Teamcenter), sistemas BPM (Business Process Management) como Fujitsu Teamware o Staffware y ms recientemente los denominados ECM (Enterprise Content Management) como puede ser Alfresco (sistema ms orientado a la documentacin) o Liferay (orientado a portales y gestin de contenidos). Cuando un profesional se queda sin trabajo es el momento de recapitular y dar un pequeo vistazo a todo eso que hemos aprendido y, cuyas pruebas en forma de proyectos, desarrollos, implantaciones, se han quedado en las empresas o clientes en los que hemos trabajado. Con motivo de dar un orden a todo ese conocimiento y acercarlo a la comunidad, surge el proyecto de realizar una serie de documentos (llammoslos manuales o pequeos libros de producto) a fin de poner negro sobre blanco sobre todo ese conocimiento almacenado en la materia gris. Este es un primer manual que espero pueda ser de utilidad a la comunidad. Si la situacin de desempleo se alarga, quizs pueda obsequiarles con alguna cosa adicional, aunque sin mala intencin les digo que ojal no sea as.

Andrs Aznar Royo

Pgina 3

Alfresco

Elmodelodemetadatos

2.- Los documentos en Alfresco


2.1.- Un contenedor de documentos y algo ms
Cuando introducimos un documento en Alfresco, ya sea directamente a travs de alguno de sus portales (Explorer o Share) o mediante el acceso por caminos integrados en el entorno de trabajo (WebDav, Sharepoint Protocol, Plug-ins de MS Office) ste quedar almacenado en aquel contenedor donde le asignemos (una carpeta, la librera documental de un portal del Share).

Alfresco Explorer: vista de un documento dentro del directorio de usuario

Pero es obvio que lo que buscamos cuando nos planteamos el uso de un gestor documental no es tan slo replicar la funcionalidad que nos puede dar la estructura de directorios de un sistema operativo, sino que se busca disponer de unas herramientas de indexacin que nos permita luego realizar, entre otras cosas, unas bsquedas selectivas de esos documentos almacenados independientemente de donde se hallen o el formato en que estn generados.

2.2.- Bsquedas por metadatos y por contenido


Los documentos introducidos en Alfresco debern, con posterioridad, ser recuperados por los usuarios. Y para ello la misin del integrador que realiza la implementacin del proyecto de implantacin ser el ofrecer las herramientas ms intuitivas y eficaces para que el usuario sea capaz de buscar y acceder a esos documentos de manera gil.

Andrs Aznar Royo

Pgina 4

Alfresco

Elmodelodemetadatos

La gestin documental clsica y los primeros sistemas construidos para este menester basaban la indexacin de los documentos en los denominados metadatos (o tambin llamadas propiedades). Los metadatos son campos que se aaden a un archivo documental y que nos permitir con posterioridad utilizar sus posibles valores para realizar bsquedas. En Alfresco veremos que nos podemos encontrar con cuatro tipos de organizacin para los metadatos a aadir: las etiquetas, las categoras, los aspectos (que en realidad son conjuntos de metadatos) y los tipos. Con posterioridad a esta visin ms clsica de la indexacin documental han surgido herramientas que permiten aadir la bsqueda por contenidos, es decir, se trata de funciones que permiten penetrar en el interior del documento (un html, un archivo ofimtico o un PDF) y realizar la bsqueda de un contenido concreto (una cadena de caracteres) dentro de dicho documento. En el caso de Alfresco, esta posibilidad est desarrollada a travs de SOLR. SOLR es un motor de bsqueda de cdigo abierto basado en la biblioteca Java del proyecto Lucene, con APIs en XML/HTTP y JSON, resaltado de resultados, bsqueda facetada, cach, y una interfaz para su administracin. Al tratarse de una herramienta bajo licencia Apache Software Foundation, Alfresco slo la tiene disponible si el servidor de aplicaciones sobre el que desplegamos el programa es Apache Tomcat. La misin de este manual es explicar en detalla la construccin del modelo de metadatos, as que la gestin y despliegue del SOLR la dejaremos para otro volumen.

Andrs Aznar Royo

Pgina 5

Alfresco

Elmodelodemetadatos

3.- Metadatos
3.1.- Etiquetas, Categoras, Aspectos y Tipos
Como hemos mencionado anteriormente disponemos de cuatro herramientas para gestionar la indexacin de un documento por sus metadatos. Estas herramientas son las etiquetas, las categoras, los aspectos y los tipos.

3.1.1.- Etiquetas
Una etiqueta es un nombre clave, una palabra, o cualquier cadena alfanumrica que podemos asociar al documento. Las etiquetas no son exclusivas de los documentos, podemos etiquetar una entrada en un blog del Share, una entrada en el wiki etctera. Asimismo no existen unos valores predeterminados sino que el usuario puede aadir esas palabras clave que crea oportunas para identificar el documento al que se est refiriendo.

Alfresco Share: Visin de las propiedades de un documento y sus etiquetas

Una vez generadas las etiquetas podremos utilizarlas para realizar bsquedas. En el caso de Share, la propia interfaz del portal ya incluye la enumeracin de las etiquetas en el men de la parte izquierda de la pantalla. As, marcando la etiqueta para la que queremos encontrar tems, nos aparecern todos aquellos elementos (no slo documentos, sino tambin entradas wiki, blog) que contengan la mencionada etiqueta. Para el caso de Explorer no existe en la interfaz base una metodologa para la bsqueda por etiquetas.

Andrs Aznar Royo

Pgina 6

Alfresco

Elmodelodemetadatos

Interfaz de Alfresco Share y listado de objetos por etiquetas

Para que un documento pueda tener etiquetas dicho documento debe tener activado el aspecto Etiquetable (en ingls Taggable). En caso contrario no aparecer la opcin de poder asignarle estos campos al documento.

3.1.2.- Categoras
Las categoras son otro tipo de metadato existente en Alfresco. Al contrario de lo que pasa con las etiquetas, las categoras s son campos preconfigurados, y al categorizar un documento le asignamos un valor o valores (un documento puede tener varas categoras) predeterminados.

Alfresco Explorer: Gestin de las categoras desde la consola de administracin

Andrs Aznar Royo

Pgina 7

Alfresco

Elmodelodemetadatos

Adems las categoras pueden definirse en un rbol de jerarquas, pudiendo as una categora tener subcategoras. De esta manera tambin la administracin de las mismas se realiza de una forma ms sencilla y permite su acceso con mayor facilidad y rapidez.

Alfresco Share: Propiedad Departamento

Alfreso share: Subpropiedades de la propiedad Departamento

Como observbamos que ocurre en el caso de las etiquetas, las categoras, inicialmente, no estn accesibles para los documentos a no ser que indiquemos especficamente que sea as. En las propiedades de los documentos (dentro del Explorer) existe un apartado para la categorizacin donde se permite activar sta y poder gestionar las categoras a las que haremos pertenecer a ese documento. Desde Share la categorizacin (aunque el trmino utilizado en Share es clasificacin) se debe hacer aadiendo el aspecto Clasificable al documento, en la gestin de aspectos.

Andrs Aznar Royo

Pgina 8

Alfresco

Elmodelodemetadatos

Alfresco Explorer: Gestin de la categorizacin de un documento

Alfresco Share: Gestin de los aspectos y adicin de la posibilidad de uso de las categoras

Las categoras tambin presentan una ventaja importante con respecto a las etiquetas: el buscador avanzado de Explorer dispone, por defecto, de la posibilidad de realizar bsquedas por categora.

Andrs Aznar Royo

Pgina 9

Alfresco

Elmodelodemetadatos

Visin de la bsqueda avanzada en Explorer. En la parte inferior izquierda existe la bsqueda por categoras

3.1.3.- Aspectos
Los aspectos aportan caractersticas a un documento. Por defecto, en Alfresco ya existen una serie de aspectos predefinidos. Dos de ellos ya los vimos con anterioridad: el aspecto de etiquetable y el de clasificable. Adems de estos dos existen algunos ms, como puede ser el de ser un documento versionable, editable en lnea En el apartado anterior veamos una pantalla de Share donde se realizaba la asignacin de aspectos a un documento. Pero adems de los aspecto predefinidos del sistema, cuando implantemos Alfresco una de las tareas principales ser definir el rbol documental, donde generaremos nuevos aspectos definidos por el proyecto que nos ocupe y destinado a determinados tipos de documentos. Estos aspectos definidos por el usuario sern conjuntos de propiedades o metadatos que podremos asignar a un documento o tipo de documentos. En apartados posteriores se explicar la generacin de estos aspectos y del modelo de rbol documental en su globalidad. Veremos entonces que los pasos a seguir para la generacin y uso de un aspecto son: 1. Creacin del aspecto en el fichero xml de modelo de contenido. 2. Adicin del aspecto al fichero de renderizacin de explorer para los diferentes entornos donde se debe acceder (acciones, creacin de un nuevo documento, reglas, bsqueda avanzada). 3. Adicin del aspecto al fichero de renderizacin del share (con igual extensin a todos los accesos).

Andrs Aznar Royo

Pgina 10

Alfresco

Elmodelodemetadatos

Vista del fichero de contenido personalizado y del cdigo de creacin de un aspecto

Las propiedades de los aspectos definidos por el usuario se deben renderizar en la interfaz tanto de Explorer como de Share.

Pantalla de bsquedas avanzadas de Explorer. Las propiedades de los aspectos se programan para ser visualizados en el apartado de Opciones adicionales.

Andrs Aznar Royo

Pgina 11

Alfresco

Elmodelodemetadatos

Pantalla de bsquedas avanzadas de Share con las propiedades de los aspectos personalizados.

3.1.4.- Los tipos


Los tipos de documentos permiten generar una infraestructura jerarquizada para la documentacin que se almacena en Alfresco. De base el sistema presenta un tipo denominado content que ser la base para la construccin de otros tipos, siempre como subtipos del content. Estos subtipos, al igual que las categoras, son jerrquicos y pueden extenderse varios rivales. Cuando asignemos un tipo a un documento recoger todas las caractersticas del mismo as como de los tipos ancestros al que estamos usando. Al igual que ocurre con los aspectos, tendremos tres pasos para generar y utilizar un tipo: 1. Creacin del tipo en el fichero xml de modelo de contenido. 2. Adicin del tipo al fichero de renderizacin de explorer para los diferentes entornos donde se debe acceder (acciones, creacin de un nuevo documento, reglas, bsqueda avanzada).

Andrs Aznar Royo

Pgina 12

Alfresco

Elmodelodemetadatos

3. Adicin del tipo al fichero de renderizacin del share (con igual extensin a todos los accesos).

Vista del fichero de contenido personalizado y del cdigo de creacin de tipos en base al content

En la definicin de los tipos podremos incluir aspectos, tanto predefinidos del sistema como generados dentro del propio modelo personalizado.

Andrs Aznar Royo

Pgina 13

Alfresco

Elmodelodemetadatos

4.- La definicin del modelo


4.1.- Estructura jerrquica
Cuando iniciemos la construccin de nuestro modelo documental deberemos identificar qu tipos de documentos vamos a integrar en nuestro sistema, cuales son variantes de un tipo comn (con metadatos que seguramente sern los mismos) etctera. A partir de ello realizaremos un rbol documental de tipos que marcar nuestra estrategia de implantacin. Una primera distincin entre los documentos, que nos puede generar la introduccin de dos ramas principales en nuestro rbol documental es el origen de los documentos. Por lo general, de aquellos documentos generados dentro de la compaa nos interesarn una serie de caractersticas (qu departamento lo hizo, quien ha sido el autor) mientras que para los documentos externos ser necesario disponer de informacin de la compaa que nos enva el documento (puede ser una factura, un albarn) tal como nombre de la empresa, su NIF etctera. Por tanto es muy posible que nuestro rbol documental se inicie generando dos subtipos del modelo base content.

<cm:content>

<custom:DocExterno>

<custom:DocInterno>

rbol documental: tipos para documentos internos y externos

Los tipos interno y externo tendrn una serie de metadatos comunes para todos los documentos que clasifiquemos como tales. Estos metadatos los podemos aadir de dos posibles maneras: 1. Agregando los metadatos como propiedades dentro de la definicin del propio tipo. 2. Generando aspectos que agrupen estas propiedades y asignando dicho aspecto a la definicin del tipo. Ambas son formas vlidas aunque (y aqu entramos en la visin personal de cada consultor) parece ms elegante la definicin por aspectos, agregando luego ese aspecto con la etiqueta <mandatory-aspect> al tipo.

Andrs Aznar Royo

Pgina 14

Alfresco

Elmodelodemetadatos

<cm:content>

<custom:AspectDocEx>

<custom:TypeDocExt>

<custom:TypeDocInt>

<custom:AspectDocIn>

Definicin de la base del modelo documental con tipos y aspectos

Una vez definido el primer nivel del modelo de rbol documental deberemos seguir definiendo la subsiguiente escala jerrquica. Dentro de los documentos externos es posible que la siguiente definicin ya sea el tipo de documento (factura, albarn, hoja de pedido) y no queramos tener una clasificacin con ms niveles. Seguramente en el caso de los documentos internos s habr un despliegue mayor, pues es posible que cada departamento emita unos tipos de documentos y los quieran agrupar bajo una categora departamental.
<cm:content>

<custom:AspectDocEx>

<custom:TypeDocExt>

<custom:TypeDocInt>

<custom:AspectDocIn>

<custom:AspectFactur>

<custom:TypeFactur>

<custom:TypeMktg>

<custom:AspectMktg>

<custom:AspectAlbara>

<custom:TypeAlbara>

<custom:TypeVentas>

<custom:AspectVenta>

<custom:AspectPedid>

<custom:TypePedido>

<custom:TypeCalidad>

<custom:AspectCalida>

<custom:AspectPG>

<custom:TypePG>

Ejemplo ilustrativo de un rbol de documentacin

4.2.- Definicin a partir de un ejemplo real


Se puede plantear un ejemplo ilustrativo que nos ayude a entender cmo debemos plantear la construccin del rbol documental. Nuestro ejemplo se basar en las siguientes premisas: 1. Se requiere la implementacin de Alfresco para gestionar los documentos del departamento de calidad de un laboratorio. 2. Existen cinco documentos base que se generan desde ese departamento: Procedimientos Generales, Documentos PRAE, Documentos PNT, Documentos RCAE de qumica y Documentos RCAE de microbiologa.

Andrs Aznar Royo

Pgina 15

Alfresco

Elmodelodemetadatos

3. Adems se quieren almacenar copias de las facturas recibidas por el departamento y publicaciones que se reciben y se quieren guardar. A partir de las premisas anteriores plantearemos un modelo documental de rbol. Sera suficiente el generar los tipos que nos pide el cliente, pero siempre debemos tener en cuenta la extensin del modelo a otras partes de la compaa y sera un error plantear una solucin focalizada a un solo rea y limitada en su capacidad de extensin posterior. A partir del modelo base content generaremos tres subtipos (subtypes): 1. Tipo para documentos externos. 2. Tipo para publicaciones. 3. Tipo para documentos internos. Las facturas las incluiremos como un subtipo cuyo tipo padre ser el de documentos externos. Generaremos un subtipo documentos de calidad cuyo padre ser el tipo de documentos internos y que, a su vez, tendr cinco subtipos que sern los que el cliente quiere administrar como documentos de calidad. Finalmente, el tipo de publicaciones lo mantendremos como un tipo especial sin subtipos.
<cm:content>

<custom:AspectDocEx>

<custom:TypeDocExt>

<custom:TypeDocInt>

<custom:AspectDocIn>

<custom:TypePubli>

<custom:AspectFactur>

<custom:TypeFactur>

<custom:TypeCalidad>

<custom:AspectCalida>

<custom:AspectPubli>

<custom:AspectPG>

<custom:TypePG>

<custom:AspectPRAE>

<custom:TypePRAE>

<custom:AspectPNT>

<custom:TypePNT>

<custom:AspectRCQ>

<custom:TypeRCQ>

<custom:AspectRCM>

<custom:TypeRCM>

Modelo de contenido propuesto para el ejemplo

Andrs Aznar Royo

Pgina 16

Alfresco

Elmodelodemetadatos

Con este modelo se garantiza solucionar la problemtica planteada y, a la vez, se permite seguir en el futuro desarrollando el modelo creando nuevos tipos dependientes del documento interno para el resto de departamentos de la compaa.

Andrs Aznar Royo

Pgina 17

Alfresco

Elmodelodemetadatos

5.- Implementacin del modelo


5.1.- Fichero de declaracin del modelo
El inicio de la construccin del modelo se realiza mediante la generacin de un fichero con el modelo y otro declarando el mismo. Estos ficheros se hallan en el directorio: {directorio servidor de aplicaciones}\shared\classes\alfresco\extension Si realizamos la instalacin del bundle de Alfresco en un directorio que podra ser D:\alfresco en este caso deberemos situar nuestros ficheros en: D:\Alfresco\tomcat\shared\classes\alfresco\extension El fichero de declaracin de modelo ser un fichero XML que debe denominarse segn el patrn xxx-model-context.xml. El modelo que generemos deber tener un nombre y le asignaremos una abreviatura que utilizaremos como prefijo para definir despus aspectos, tipos o propiedades. Para la construccin del modelo anterior utilizaremos: Como nombre del modelo de contenidos usaremos company. Como prefijo del modelo usaremos co

De esta manera generaremos un fichero co-model-context.xml para declarar el modelo.

Fichero co-model-context.xml

En este fichero generaremos dos dependencias: Indicaremos en la primera parte la dependencia con el fichero co-model.xml que es el fichero donde se definir el modelo de contenido (con los tipos, los aspectos y las propiedades o metadatos). La segunda har referencia a un fichero con las etiquetas i18n para configurar los nombres a utilizar en la interfaz cuando se desee implementar la

Andrs Aznar Royo

Pgina 18

Alfresco

Elmodelodemetadatos

renderizacin de las mismas. Este fichero ser el company.properties y lo tendremos en otro directorio.

5.2.- Fichero de definicin del modelo


El fichero de definicin del modelo (para nosotros el co-model.xml) es el que almacenar nuestra definicin que hemos diseado anteriormente. Este fichero se almacenar en el mismo directorio que el co-context-model.xml que anteriormente hemos creado.

5.2.1.- La cabecera del fichero


La cabecera del fichero nos sirve para definir el nombre del modelo y algunas propiedades (no obligatorias) como la descripcin y el autor del modelo. Tambin se importar el diccionario (veremos que usaremos d para importar las clases de propiedades) y el content model original (cm) que usaremos como base del rbol del modelo. Finalmente definiremos entre las etiquetas <namespace> el prefijo y nombre del modelo.

Cabecera del fichero co-model.xml

Una vez creada la cabecera el siguiente paso ser la generacin de las constraints (valores para propiedades que se definan como campos de seleccin, por ejemplo, los de un deplegable), los types (tipos) y los aspects (aspectos).

Andrs Aznar Royo

Pgina 19

Alfresco

Elmodelodemetadatos

5.2.2.- Las constraints


Bajo una primera etiqueta <constraints> incluiremos las diferentes que necesitemos para nuestro modelo. Si tomamos por ejemplo los departamentos de la empresa (recordemos que, sin ir ms lejos, hablbamos cuando nos referamos al tipo de documento publicacin de que una propiedad podra ser el departamento que haba adquirido el libro o publicacin), definiremos una constraint con el nombre co:ListaDepartamentos que ser de tipo lista. La definicin de las constraints se halla guardada dentro de Alfresco en el paquete org.alfresco.repo.dictionary.constraint y pueden ser de los siguientes tipos: REGEX (org.alfresco.repo.dictionary.constraint.RegexConstraint): se utiliza para que la propiedad est condicionada al resultado de una expresin. LENGTH (org.alfresco.repo.dictionary.constraint.StringLengthConstraint): nos permite gestionar una longitud maxima y una minima para un campo de texto. MINMAX (org.alfresco.repo.dictionary.constraint.NumericRangeConstraint): se utiliza para marcar una propiedad numrica con unos valores limtrofes superior e inferior. LIST (org.alfresco.repo.dictionary.constraint.ListOfValuesConstraint): se utiliza para restringir el valor de una propiedad a una lista predeterminada de posibles opciones.

Nuestra constraint para los departamentos de nuestra compaa quedara de la siguiente manera:

Definicin de la constraint de lista de departamentos en co-model.xml

Andrs Aznar Royo

Pgina 20

Alfresco

Elmodelodemetadatos

Un ejemplo de los diferentes tipos de constraints (extrado de la wiki de Alfresco) se muestra en el siguiente cdigo:

Ejemplo de definicin de constraints

5.2.3.- Los tipos


En base al context model original generaremos los subtipos que necesitamos para construir nuestro rbol documental. Dentro de un apartado marcado por la etiqueta <types> se definirn los tipos. Los primeros se definen con la referencia del context original. Despus generaremos los hijos de estos hasta completar la estructura.

Andrs Aznar Royo

Pgina 21

Alfresco

Elmodelodemetadatos

Definicin del tipo de documento interno

Como se puede observar en el cdigo, generamos un tipo denominado co:TipoCompany (recordemos que el prefijo co es el que definimos al inicio), que titulamos como Documento interno. El origen de este tipo (parent) es el content inicial (todo el modelo de contenido por defecto se define con el prefijo cm, de ah cm:content declarado en el parent. A este tipo le asignamos una serie de aspectos que llevarn intrnsecos todos los documentos que definamos como documentos internos. Algunos de estos aspectos son de base (prefijo cm) como el que sea auditable, titulable y etiquetable. Adicionalmente le aadimos un aspecto de nuestro propio modelo (prefijo co) que luego definiremos y que llevar las propiedades o metadatos comunes para todos los documentos de este tipo. En nuestro caso el tipo no contiene por si mismo propiedades, ya que hemos decidido que dichas propiedades se integren como un aspecto (co:AspectoCompanyData). No obstante podramos definir las propiedades directamente en el tipo. Un ejemplo podra ser el siguiente:

Ejemplo de tipo con propiedades insertadas

Una vez tengamos los tipos que llamaramos de primer nivel, es decir, los tipos que hemos decidido que su parent type sea el content original, seguiremos definiendo los siguientes niveles de nuestro rbol. Para ello utilizaremos el mismo modelo sustituyendo el parent por el que pertoque.

Andrs Aznar Royo

Pgina 22

Alfresco

Elmodelodemetadatos

Definicin del tipo factura, hijo del tipo documento externo (TipoNoCompany)

El cdigo precedente nos muestra la definicin del tipo Factura externa. Se puede observar que en este caso el tipo base o parent no es el content original, sino un tipo propio de nuestro modelo, el de documentos externos. Como en el caso previo de la definicin que veamos para los documentos internos, asociamos un aspecto (bajo el paraguas de obligatorio <mandatory-aspects>) de nuestro propio modelo (prefijo co) co:AspectoFacturaExt que ser el que aporte al tipo las propiedades requeridas.

5.2.4.- Los aspectos


Un aspecto personalizado no ser sino un conjunto de propiedades o metadatos agrupados que pueden asignarse directamente a un documento o, mediante la definicin del modelo de contenidos documentales, a uno o varios tipos de documentos. En funcin de nuestra definicin del modelo, deberemos generar un aspecto para cada tipo definido. Lo veamos en el apartado anterior: para el tipo co:TipoFacturaExterna le hemos asignado un aspecto de carcter obligatorio (mandatory-aspect) denominado co:AspectoFacturaExt. Este aspecto no tendr sino aquellas propiedades que queremos definir para este tipo. Recordemos que como el tipo co:TipoFacturaExterna es hijo del tipo co:TipoNoCompany adems tambin tendr aquellas propiedades y aspectos heredados de su tipo padre.

Definicin del aspecto co:AspectoFacturaExt en el fichero de definicin del modelo

Andrs Aznar Royo

Pgina 23

Alfresco

Elmodelodemetadatos

Como podemos observar en el ejemplo anterior, el aspecto se compone de un nombre, un ttulo y un conjunto de propiedades. Estas propiedades o metadatos pueden ser de diferentes tipos (fecha, texto, dgitos enteros o en coma flotante). Se pueden definir que dichas propiedades sean obligatorias, etctera. No olvidemos, asimismo, que adicionalmente a los aspectos que podamos definir para nuestro modelo de contenido documental, existen algunos como el de etiquetable, versionable, categorizable etctera que ya estn definidos en el model content original que viene por defecto. Estos aspectos los podremos asociar directamente a un documento o tipo sin necesidad de definirlos especficamente.

5.2.5.- Las propiedades o metadatos


Las propiedades o metadatos son la unidad bsica de la definicin del modelo. Nuestra meta cuando iniciamos la construccin del mismo es poder acabar teniendo unos documentos que pertenecen a un tipo y que en base a ese tipo estn definidos por unas propiedades que nos permitirn indexarlos, categorizarlos y, posteriormente, realizar buscas selectivas y localizarlos con mayor facilidad. Estas propiedades pueden ser de diferente naturaleza: TEXT (d:text) que introduce un campo de tipo cadena de texto (un nombre etc..). CONTENT (d:content) que permite la introduccin de un documento binario. INT (d:int) que permite asociar un dgito entero. LONG (d:long) se utiliza para aadir un entero grande. FLOAT (d:float) que se usa para introducir un nmero decimal (coma flotante). DATE (d:date) que se utiliza para aadir la fecha (ao, mes, da). DATETIME (d:datetime) que permite aadir fecha y hora (denominado en ingls timestamp). BOOLEAN (d:boolean) que introduce un valor binario TRUE o FALSE CATEGORY (d:category) que hace referencia a una categora con una clasificacin. PATH (d:path) que permite la introduccin de una URL.

Es importante recordar que los valores de estas variables pueden ser restringidos mediante el uso de las denominadas constraints que vimos al inicio de este captulo. Tambin podemos definir que unas propiedades puedan convertirse en propiedades de tipo ndice, de manera que optimicen a posteriori el trabajo de realizar bsquedas por estos mismos metadatos.

Andrs Aznar Royo

Pgina 24

Alfresco

Elmodelodemetadatos

Ejemplo de definicin de las propiedades en un aspecto

En una propiedad, podemos observar que se define su nombre, un ttulo, su tipo en base a los vistos con anterioridad y si la misma es obligatorio que tenga un valor. Mediante el index enabled podemos asignar a dicha propiedad el carcter de ser un ndice (se definir como tal cuando almacenemos el metadato en la base de datos del modelo).

Ejemplo de propiedad definida como ndice

Tambin, como veamos al principio de este captulo, podremos restringir mediante las constraints el tipo de valor que asignamos a una propiedad.

Andrs Aznar Royo

Pgina 25

Alfresco

Elmodelodemetadatos

Ejemplo de propiedad restringida con una constraint

En el caso del ejemplo anterior, nuestra propiedad co:coUbi tomar un valor marcado por la constraint co:ListaUbicaciones que habremos definido anteriormente.

Constraint definida y utilizada en la propiedad anterior

5.3.- El fichero de publicacin en Alfresco Explorer


Una vez hayamos definido nuestro modelo con su jerarqua de tipos, sus aspectos, sus propiedades, constraints etctera debemos conseguir que dicho modelo se refleje dentro de la interfaz de Alfresco, en trminos propios de la aplicacin, hemos de transferirlo a los ficheros de renderizacin. Dado que Alfresco presenta dos interfaces diferentes, la clsica del Explorer y la del Share, ser necesario aplicar los cambios por duplicado en ficheros diferentes. El fichero de renderizacin para Alfresco Explorer es el web-client-config-custom.xml y se halla ubicado en el mismo directorio donde tenamos los ficheros que hemos tratado anteriormente: {directorio servidor de aplicaciones}\shared\classes\alfresco\extension El fichero web-client.config-custom.xml se inicia con la etiqueta <alfresco-config> y dentro tendremos diferentes config conditions para definir la visualizacin de nuestros tipos en las diferentes partes del Explorer.

Andrs Aznar Royo

Pgina 26

Alfresco

Elmodelodemetadatos

Vista inicial del fichero de renderizacin en Explorer

Las diferentes partes del Explorer donde hemos de aadir nuestros tipos personalizados son: El asistente para la asignacin de tipos de contenido (wizard) La interfaz de la bsqueda avanzada El motor de ejecucin de acciones (action wizard) La pantalla de visualizacin de propiedades de los propios documentos

Para visualizar los tipos en nuestro asistente de asignacin de tipos de contenidos deberemos generar una condicin de configuracin para el Content Wizards y asignar los nombres de nuestros tipos personalizados.

Seccin para dar visibilidad a nuestros tipos personalizados en el wizard de tipos de documentos

Lo que permite esta configuracin es que en la carga de un nuevo documento podamos incluir nuestros tipos personalizados durante el asistente de definicin del mismo.

Andrs Aznar Royo

Pgina 27

Alfresco

Elmodelodemetadatos

Vista del asistente de insercin de un nuevo documento con nuestros tipos personalizados.

Para generar la vista de la bsqueda avanzada deberemos definir los tipos que participarn y deberemos, asimismo, indicar cules sern los campos de estos tipos que queremos utilizar (propiedades, que definiremos indicando el aspecto al que pertenecen). Como veamos cuando hablbamos anteriormente de propiedades, es recomendable que los campos o metadatos que utilicemos en la bsqueda avanzada hayan sido definidos como ndices al crear esa propiedad en el tipo o aspecto pertinente.

Definicin de tipos y propiedades a mostrar en la bsqueda avanzada

Esta configuracin se reflejar en nuestra interface de Alfresco mostrando tipos y propiedades en la bsqueda avanzada.

Andrs Aznar Royo

Pgina 28

Alfresco

Elmodelodemetadatos

Muestra de la bsqueda avanzada con los tipos predefinidos

Las propiedades predefinidas se mostrarn bajo el apartado de opciones adicionales.

Vista de las opciones adicionales con las propiedades personalizadas

Andrs Aznar Royo

Pgina 29

Alfresco

Elmodelodemetadatos

El siguiente punto donde hemos de aadir nuestro modelo es en los asistentes (wizards) de ejecucin de acciones. Este asistente se utiliza tanto cuando usamos Ejecutar accin como cuando creamos reglas de contenido sobre un contenedor o carpeta de Alfresco. Dado que tenemos la posibilidad de generar una accin para asignar un tipo pero tambin para asignar un aspecto, deberemos incluir ambos trminos en nuestro fichero de renderizado a fin de que podamos usar ambos. Esto es lo que haremos con el cdigo siguiente.

Seccin del fichero de renderizado para la definicin de los asistentes de acciones y reglas

Recordemos que cuando hemos generado nuestro modelo hemos usados los aspectos como conjuntos de datos obligatorios para determinados tipos. Sera lgico pensar que, como nos guiaremos por un modelo de tipos de documentos, no sera necesario asignar aspectos de forma individual ya que stos sern asignados en funcin del tipo definido. Si lo hiciramos de dicha manera, eliminando los aspectos de esta seccin, nos aseguraramos que el usuario no puede asignar individualmente aspectos a un determinado documento. No obstante, como ejemplo ilustrativo, quizs es mejor mostrar cmo podemos aadir ambas clases de elementos a nuestra interface.

Andrs Aznar Royo

Pgina 30

Alfresco

Elmodelodemetadatos

Ejemplo de la secuencia de aplicacin de regla de contenido a una carpeta, con los tipos personalizados

Finalmente debemos aplicar nuestros tipos y aspectos a los formularios de visualizacin y edicin de las propiedades cuando entramos en las pantallas de visin de los documentos. Para ello generaremos nuestra property-sheet con los metadatos que vayamos a mostrar en la pantalla.

Definicin de la visualizacin del aspecto co:AspectoFichaBibliografica

Mediante el cdigo anterior conseguiremos que este aspecto (asociado al tipo de publicacin externa) nos permita visualizar y editar las propiedades de aquellos documentos que definamos con este tipo.

Andrs Aznar Royo

Pgina 31

Alfresco

Elmodelodemetadatos

Vista de la pantalla de propiedades de un documento con los metadatos personalizados del aspecto ficha bibliogrfica

Vista de la pantalla de edicin y modificacin de propiedades de un documento

Andrs Aznar Royo

Pgina 32

Alfresco

Elmodelodemetadatos

5.4.- El fichero de propiedades


En el fichero de declaracin del modelo en Explorer veamos que se aludan a dos definiciones: la definicin del modelo de contenido (ya comentada) y el fichero de etiquetas i18n donde traduciremos los nombres de los contenidos y las variables a la cadena de texto pertinente. Este fichero lo llamaremos company.properties y lo generaremos en el directorio: {directorio servidor de aplicaciones}\shared\classes\alfresco\messages Las secciones de este fichero sern: Seccin de etiquetas para las propiedades de los aspectos. Seccin de etiquetas para los aspectos. Seccin de etiquetas para los tipos.

En la seccin de propiedades definiremos las etiquetas para las mismas que veremos cuando se nos presenten en pantalla. La sintaxis ser: prefijo_nombredelmodelo.property.prefijo_nombredelapropiedad.tittle=etiqueta En nuestro caso, por ejemplo: co_company.property.co_coAutor.title=Autor del documento Recordemos que nuestro modelo se llama company y tiene el prefijo co (co:company).

Ejemplo de las secciones de propiedades para documentos internos y externos en el fichero company.properties

Una vez definidas las etiquetas para las propiedades realizaremos el proceso para tipos y aspectos. En este caso tendremos dos bloques para cada uno de estos elementos. Los bloques de los aspectos tendrn una sintaxis del tipo:

Andrs Aznar Royo

Pgina 33

Alfresco

Elmodelodemetadatos

Bloque 1: prefijo_nombredelmodelo.aspect.prefijo_nombredelaspecto= etiqueta Bloque 2: aspect.prefijo_nombredelaspecto= etiqueta Para el caso de los tipos ser similar: Bloque 1: prefijo_nombredelmodelo.type.prefijo_nombredeltipo= etiqueta Bloque 1: type.prefijo_nombredeltipo= etiqueta

Definicin de aspectos y tipos en el fichero de propiedades i18n

5.5.- El fichero de declaracin en Alfresco Share


El hecho de realizar la publicacin de las propiedades en la interface de Explorer no implica que esa misma visualizacin se extienda a Share. Share tiene sus propios ficheros de renderizado y tipos, aspectos, propiedades, etctera tendrn que darse de

Andrs Aznar Royo

Pgina 34

Alfresco

Elmodelodemetadatos

alta en estos ficheros para poder mostrarse en cuando utilicemos esa parte de Alfresco. El primer fichero es el que declarar nuestras propiedades para ser renderizadas referenciando a las etiquetas del fichero company.properties que hemos visto en el apartado anterior. Este fichero se llama custom-slingshot-application-context.xml y se hallar ubicado en el directorio: {directorio servidor de aplicaciones}\shared\classes\alfresco\web-extension

Fichero custom-slingshot-application-context.xml

5.6.- El fichero de publicacin en Alfresco Share


El fichero que gestiona la interface de Share es el share-config-custom.xml. Este fichero se halla en la misma ubicacin que el que hemos tratado con anterioridad: {directorio servidor de aplicaciones}\shared\classes\alfresco\web-extension En este fichero gestionaremos: La accesibilidad a los aspectos personalizados cuando se utiliza la opcin de aadir aspecto a un documento en sus propiedades. La jerarqua de asignacin de tipos. La insercin en la bsqueda avanzada del Share Todos los formularios vinculados a tipos, aspectos y propiedades de un documento, y que se gestionan en conjunto para cada tipo.

Fichero de configuracin del share: cabecera inicial

Andrs Aznar Royo

Pgina 35

Alfresco

Elmodelodemetadatos

La seccin de document library del fichero nos permitir insertar todos los aspectos que deseemos en la opcin de aadir aspectos del share.

Insercin de los aspectos personalizados a la gestin de aspectos del share

El resultado se mostrar en el cuadro de dilogo de adicin de aspectos para los documentos.

Cuadro de dilogo de insercin de aspectos para los documentos en Share

Otra seccin dentro del mismo fichero nos permitir gestionar como jerarquizamos la asignacin de tipos a los documentos. Recordemos que nuestro modelo de tipos tiene una jerarqua. Se parte de la base del modelo de contenido estndar (content) y se

Andrs Aznar Royo

Pgina 36

Alfresco

Elmodelodemetadatos

generan tipos (documento interno, documento externo) que a su vez tienen subtipos etctera. En definitiva, tenemos una estructura de rbol. Tenemos que conocer, asimismo, que cuando a un documento le asignamos que es de un determinado tipo esta asignacin es irreversible. No podremos devolverlo al estado anterior. S que podremos, por otra parte, volver a asignarle un tipo de los niveles siguientes al tipo anterior (dentro del rbol) pero nunca devolverlo a un tipo previo padre, al content model original o a un subtipo de otra naturaleza. La permisividad de saltar des de un tipo a un nivel o ms niveles inferiores, dentro de share, se puede definir en este fichero.

Vista de la gestin de las jerarquas en la asignacin de tipo de contenido

En el ejemplo anterior vemos los tipos y los subtipos que nos permitir asignar. Un documento de tipo content lo podremos convertir en sus hijos (TipoCompany, TipoNoCompany o TipoPublicacion), tambin en los hijos de sus hijos (TipoFacturaExterna, que es hijo de TipoNoCompany en nuestro modelo, TipoQualProcDoc que es hijo de TipoCompany) e incluso en los hijos de estos ltimos (TipoQualPR, que es hijo de TipoQualProcDoc, que lo es de TipoCompany). A su vez, el TipoCompany vemos que tiene como subtypes (es decir, como documentos que podremos asignar partiendo del tipo inicial TipoCompany) tanto su hijo TipoQualPorcDoc como los derivados de ste (TipoQualPR, TipoQualPRAE). Vemos tambin que el TipoQualProc se puede derivar en sus cinco hijos y que el TipoNoCompany lo podemos convertir en TipoFacturaExterna (nico hijo definido inicialmente en nuestro modelo de ejemplo). Recordemos que, una vez asignado un tipo slo podremos seguir descendiendo en el rbol a un tipo hijo o inferior pero nunca volver hacia arriba. La definicin de este fichero es la forma en que se nos permite realizar esta asignacin por la interface del Share. Si, por ejemplo, no quisiramos que se pudieran saltar dos niveles de asignacin de golpe, el fichero debera slo tener como subtypes para cada type aquellos tipos que en el modelo original definimos como hijos. De esta manera no podramos saltar varios niveles aunque hacindolo nivel a nivel podramos alcanzar el mismo resultado.

Andrs Aznar Royo

Pgina 37

Alfresco

Elmodelodemetadatos

Vista de la asignacin de un documento a un tipo. Partiendo del content y segn el ejemplo definido en el fichero anterior.

La definicin de los campos a utilizar en la bsqueda avanzada se gestionan a partir del cdigo que define que formularios vamos a utilizar y de la asignacin de los metadatos al formulario concreto. As la adicin al Advanced Search de la instruccin:
<form description="Documentos de calidad" label="Documentos de calidad">co:TipoQualProcDoc</form>

nos va a indicar que tendremos propiedades del tipo mencionado en nuestra bsqueda avanzada. Posteriormente definiremos el formulario de bsqueda para este tipo <form id=search>

Generacin de las propiedades a utilizar en la bsqueda avanzada de Share

Andrs Aznar Royo

Pgina 38

Alfresco

Elmodelodemetadatos

El resultado es que, por una parte, en el men de bsquedas se nos aade Documentos de calidad como un nuevo formulario de bsqueda. Accediendo al mismo nos aparecer un formulario con los metadatos o propiedades que hemos definido para ese tipo de formulario.

Formulario de bsqueda avanzada para el tipo de documentos de calidad (personalizado)

Finalmente nos queda ahora definir los formularios para la visualizacin y edicin de propiedades del tipo. Para ello definiremos los campos que queremos visualizar y aquellos que no deseamos que se muestren y despus definiremos los formularios de propiedades y el formulario de edicin on-line. Tomando el ejemplo del tipo que hemos creado para las publicaciones externas generaremos una condicin de configuracin con la orden
<config condition="co:TipoPublicacion" evaluator="node-type">

y dentro de la misma definiremos los formularios.

Andrs Aznar Royo

Pgina 39

Alfresco

Elmodelodemetadatos

Detalle de la seleccin de propiedades a visualizar (show) o esconder (hide) en los formularios

Una vez definidos los campos a mostrar crearemos nuestro formulario personalizado para la visin de las propiedades en el Share. Este formulario se visualiza en la parte derecha de la pantalla cuando accedemos en la biblioteca de documentos de un site de share a un documento. En nuestro caso indicamos que deseamos ver en un apartado aparte, definido por un separador (seccin <appearance> que hicimos en la definicin anterior) las propiedades especficas de este tipo de documento. Tambin podemos indicar que queremos visualizar el formulario segn un determinado formulario que podemos crear personalizado. Esto se hace en la ltima lnea con la sintaxis <edit-form template>

Andrs Aznar Royo

Pgina 40

Alfresco

Elmodelodemetadatos

Detalle de la definicin del formulario de metadatos o propiedades en Share

El resultado en share ser la muestra de esta parte de las propiedades en la parte inferior del formulario de propiedades estndar.

Formulario de propiedades en Share con los metadatos del tipo de Publicacion Externa

Andrs Aznar Royo

Pgina 41

Alfresco

Elmodelodemetadatos

5.7.- Los ficheros del men de carga de Share


Cuando en share queremos cargar un nuevo fichero se utiliza para ello un pequeo script realizado en flash que es el que nos genera el asistente de insercin del nuevo documento en la biblioteca del site.

Vista del asistente de adicin de ficheros. Est basado en flash.

La configuracin de este asistente a fin de que puedan introducirse los tipos de documentos definidos en nuestro modelo puede gestionarse mediante dos ficheros: flash-upload.get.js y flash-upload.get.properties. Estos ficheros se almacenan en el directorio: {directorio servidor de aplicaciones}\shared\classes\alfresco\web-extension\sitewebscripts\org\alfresco\components\upload El fichero flash-upload.get.properties es un fichero de texto que almacena las etiquetas (el equivalente al i18n que veamos con anterioridad para los formularios internos del share). En l generaremos las etiquetas o textos que queremos mostrar en pantalla en el asistente de carga de documentos.

Andrs Aznar Royo

Pgina 42

Alfresco

Elmodelodemetadatos

Vista del fichero flash-upload.get.properties

El fichero flash-upload.get.js incorpora una funcin (getcontenttypes) para incorporar al asistente de carga de los ficheros el tipo de contenido. Todos los tipos que insertemos en el fichero sern luego elegibles para crear directamente una nueva carga documental en ese tipo.

Andrs Aznar Royo

Pgina 43

Alfresco

Elmodelodemetadatos

Vista del fichero flash-upload.get.js

El resultado de la adicin de estos dos ficheros de configuracin se muestra en la figura siguiente donde observamos que nos aparece un nuevo men desplegable en la pantalla del asistente que nos permite escoger el tipo de fichero y asignarlo al documento durante el proceso de carga, sin necesidad de tener que realizar explcitamente esa tarea a posteriori.

Andrs Aznar Royo

Pgina 44

Alfresco

Elmodelodemetadatos

Asistente de carga de nuevos ficheros con men para asignar el tipo de documento

Andrs Aznar Royo

Pgina 45

Alfresco

Elmodelodemetadatos

6.- Conclusiones
Llegados a este punto podemos concluir con nuestra definicin del modelo de gestin documental y de metadatos en Alfresco. Recapitulando hemos podido descubrir que: Alfresco nos permite modelar y gestionar nuestro propio rbol jerrquico de documentos. Mediante los tipos de documento y los aspectos podemos gestionar las propiedades o metadatos que queremos aadir a cualquier documento o tipo de documentos. En Alfresco la definicin del modelo requiere, asimismo, trasladar dicho modelo a los ficheros de generacin de los formularios (para buscar, editar, visualizar las propiedades). La visualizacin de las propiedades en Alfresco es independiente entre Share y Explorer y para verlos en ambas hay que gestionarlo en ficheros independientes.

Andrs Aznar Royo

Pgina 46

S-ar putea să vă placă și