cancel
Showing results for 
Search instead for 
Did you mean: 

J'ai besoin d'affecter à 1 document plusieurs valeurs...

denisr
Champ in-the-making
Champ in-the-making
Bonjour,
J'ai besoin d'affecter à 1 document plusieurs valeurs de la même propriété.
exemple : propriété "clients concernés" :
La propriété "clients concernés" a comme "allowed values" : clientA, clientB, clientC,…,clientZ
et mon document concernerait clientA et clientG.

Pour autant je ne souhaite pas créer autant de catégories qu'il y a de clients car la liste de clients me parait trop volatile par rapport à la notion de catégorie.

Auriez-vous une idée me permettant de réaliser cette fonctionnalité?
Cordialement,
D.
😕
12 REPLIES 12

alexist
Champ in-the-making
Champ in-the-making
Ajoute multiple="true". Par exemple :

            <property name="cm:addressees">
               <title>Addressees</title>
               <type>d:text</type>
               <multiple>true</multiple>
            </property>

denisr
Champ in-the-making
Champ in-the-making
Yes! Ca marche et la solution est hyper simple. Mille mercis Alexis. En plus ça marche même avec mon custom component generator! Je te dois une virtual beer!
Smiley Very Happy

denisr
Champ in-the-making
Champ in-the-making
Je signale malgré tout un (petit) bémol fonctionnel mais nobody's perfect: si la valeur d'une propriété avait été rentrée pour un document avant que la propriété soit passée en mode <multiple>true</multiple> alors la modification de la valeur de cette propriété pour ce document provoque une exception dans alfresco 2.1.0 (je ne connais que cette version)
D.

alexist
Champ in-the-making
Champ in-the-making
Quand tu touche au modèle, il faut evidemment penser à modifier tous les documents qui ont été créés avec ce modèle.
Si tu dois faire ca sur un vrai environnement (re7/prod), il faut que tu prevoit un traitement au démarrage d'alfresco pour modifier les propriétés des documents.

denisr
Champ in-the-making
Champ in-the-making
C'est clair. Bien que je sois encore en phase de dev il est bon que j'ai en tête cette problématique de migration en cas de release de la prod ou de l'integration.
Dans le cas précis du passage en mode multiple pour une propriété, quel genre de traitement serait adéquat pour les documents qui avaient été insérés auparavant et comment les repère-t-on?

Cordialement,
Denis

alexist
Champ in-the-making
Champ in-the-making
J'imagine que ta propriété est sur un aspect. L'idée est de récuperer tous les fichiers ayant cet aspect , puis repositionner la valeur dans la propriété.
Ce que je ferais :
– Ajouter une nouvelle propriété dans ton aspect. Comme ca tu as une propriete simple et une autre equivalente en multiple.
– Puis en java, à l'aide d'une action (de type "run action…"), ou bien d'un service qui se lance au démarrage d'alfresco
    - Rechercher tous les documents ayant cette aspect.
    - Récuperer la valeur de la propriété simple et mettre à jour la nouvelle propriété avec cette valeur.
-Tester dans alfresco le resultat du traitement.
-Supprimer l'ancienne propriété simple.

Peut-être qu'il n'est pas necessaire de creer une nouvelle propriété, il faut voir si en changeant le type de simple à multiple tu arrives à recupérer en java la valeur de la propriété. J'ai des doutes, mais ca coute rien d'essayer.


C'est juste une idée, peut-etre que quelqu un connait une solution plus simple ?

denisr
Champ in-the-making
Champ in-the-making
Alexis, moi j'ai plutôt appliqué une politique de "type" de documents plutot qu' "aspect". Mais j'imagine que je peux appliquer ce que tu dis concernant les aspects aux types, non?

Tu dis qu'ajouter ou retirer une propriété à un aspect est sans conséquence (je veux dire par là qu'alfresco ne lève pas une exception) sur la consultation/modification des propriétés des documents insérés dans Alfresco antérieurement à l'ajoût ou au retrait. (dans la mesure evidemment ou des scripts/action associés à ces documents ne font pas référence à la propriété que l'on retire)
Ce qui permettrait effectivement de migrer une propriété vers une autre.

C'est une situation archi-testée?

cdt,
Denis

alexist
Champ in-the-making
Champ in-the-making
Tu peux faire le meme traitement si c'est un type (mais de manière general, il vaut mieux creer des Aspects dans Alfresco)

Le retrait d'une propriété, c'est rapide à tester. Eneleve la propriété en question, redemarra alfresco et test.  Je sais que si un node possède un aspect qui n'est plus définit dans un modèle, alfresco n'aime pas. Par contre pour la propriété, j'ai un doute. Tu peux tester ?


Après, tu peux toujours mettre une petite rustine en attendant mieux. Par exemple, tu peux masquer la propriété en modifiant ton web-client-config-custom.xml. Tu supprimes le show-property correspondant à la propriété dans la config de ton node-type.
(<config evaluator="node-type" condition="custom:customtype">)

denisr
Champ in-the-making
Champ in-the-making
J'ai testé. J'ai enlevé une propriété de un de mes "types" de document. Je vois les anciens sans la propriété. Pas d'exception.

Par contre, en testant  ma propriété de type <multiple>true… dont les valeurs possibles proviennent de ma dataware house, j'ai constaté qu'il était possible de selectionner plusieurs fois la meme valeur ce qui n'est pas top. Connais-tu un moyen de contourner ce problème? y'a-t-il une valeur pour le parametre <multiple> du genre <multiple>unique</multiple> ?