cancel
Showing results for 
Search instead for 
Did you mean: 

Scrittura documenti su sottospazio tramite webservices

phil
Champ in-the-making
Champ in-the-making
Tramite Alfreso Explorer ho definito uno spazio di nome "miospazio" e, all'interno di questo, ho definito un ulteriore spazio di nome "sottospazio".

Tramite web-services sono riuscito a scrivere un file all'interno di "miospazio" tramite la path contenuta in questa riga:

ParentReference companyHomeParent = new ParentReference(storeRef, null, "/app:company_home/cm:miospazio", Constants.ASSOC_CONTAINS, null);

Se cerco di inserire un doocumento nel sottospazio con la riga sottostante mi viene generato un errore del tipo "path non trovata":

ParentReference companyHomeParent = new ParentReference(storeRef, null, "/app:company_home/cm:miospazio/cm=sottospazio", Constants.ASSOC_CONTAINS, null);

Con quale sintassi devo referenziare la path per inserire il documento nel sottospazio?

Grazie
2 REPLIES 2

openpj
Elite Collaborator
Elite Collaborator
Devi codificare nel formato ISO9075 il nome del sottospazio, questo perché Alfresco memorizza la struttura del primary path utilizzando lo standard XPath:

String destinationPath = "/app:company_home/cm:"+ISO9075.encode("miospazio");
ParentReference companyHomeParent = new ParentReference(storeRef, null, destinationPath, Constants.ASSOC_CONTAINS, null);
Spero ti sia utile.

phil
Champ in-the-making
Champ in-the-making
Grazie per la tua sollecita risposta, ma mi pare di capire che il mio problema sia un altro: se effettuo l'inserimento dello spazio (o del sottospazio) tramite Alfresco Explorer, allora il caricamento del file tramite web-service mi funziona, mentre se il caricamento dello spazio lo effettuo da web-service (da Alfresco Explorer vedo il sottospazio caricato da web-service), mi viene generato il seguente errore:

Failed to resolve to a single NodeRef with parameters (store=workspaceSmiley FrustratedpacesStore uuid=null path=/app:company_home/cm:spaziows), found 0 nodes.

Di seguito riporto il codice utilizzato:


CODICE PER CREARE SPAZIO:

      String alfrescoWsUrl = "http://localhost:8080/alfresco/api";
      WebServiceFactory.setEndpointAddress(alfrescoWsUrl);
      AuthenticationUtils.startSession("admin", "alfresco");

      Store storeReference = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
      ParentReference parentReference = new ParentReference(storeReference, null, "/app:company_home", Constants.ASSOC_CONTAINS, Constants.createQNameString(Constants.NAMESPACE_CONTENT_MODEL, "sample_folder"));
      NamedValue[] properties = new NamedValue[]
         { Utils.createNamedValue(Constants.PROP_NAME, ISO9075.encode("spaziows")) };
      CMLCreate create = new CMLCreate("1", parentReference, null, null, null, Constants.TYPE_FOLDER, properties);
      CML cml = new CML();
      cml.setCreate(new CMLCreate[]
         { create });
      UpdateResult[] results = WebServiceFactory.getRepositoryService().update(cml);



CODICE PER INSERIRE FILE:

      String alfrescoWsUrl = "http://localhost:8080/alfresco/api";
      WebServiceFactory.setEndpointAddress(alfrescoWsUrl);
      AuthenticationUtils.startSession("admin", "alfresco");

      String path = "c:/immagine.jpg";
      String fileName = "immagine.jpg";

      Store storeRef = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
      
      String destinationPath = "/app:company_home/cm:"+ISO9075.encode("spaziows");
      ParentReference companyHomeParent = new ParentReference(storeRef, null, destinationPath, Constants.ASSOC_CONTAINS, null);

      RepositoryServiceSoapBindingStub repositoryService = WebServiceFactory.getRepositoryService();
      ContentServiceSoapBindingStub contentService = WebServiceFactory.getContentService();
      NamedValue[] contentProps = new NamedValue[1];
      NamedValue[] titledProps = new NamedValue[2];

      companyHomeParent.setChildName("{http://www.alfresco.org/model/content/1.0}" + fileName);

      contentProps[0] = Utils.createNamedValue(Constants.PROP_NAME, fileName);
      titledProps[0] = Utils.createNamedValue(Constants.PROP_TITLE, "aaaaaaaaa");
      titledProps[1] = Utils.createNamedValue(Constants.PROP_DESCRIPTION, "bbbbbbbbb");
      CMLAddAspect addAspect = new CMLAddAspect(Constants.ASPECT_TITLED, titledProps, null, "1");

      CMLCreate create = new CMLCreate("1", companyHomeParent, companyHomeParent.getUuid(), Constants.ASSOC_CONTAINS, null, Constants.PROP_CONTENT, contentProps);
      CML cml = new CML();
      cml.setCreate(new CMLCreate[]
         { create });
      cml.setAddAspect(new CMLAddAspect[]
         { addAspect });
      UpdateResult[] result = repositoryService.update(cml);
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.