Creación de metadatos

cancel
Showing results for 
Search instead for 
Did you mean: 
txakin
Member II

Creación de metadatos

Hola a todos,

Soy un poco nuevo, y estoy empezando con esto de Alfresco.

En mi proyecto están empezando a aparecer varias dudas.

Primero paso a contar un poco sobre mi proyecto :

Tengo que gestionar expedientes (hay varios tipos) y dentro de estos habrá x documentos.
Entendamos como expedientes espacios o subespacios y dentro de estos estarán los documentos, es decir, los contenidos.
Dependiendo qué tipo de expediente sea, se generarán unos metadatos u otros.

Primera duda :
Por lo que he leido y me han comentado por el foro, debería de crearme diferentes aspectos para poder soportar estos nuevos metadatos, y si no me equivoco esto digamos que sería un poco "FIJO", ya que he de modificar custom-model.xml y el web-cliente….xml para que aparezcan en la interfaz de usuario. ¿Existe alguna manera de que sea algo dinámico? Ya que el cliente en casos especiales querrá crear nuevos metadatos, y no es plan de que se pongan a modificar los xml.

Segunda duda :
Si tengo expedientes relacionados entre si, como puedo indicar ese tipo de relación? Hay alguna manera de relacionar un subespacio con otro u otros?

Tercera duda :
  * Se pueden generar metadatos complejos????, es decir, que estén formados por varios campos. Por ejemplo : título, número, fecha de la disposición
  * Como debiera hacer esto? Se supone que a la hora de buscar, sólo debería de buscarme por este campo como único, y no por los 3 de los cuales se genera.
  * Puedo generar metadatos que tengan varios valores? Por ejemplo Comunidad Autónoma : Madrid y Cataluña (se supone que sería una lista en la que se pueda hacer multi-selección).


Cuarta duda :
Podria crearme mi búsqueda propia? El caso sería que dependiendo del tipo de expediente o documento que se quiera buscar, me apareciera los campos de búsqueda referentes a los metadatos específicos para dicho tipo de expediente.
Por ejemplo : Imaginemos que tengo Exp.1 y Exp.2
El EXP1 tiene como metadatos : Año, Comunidad Autonoma y Codigo Postal
El EXP2 tiene como metadatos : Area, Cargo y Empleado
Me gustaría tener una pantalla que dependiendo de si seleccionan EXP1 o EXP2 (sólo 1 de ellos), luego aparecieran los campos referentes a uno u otro.


Espero haberme explicado bien, de todos modos…si no se me entiende…por favor comentarmelo e intentaré ser más explícito.

Ya veis que ando un poco perdido con todo esto…y no sé muy bien por donde arrancar en algunos casos.

Un saludo y muchas gracias.
2 Replies
ajv
Member II

Re: Creación de metadatos

Hola txakin!

Lo cierto es que te cunden los posts, vamos, que los llenas de preguntas en un plis!!  :lol:
Bien, te voy a ir respondiendo a las que sé directamente:

