cancel
Showing results for 
Search instead for 
Did you mean: 

création d'un folder non-persistant [RESOLU]

fmarin
Champ in-the-making
Champ in-the-making
bonjour

je crée un folder avec le code suivant :
private boolean create(String nodePath, String parentPath)
{
   try {
      NodeRef parentNode = getRepository().findNodeRef("path", parentPath.split("/"));
   } catch(Exception e) {
      System.out.println("create folder - erreur de création sur " + parentPath );
      return true;
   }
   if (parentNode!=null)
   {
      FileInfo fi=null;
      try {
      fi = getServiceRegistry().getFileFolderService().create(parentNode,nodePath.replaceAll("/", ""),ContentModel.TYPE_FOLDER);
      } catch (Exception e) {
         System.out.println("create folder - erreur sur create folder - ");
      }
      System.out.println("create folder faite - nodeParent=" + parentNode
         + " - nodePath=" + nodePath +  "___"
         + "\n name=" + fi.getName() + " - nodeRef=" +fi.getNodeRef() + " - properties=" +fi.getProperties()
         );
   }
   return false;
}


j'obtiens bien le message de création, mais le folder n'apparaît pas dans l'interface explorer … ni dans l'explorateur de noeud …

Où est l'erreur ?

merci de votre aide

Frédéric Marin
5 REPLIES 5

cleseach
Star Contributor
Star Contributor
Bonjour Frédéric,

Vu que le message de succès de la création est en dehors du try/catch, il y a de grande chances qu'il soit toujours affiché.
Il faudrait que tu nous copies la ligne en entier pour être sûr que tout est bien créé… et les logs alfresco peuvent aussi être bien utiles 😉

Cordialement,
Charles Le Seac'h

fmarin
Champ in-the-making
Champ in-the-making
Bonsoir Charles

j'en reste confondu (on arrive toujours à se faire avoir) ; ceci dit, je m'étais focalisé sur le fait de récupérer le nodeRef … qui aurait du être null en cas de défaut de création

j'ai modifié le code pour tenir compte de ta remarque et de la création d'un espace directement sous "company_home"
   private FolderBase creatFold3bis(String parent, String folder, boolean debug)
   {
      System.out.println("create folder ———————debut ");
      FileInfo fi=null;
      NodeRef parentNode=null;
      if (parentPath.equals("Espace racine"))
      {
         try {
            parentNode = getRepository().getCompanyHome();
         } catch (Exception e) {
            if (debug) System.out.println("    findNodeRef no company home ");
            e.printStackTrace();
         }
      }
      else
      {
         try {
            parentNode = getRepository().findNodeRef("path", parentPath.split("/"));
         } catch(Exception e) {
            System.out.println("create folder - erreur de création sur " + parentPath );
            return null;
         }
      }
      if (parentNode!=null)
      {
         try {
         fi = getServiceRegistry().getFileFolderService().create(parentNode,nodePath.replaceAll("/", ""),ContentModel.TYPE_FOLDER);
         System.out.println("create folder faite - nodeParent=" + parentNode
               + " - nodePath=" + nodePath +  "___"
               + "\n name=" + fi.getName() + " - nodeRef=" +fi.getNodeRef() + " - properties=" +fi.getProperties()
               );

         } catch (Exception e) {
            System.out.println("create folder - erreur sur create folder - ");
         }
      }
      System.out.println("create folder ———————fin ");
      return new FolderBase(fi.getName(), "workspace/SpacesStore/" + parentPath + nodePath, fi.getNodeRef(), debug );
}


ci joint la log de tomcat
<cite>create folder ———————debut
create folder faite - nodeParent=workspace://SpacesStore/7b20b54a-b141-4fdc-87ca-5a93eac89127 - nodePath=test___
name=test - nodeRef=workspace://SpacesStore/60890acb-7736-4e0e-b1e5-e99c73c2e5d5 - properties={{http://www.alfresco….
create folder ———————fin
</cite>

lors de l'itération suivante, pour créer "Espace racine/test/folder" …
<cite>create folder ———————debut
create folder - erreur de création sur Espace racine/test</cite>

j'ai vérifié avec le "node browser" : le "nodeParent" est bien celui du "company_home"

j'ai créé le premier niveau manuellement (Espace racine/test) et ai ré-exécuté la fonction, qui fonctionne normalement : ai-je fait qqchose d'interdit ?

Frédéric Marin

fmarin
Champ in-the-making
Champ in-the-making
j'ai compris pourquoi je n'avais pas de persistence : tout simplement parce que, Alfresco, en système réagissant bien, gère une session et fait un rollback en cas de fin inattendue … comme quoi, il faut de temps en temps revenir aux fondamentaux !!! Smiley Happy

par curiosité, j'aimerai connaître les précautions à prendre pour créer un espace directement sous le "company_home"

Frédéric Marin

sibe
Champ on-the-rise
Champ on-the-rise
Salut Martin,

pour aller plus vite, n'hésitez pas à regarder les exemples disponibles sur le SDK d'Alfresco vous y trouverez des exemple pour créer à la fois des documents, des dossiers dans l'entrpôt d'Alfresco.
Exemple regarder le projet  : WebServiceSamples

Bon courage

fmarin
Champ in-the-making
Champ in-the-making
bonjour

effectivement, les différents projets inclus dans le sdk sont une source d'inspiration constante, et on ne le répétera pas suffisamment assez.


Frédéric Marin