Tipos de contenido y aspectos

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

Tipos de contenido y aspectos

Hola a todos,

Me gustaría crearme una estructura en mi Alfresco, de carpetas y documentos, pero en vez de usar los tipos de Alfresco (folder y content), mis propios tipos.

Mis carpetas serían de tipo Expediente con unos metadatos específicos.
Mis documentos serían de tipo Docu con otros metadatos específicos.

Dentro de mis expedientes, irían mis docu.

Por lo que he leido en la documentación, en las búsquedas no se pueden hacer JOINs, es decir no podría hacer una join entre mis expedientes y mis docus, pero tengo una idea que puede resultar muy rápida y sencilla para poder simular esas joins. Mis tipos docu, además de tener los metadatos propios tendrían también los metadatos de mi tipo expediente, así las búsquedas podrían simular las JOINS. No sé si me he explicado bien.

Como debería quedar mi xxxxModel.xml ?????????

Digamos que tengo lo siguiente :

<types>
    <type name="xxx:expedientes">
               <title>Expedientes</title>
      <parent>cm:folder</parent>         
      <properties>
             <property name="xxxx">
             <title>XXXXXXX</title>
             <type>d:text</type>
         </property>
         <property name="yyyyy">
             <title>YYYYY</title>
             <type>d:text</type>   
         </property>
         <property name="zzzzzz">
             <title>ZZZZ</title>
             <type>d:text</type>
                        </property>
      </properties>
        </type>         

        <type name="xxx:docu">
               <title>Documentos</title>
      <parent>cm:content</parent>         
      <properties>
             <property name="aaaa">
             <title>AAAAAA</title>
             <type>d:text</type>
         </property>
         <property name="bbbbb">
             <title>BBBBB</title>
             <type>d:text</type>   
         </property>
         <property name="ccccc">
             <title>CCCCC</title>
             <type>d:text</type>
                        </property>
      </properties>
        </type>                
</types>

Pero me falta la relación de que el tipo Docu, tenga los metadatos del tipo Expediente.
Sería tan sencillo como añadir algo de sub-types o algo así?

Me podeís echar una mano?

Muchas gracias de antemano.
3 Replies
ajv
Member II

Re: Tipos de contenido y aspectos

Hola txakin,

Lo que te interesa es saber dado un Docu a qué Expediente pertenece??
Si es así, podrías aprovechar la asociación contains que ofrece cm:folder. Es decir, por lo que he visto tu tipo Expediente deriva de cm:folder y tu tipo Docu de cm:content. Eso significa que disponen de todos los metadatos de éstos, incluyendo las relaciones entre éstos.
Si dado un contenido podemos saber a qué espacio pertenece (puesto que es su nodo padre a través de la asociación children…por ejemplo, a través del método getPrimaryParent del NodeService), podrás saber de qué Expediente es un Docu de igual forma…

Si te fijas en la definición del tipo cm_folder, verás que ya tiene una asociación cm:contains, la cual admite un número indeterminado de sys:base (el tipo básico definido en el modelo de Alfresco):
<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>
Por tanto, yo no veo porqué has de incluir asociaciones especiales…Si te creas un "espacio" de tipo Expediente y le añades "contenido" de tipo Docu estarás implícitamente creando la asociación entre éstos.
Espero que te haya resultado útil y te evites implementar asociaciones específicas Smiley Very Happy

Saludos!
txakin
Member II

Re: Tipos de contenido y aspectos

Hola ajv,

Si eso lo entiendo….si yo accedo a mi DOCU, puedo saber su nodo padre, en este caso EXPEDIENTE.

Pero el problema que tendré es en las búsquedas. Te comento :

Imáginate que quiero hacer una búsqueda con JOIN entre EXPEDIENTES y DOCUMENTOS, es decir, que podré buscar por metadatos del EXPEDIENTE y del DOCUMENTO en la misma busqueda.
Aqui entiendo que la búsqueda no me devolverá el resultado esperado, porque los metadatos de un EXPEDIENTE no los tiene el DOCUMENTO y debería mirar por cada documento su nodo padre, en este caso su EXPEDIENTE…..creo que eso es un poco coñazo

Entiendes mi problema?
robert
Active Member

Re: Tipos de contenido y aspectos

Hola txakin. Entiendo el problema que tienes. En este video lo explica al detalle:
https://www.youtube.com/watch?v=ATuLLtsaFQo

Cheka este link, si lo estás haciendo en Linux. https://forums.alfresco.com/es/interrelacion-de-contenidos-formulario-personalizado-10072010-1943  ….(Crédtos: innovasoft)

Yo lo necesito para Windows Smiley Sad