Primera duda:
- Es cierto lo que has leido  Smiley Very Happy , en primer lugar se debe tener claro qué tipos de contenidos van a ser necesarios en tu organización. Esto requiere un proceso de analisis para ver qué necesidades de gestión de contenidos hay, qué metadatos interesan mantener, etc…Alfresco por su parte, deja su repositorio "listo" para que pueda extenderse y, como bien dices, se realiza a partir de modelos personalizados (XML) y el web-client para configurar la interfaz de usuario.
Que yo sepa, no existe otra forma de extender el modelo de contenido que viene por defecto, por lo que cada modificación, redefinición o extensión de los tipos de contenido requerira modificar los xml's (detener el servdor y re-arrancar).
A partir de la versión 2.9, sin embargo, se ha incorporado la característica de los modelos dinámicos (http://wiki.alfresco.com/wiki/Dynamic_Models)…lo cual permite introducir cambios dinámicamente en los modelos. Puesto que sigo con la versión 2.1 que considero más estable, no he tenido el placer de probar… :roll:

Segunda duda:
Para establecer relaciones entre nodos, en Alfresco existe lo que se denominan asociaciones.
Existen dos tipos de asociaciones en alfresco: Asociación "por pares" (association) o Asociación padre-hijo (child association).
Las asociaciones por pares definen una relación entre dos objetos pero ninguno de ellos está subordinado al otro.
Las asociaciones padre-hijo, por el contrario, se usan cuando el hijo no debería existir cuando el padre deja de existir. Es similar a un borrado en cascada en una base de datos relacional: Si se borra al padre, se borran los hijos también.
Por ejemplo, en el modelo de Alfresco viene implementada por defecto una asociación padre-hijo en el tipo cm:folder (que representan los espacios). Esta asociación (llamada cm:contains) establece una relación padre-hijo entre el espacio y todos los objetos tipo sys:base (o derivados de éste). Lógicamente es una asociación opcional (mandatory = false) porque podemos tener un espacio sin contenido dentro.
Aquí te pongo el ejemplo:

<type name="cm:folder">
         <title>Folder</title>
         <parent>cm:cmobject</parent>
         <archive>true</archive>
         <associations>
            <child-association name="cm:contains">
               <source>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </source>
               <target>
                  <class>sys:base</class>
                  <mandatory>false</mandatory>
                  <many>true</many>
               </target>
               <duplicate>false</duplicate>
            </child-association>
         </associations>
</type>
Entonces, tendrías que hacer algo similar para tus tipos de contenidos: definir asociaciones.

Tercera duda:
No entiendo muy bien lo de los metadatos complejos…
Eso sí, para que una misma propiedad te pueda almacenar múltiples valores simplemente utiliza el elemento "multiple". Te pongo un ejemplo:
<property name="custom:fechas_expediente">
        <title>Varias fechas</title>
        <type>d:date</type>
        <mandatory>false</mandatory>
        <multiple>true</multiple>
</property>

Cuarta duda:
Es posible extender el formulario de búsqueda. Para ello, basta con editar el fichero web-client-config-custom.xml y añadir el siguiente fragmento:
<config evaluator="string-compare" condition="Advanced Search">
        <advanced-search>
                <content-types>
                        <type name="custom:mitipo" />
                </content-types>
                <custom-properties>
                        <meta-data type="custom:mitipo" property="custom:fecha" />
                        <meta-data aspect="custom:miAspecto" property="custom:nombre" />
                        <meta-data aspect="custom:miAspecto" property="custom:prop2" />
                </custom-properties>
        </advanced-search>
</config>
El código de content-types añadirá esos tipos en el formulario de búsqueda, y el bloque custom-properties añadirá esas propiedades en el formulario para el tipo o aspecto en cuestión….

Bueno, espero que te haya aclarado muchas cosas y te resulte útil el post!!  :wink:
Hasta luego!!!
txakin
Member II

Re: Creación de metadatos

Hola ajv,

La verdad es que leyendo tu post me quedo un poco más tranquilo sabiendo que todas esas cosas se pueden hacer, pero también es cierto, que tengo que aprender a implementar todas esas cosas, que espero conseguirlo poco a poco y con la ayuda de toda esta gente que escribe en el foro (a veces me da un poco de verguenza preguntar tantas cosas, pero espero que con el paso del tiempo, pueda ayudar a la gente con sus dudas).

Te comento por donde voy ahora :

Me he creado un aspecto para un tipo de expedientes que tendrá mi aplcación donde le meto los metadatos que va a tener ese tipo de expedientes.
Luego he creado una regla en dicho espacio, para que todos los expedientes (subespacios) dentro del espacio, hereden esos metadatos.
Pero me he encontrado un problemilla :

Una vez creada la regla para todos los subespacios dentro de un espacio, cuando inserto un subespacio, no encuentro la manera de insertar los metadatos que me he generado en mi nuevo aspecto. Pero eso sí, cuando le doy a ver los detalles de dicho subespcio puedo ver todas las etiquetas de mi nuevo aspecto.
Como puedo hacer para que pueda modificar esos datos?

Necesitas que te mande como he creado mi nuevo aspecto, etc… me refiero a mi fichero customModel.xml y web-cliente-config-custom.xml?

Me has entendido lo que te quiero decir?

Un saludo campeón