Historiser les méta-données

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

Historiser les méta-données

Bonjour,

Je souhaite utiliser l'historique sur des types de contenus que j'ai créé. J'active donc la gestion des versions. Lorsque je modifie le contenu, une nouvelle version est créée et je peux donc consulter le contenu et les propriétés de chaque version. Ceci est le comportement normal et je le comprends.

Maintenant je souhaite qu'à chaque fois que je modifie une propriété, une nouvelle version soit créée de la même manière qu'auparavant.

Pour résumer, je souhaite qu'une nouvelle version soit créée à chaque modification de contenu et de propriétés.

Avez vous quelques idées ?

Merci d'avance
3 Replies
pdubois
Active Member

Re: Historiser les méta-données

Un bon example pour comprendre comment cela est de lire le code de "VersionableAspect.java".

Extrait:


                    // Queue create version action
                    Map<String, Serializable> versionDetails = new HashMap<String, Serializable>(1);
                    versionDetails.put(Version.PROP_DESCRIPTION, I18NUtil.getMessage(MSG_INITIAL_VERSION));
                    this.versionService.createVersion(nodeRef, versionDetails);

Commme vous le voyez, il est possible d'associer une "map" d'attributs à la nouvelle version. Cette "map" de valeurs sera archivée.  Il vous suffit donc de prendre une copie des valeurs des propriétés et de les sauver dans la version.  Je vous conseille également d'utiliser la policy:
OnUpdatePropertiesPolicy
pour détecter si les propriétés ont été changées.


J'espère que cela vous aide.
bch
Member II

Re: Historiser les méta-données

Bonjour,

Tout d'abord merci de votre réponse. Je comprends bien comment historiser les propriétés mais je suis un peu perdu pour l'utilisation de policy. Où puis-je déclarer le fait de lancer une méthode Java avec la policy OnUpdatePropertiesPolicy ?

Existe t'il un exemple dans le code source d'Alfresco ?

Merci d'avance
rivarola
Active Member

Re: Historiser les méta-données

Tu peux étendre ou modifier la classe VersionableAspect pour lui ajouter un behaviour supplémentaire. Sa méthode init est déjà appelée pour lui attacher les autres comportements. Tu n'as qu'à l'enregistrer sur le OnUpdatePropertiesPolicy en plus en t'inspirant de ce qui existe déjà + implémenter la méthode correspondante + déclarer l'interface NodeServicePolicies.OnUpdatePropertiesPolicy.