Gestion de l'interdépendance des documents.

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

Gestion de l'interdépendance des documents.

Bonjour,

j'utilise depuis quelques temps déjà Alfresco de la façon la plus basique qui soit. J'aimerais y ajouter des fonctionnalités.

La première est la gestion de l'interdépendance des documents.
À savoir,  si on modifie un document, retrouver tous les documents s'y référant afin de voir l'impact de la la modification.

La solution que j'ai en tête en lisant ce forum, et le wiki associé est de modifier le modèle de contenu afin d'ajouter une propriété dépendance à mes docs.
Est ce la bonne voie ?
Quelqu'un a t'il une expérience à partager ?
10 Replies
rguinot
Customer

Re: Gestion de l'interdépendance des documents.

Bonjour,

Tu peux effectivement soit déclarer de nouvelles associations typées dans un modèle custom ou bien utiliser celles déjà existantes apportées par différents aspects.
Voir le fichier contentModel.xml pour des exemples.  Cherche sur le wiki pour de plus amples informations.

Un AMP sur la forge est également intéressant : http://forge.alfresco.com/frs/?group_id=124
Il permet de rendre les child-association d'un doc A vers un doc B cliquables pour arriver soit vers la page des détails du document lié soit vers ce document lui même. Cette extension est facilement modifiable pour la rendre compatible avec des associations standard (peer-to-peer).

Du développement Java est en revanche à prévoir si tu souhaites pouvoir visualiser les associations inverses (B -> A).
patricehadot
Member II

Re: Gestion de l'interdépendance des documents.

Merci pour la réponse,

Le Amp proposé paraissait séduisant pour qui comme moi rechigne un peu à mettre les mains dans le cambouis.

Je me suis empressé de l'installer,tout à l'air correct :
# java -jar bin/alfresco-mmt.jar list /usr/local/alfresco/tomcat/webapps/alfresco.war
Module 'org.alfresco.module.WebClientAssocLinksSupport' installed in '/usr/local/alfresco/tomcat/webapps/alfresco.war'
   -    Title:        WebClientAssocLinksSupport
   -    Version:      0.9.3
   -    Install Date: Tue Mar 11 14:12:36 CET 2008
   -    Desription:   Extends the Web Client to show associations as links

J'ai relancé alfresco et tomcat.

Ensuite je n'ai rien constaté de nouveau. Je n'ai pas trouvé de docs sur la forge et google reste muet ou presque. Quelqu'un a un pointeur sur un peu de docs ? Il y a t'il un fichier de conf un peu documenté à modifier ?
rguinot
Customer

Re: Gestion de l'interdépendance des documents.

Il y a un README dans l'archive me semble-t-il.

Principalement, il s'agit de surcharger la définition du component-generator pour les associations pour lesquelles tu souhaites utiliser cette extension.

Exemple :

<show-association name="myModel:myAssoc"   display-label-id="myAssocDisplayID" component-generator="ChildAssociationWithLinksGenerator"/>
michaelh
Active Member

Re: Gestion de l'interdépendance des documents.

Après l'installation d'un AMP, penser à supprimer le dossier "webapps\alfresco" (ou webapps/alfresco si vous préférez  :wink:  ).

Si vous aviez fait des modifications dedans … alors c'est la preuve qu'il ne fallait pas Smiley Happy

Au démarrage suivant, Alfresco va redéployer la webapp avec la version "patchée" de alfresco.war
patricehadot
Member II

Re: Gestion de l'interdépendance des documents.

Bonjour,

Je n'ai pas vu de fichiers README dans l'archive, ça manque un peu AMHA Smiley Sad
Je n'ai pas tout compris de cette histoire de child association, je n'ai lu que le début du tutoriel d'ecmarchitect.com… De plus j'ai bien peur que l'association soit dans le mauvais sens, je voulais savoir quels sont les n documents qui dépendent DU document, et j'ai bien l'impression que ceci propose l'inverse.
Si quelqu'un a un bout d'exemple ou un pointeur explicatif sur la child association, je suis preneur.

Quoi qu'il en soit et si quelqu'un ayant encore moins envie que moi de mettre les mains dans le cambouis googuelotte et arrive ici, et pour ne pas laisser une question sans réponse,j'ai mis dans mon shared/classes/alfresco/extension :

SaulonModel.xml
[size=85]<?xml version="1.0" encoding="UTF-8"?>

<!– Definition of new Model –>

<!– The important part here is the name - Note: the use of the my: namespace
     which is defined further on in the document –>
