Duda con comportamiento de documentos asociados con otros documentos

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

Duda con comportamiento de documentos asociados con otros documentos

Buenos días,

Tengo una duda acerca del comportamiento de los documentos y sus asociaciones con otros documentos.

Imaginemos que tengo los 2 siguientes tipos de documentos (ambos custom model)

Tenemos el tipo "a" y el tipo "b", cada uno con sus propiedades.
Y el tipo "b" tiene asociados varios tipos "a"
(esta seria la definición de los tipos "a" y "b").
<type name="dt:a">
   <title>Tipo A</title>
   <parent>cm:content</parent>
   <properties>
      <property name="dt:x">
         <title>X</title>
         <description>X</description>
         <type>d:text</type>
         <mandatory>false</mandatory>
         <default></default>
      </property>
   </properties>
</type>


<type name="dt:b">
   <title>Tipo B</title>
   <parent>cm:content</parent>
   <properties>
      <property name="dt:y">
         <title>Y</title>
         <description>Y</description>
         <type>d:text</type>
         <mandatory>false</mandatory>
         <default></default>
      </property>
   </properties>

   <associations>
      <association name="dt:asociacionA">
         <title>asociaciones del tipo A</title>
         <source>
            <mandatory>false</mandatory>
            <many>true</many>
         </source>
         <target>
            <class>dt:a</class>
            <mandatory>false</mandatory>
            <many>true</many>
         </target>
      </association>
   </associations>
</type>


Imaginemos que tengo 3 documentos de tipo "a" y 1 documento de tipo "b", llamémosles "a1", "a2", "a3" y "b1" y asociamos "a1" y "a2" en "b1".

Si yo elimino el documento "a3", este se elimina sin ningún tipo de problema.

Si yo elimino el documento "a1", este se elimina, y además elimina la asociación con "b1".
Por tanto, en "b1" me quedara asociado solamente "a2".

Este es el comportamiento normal en alfresco.

Yo lo que necesito, es que al eliminar "a1", si este esta asociado en "b1", que no deje eliminarlo o me avise.

¿Hay alguna manera de conseguir esto?

Muchas gracias de antemano
2 Replies
angelborroy
Alfresco Employee

Re: Duda con comportamiento de documentos asociados con otros documentos

Quizá puedas hacerlo utilizando el behaviour
NodeServicePolicies.OnDeleteChildAssociationPolicy
para escuchar el evento de eliminación de la asociación entre "a1" y "b1". Si cuando se cumpla esa condición lanzas una excepción romperás la transaccionalidad y no te dejará realizar la eliminación de "a1".
Hyland Developer Evangelist
ruben_arjonilla
Member II

Re: Duda con comportamiento de documentos asociados con otros documentos

Me miro el behaviour este y haré pruebas

Muchas gracias.