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

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

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

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
cleseach
Active Member II

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

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
Member II

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

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
Member II

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

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
Active Member

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

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
Member II

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

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