cancel
Showing results for 
Search instead for 
Did you mean: 

HELP - Création d'un Dossier Noeud Alfresco en Java

yannb
Champ in-the-making
Champ in-the-making
Bonjour à tous,

Je rencontre un probleme dans mes développements :

Je suis dans le dossier NIVEAU1, je crée un dossier NIVEAU2 avec ce code :
(Ce code est lancé par l'utilisateur System dans une tache plannifiée.)

Map<QName, Serializable> props = new HashMap<QName, Serializable>(1);
props.put(ContentModel.PROP_NAME, "NIVEAU2");
NodeRef NIVEAU2 = this.getServiceRegistry().getNodeService().createNode(result, ContentModel.ASSOC_CONTAINS,
      QName.createQName(FTModel.FT_MODEL_URI,"NIVEAU2"), ContentModel.TYPE_FOLDER, props).getChildRef();

Tout va bien et le dossier est visible dans Alfresco et l'explorateur de noeuds.
Par contre il n'apparait pas lors des requetes lucène :

PATH:"/app:company_home/cm:NIVEAU1/*" AND @cm\:name:"NIVEAU2" AND TYPE:"cm:folder"

D'autre part si je créée par l'interface un dossier NIVEAU3 il apparait dans les résultats de la requete lucene …
Mon code est il insuffisant ?
5 REPLIES 5

al_nowak
Champ in-the-making
Champ in-the-making
Faudrait plutot faire :
NodeRef NIVEAU2 = this.getServiceRegistry().getNodeService().createNode(result, ContentModel.ASSOC_CONTAINS,
      ContentModel.ASSOC_CHILDREN, ContentModel.TYPE_FOLDER, props).getChildRef();

yannb
Champ in-the-making
Champ in-the-making
Fait, et ça ne marche pas mieux, ma requete lucene ne retourne aucun résultat.

Pareil pour une requete de type PARENT:"XXXXX"

Je remarque aussi que le association type de mon niveau 2 vers niveau1 est containt et non children comme le reste …

yannb
Champ in-the-making
Champ in-the-making
Je pense que mon repertoire précédement créé n'est pas indexé dans lucene …

Pas contre dès que je vais en ihm modifier sa descritpion par exemple, il est immédiatement remonté par la requete lucene …


:?:  :?:  :?:

rivarola
Champ on-the-rise
Champ on-the-rise
Bonjour,
C'est normal que le noeud ne remonte pas via un requête PATH avec ces lignes de code. La requête PATH travaille sur le nom des associations et pas les noms des noeuds. Et ces associations doivent être exprimées dans le bon namespace, comme :
NodeRef NIVEAU2 = this.getServiceRegistry().getNodeService().createNode(result, ContentModel.ASSOC_CONTAINS,
                  QName.createQName(NamespaceService.CONTENT_MODEL_1_0_URI, "NIVEAU2"), ContentModel.TYPE_FOLDER, props)
                  .getChildRef();

yannb
Champ in-the-making
Champ in-the-making
Bonjour,
Effectivement je m'étais apererçu de cela je l'ai changé de la même manière. J'ai pourtant toujours le même problème.

Je confirme que c'est un problème d'index lucene, après ré-indexation (mode FULL) la requete remonte les bons résultats …

Une idée pour contourner ce problème ?