[CIFS] Objet content versionnables.

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

[CIFS] Objet content versionnables.

Bonjour,

     J'utilise CIFS sur mon alfresco 3.3.3 dans le cas d'utilisation suivant:

J'ai un objet (noeud) héritant de content. Lorsque j'utilise CIFS pour modifier le fichier placé dans la propriété héritée ContentModel.CONTENT, alfresco monte automatiquement  en version mon objet (content possède l'aspect VERSIONABLE) ce qui engendre des effets de bords indésirables sur mes écrans..

L'url CIFS d'accès à mon contenu est créée de la façon suivante :

[PathCIFS]//[ContentModel.NAME]

Par exemple j'ai un objet stocké dans le store liste pour lequel j'ai mis un fichier file.xls dans la balise content et dans la balise name "file.xls" : file://[SERVEURNAME]//liste/file.xls.

J'ai donc enlevé l'héritage au type cm:content et j'ai ajouté sur mon objet les propriétés utilisées par CIFS MYCONTENT et MYNAME par exemple. J'ai fais pointé mon url sur ces nouvelles propriétés.

Ors lors d'un clique sur mon bouton d'accès CIFS, celui-ci m'indique que le contenu est introuvable..

Il semblerait que CIFS fonctionne uniquement avec les propriétés héritées de CONTENT (name et content).

Est-t-il donc possible de jouer avec CIFS sur des objets que l'on ne veut pas versionable??

PS : J'ai également essayé un removeAspect(Versionable) en vain..

Merci pour vos réponses!
1 Reply
viscere
Member II

Re: [CIFS] Objet content versionnables.

Bon en attente de solution, j'ai avancé de la sorte. Je vous mets directement le code ca sera plus simple .

Avant ma modification:


<type name="test:testobjet">
    <parent>cm:content</parent>
    <properties>
        <property name="test:testobjet_numero">
       <type>d:text</type>
       <mandatory>true</mandatory>
   </property>
    </properties>
</type>

J'ai un objet testobjet héritant de cm:content pour lequel je lui attache un fichier (xls par exemple). Lors de l'opération je remplis la balise ContentModel.PROP_CONTENT (reader) et ContentModel.PROP_NAME (le nom du fichier xls). Lors de l'accès à CIFS sur ce fichier, mon ihm propose une action lié à l'url suivante :

file:\\[SERVERNAME]\TestStore\2012\fichier001.xls

Cette URL fonctionne et m'ouvre bien excel en mode CIFS. Mon problème comme indiqué dans mon premier post vient du fait que testobjet étant versionnable (via cm:content), une modification du content par cifs me le monte en version automatiquement alors que je ne le souhaite pas.

Après modification :

J'ai modifié mon objet testobjet en rajoutant une association vers un nouvel objet pieceJointe contenant deux propriétés de type content et text et n'héritant plus de content :


<type name="test:testobjet">
    <parent>cm:content</parent>
    <properties>
        <property name="test:testobjet_numero">
       <type>d:text</type>
       <mandatory>true</mandatory>
   </property>
    </properties>
    <associations>
    <child-association name="test:test_pieceJointe">
               <source>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </source>
               <target>
                  <class>test:pieceJointe</class>
                  <mandatory>false</mandatory>
                  <many>false</many>
               </target>
            </child-association>
         </associations>
</type>

<type name="test:pieceJointe">
    <parent>sys:base</parent>
    <properties>
   <property name="test:pieceJointe_name">
       <title>test:pieceJointe_name</title>
       <type>d:text</type>
   </property>
   <property name="test:pieceJointe_content">
       <title>test:pieceJointe_content</title>
       <type>d:content</type>
   </property>
    </properties>
</type>


Dans ce cas là, je n'arrive plus à trouver le fichier via CIFS, l'url me renvoie que le fichier n'existe pas.

Je construit l'url CIFS de la façon suivante :

urlCifs = "file:\\\\" + serverName + "\\Test\\" + nodeService.getProperty(nodeService.getPrimaryParent(pieceJointeNodeRef).getParentRef(), ContentModel.PROP_NAME) + "\\" + nodeService.getProperty(ficheConsRef, TestModel.PIECEJOINTE_NAME);

Voilà je pense que je suis sur la bonne voix pour ne plus déclencher le versionning automatique lors de modification du fichier par CIFS, tout ce qu'il me reste à faire c'est trouver l'url d'accès!

J'ai essayé via Windows CIFS de parcourir simplement l'arborescences et trouver mon fichier mais ayant tellement d'objet dans la base, l'explorateur se perds et plante lorsque je rentre dans le répertoire file:\\serverName\Test\2012\".

Merci pour vos réponses!