<model name="sa:Saulonmodel" xmlns="http://www.alfresco.org/model/dictionary/1.0">
 
  <!– Optional meta-data about the model –>  
  <description>Modele de documents Saulon</description>
  <author>P. HADOT</author>
  <version>1.0</version>
 
  <!– Imports are required to allow references to definitions in other models –>  
  <imports>
    <!– Import Alfresco Dictionary Definitions –>
    <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
    <!– Import Alfresco Content Domain Model Definitions –>
    <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
  </imports>
 
  <!– Introduction of new namespaces defined by this model –>
  <!– NOTE: The following namespace my.new.model should be changed to reflect your own namespace –>
       <namespaces>
    <namespace uri="sa.new.model" prefix="sa"/>
       </namespaces>
  <types>
    <!– Definition of new Content Type: Documents Standard Saulon –>
    <type name="sa:dss">
      <title>Documents Standard Saulon</title>
      <parent>cm:content</parent>
      <properties>
        <property name="sa:reference">
          <type>d:text</type>
          <multiple>true</multiple>
   </property>
   <associations>
            <association name="sa:dss">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>cm:content</class>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </target>
            </association>
      </properties>
    </type>  
  </types>
</model>[/size]

Dans Saulon-Model-context.xml
[size=85]<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>

    <!– Registration of new models –>   
    <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
        <property name="models">
            <list>
                <value>alfresco/extension/SaulonModel.xml</value>
            </list>
        </property>
    </bean>
         
</beans>[/size]

et ajouter dans web-client-config-custom.xml
[size=85]<config evaluator="string-compare" condition="Advanced Search">
      <advanced-search>
         <content-types>
            <type name="sa:dss" />
         </content-types>
         <custom-properties>
            <meta-data type="sa:dss" property="sa:reference" />
         </custom-properties>
      </advanced-search>
   </config>[/size]
J'ai pas tout compris, y a surement des bourdes mais ça convient à mon besoin même si c'est moins sexy qu'un lien clicquable, en espérant que cela fasse de même à d'autres.

webapps\alfresco" (ou webapps/alfresco si vous préférez :wink: ).
"shift /" est quand même moins traumatisant pour les mains que "Alt Gr \" non ? Ca tiens à peu de chose le choix d'un OS… Smiley Very Happy
rguinot
Customer

Re: Gestion de l'interdépendance des documents.

Pour les liens cliquables c'est très simple et je t'ai déjà indiqué la procédure Smiley Happy
patricehadot
Member II

Re: Gestion de l'interdépendance des documents.

oui oui j'ai bien vue la procédure dans un post précédant, mais j'ai pas tout compris.  Smiley Surprisedops:

J'ai mis dans mon web-client-config-custom.xml (ça me semblait adéquat dans ce fichier) :

   <config evaluator="node-type" condition="sa:dss">
      <property-sheet>
         <show-property name="mimetype" display-label-id="content_type"
                        component-generator="MimeTypeSelectorGenerator" />
         <show-property name="size" display-label-id="size"
                        converter="org.alfresco.faces.ByteSizeConverter"
                        show-in-edit-mode="false" />
         <show-property name="sa:reference" />
         <show-association name="sa:dss" display-label-id="doc_referant"
                           component-generator="ChildAssociationWithLinksGenerator"/>
      </property-sheet>
   </config>

Alfresco a bien redémarré.   8)

Par contre je ne vois rien de nouveau dans l'interface et surtout j'ai maintenant dans les logs :

12:09:42,516 WARN  [web.app.ResourceBundleWrapper] Failed to find I18N message string key: doc_referant
12:09:42,545 WARN  [component.property.UIAssociation] Failed to find association definition for association 'sa:dss'

J'ai bien peur qu'il y ait un lien…
Plus sérieusement, je pense qu'il faut que je définisse quelque part la description a afficher pour mon champ "doc_referant". Mais je ne sais ni comment (un <title></title> ?) ni où ?
et pour la deuxième ligne du log je n'ai aucune idée.

Merci du temps que vous avez déjà passé à me lire et à répondre à mes questions.
rguinot
Customer

Re: Gestion de l'interdépendance des documents.

Alors concernant
12:09:42,516 WARN  [web.app.ResourceBundleWrapper] Failed to find I18N message string key: doc_referant
, la réponse à été donnée ici : http://forum.alfresco-fr.org/viewtopic.php?p=6937#p6937

Concernant l'autre, plusieurs choses :
En résumé rapide, il existe deux sortes d'associations de base : des "child-associations" ( liens père-fils, exemple : un folder et ses contenus) et des "associations" (liens égal à égal, ex : doc A vers doc B, appelés je crois peer to peer dans qq tutoriaux).

L'AMP que je vous ai indiqué permet de rendre cliquables les child-associations. J'ai moi-même modifié cet AMP pour rendre les associations peer to peer cliquables également et cette modification devrait se trouver également sur la forge, si ce n'est pas le cas elle est en tout cas en ma possession et en la possession de l'auteur original. Vous utilisez apparemment des "associations" et vous devrez donc utiliser cette modification.

Il y a effectivement du développement Java à prévoir pour rendre les associations bidirectionnelles car ce n'est pas exposé actuellement dans l'interface Web.
michaelh
Active Member

Re: Gestion de l'interdépendance des documents.

<RienAVouar>
Personne ne va comprendre et c'est limite message personnel mais "Brochon" va bientôt être le village de France avec le plus fort taux de pratiquants Alfresco dans toute l'Europe rapporté au nombre d'habitants  Smiley Very Happy
</RienAVouar>