Versioning di content con stessi metadati

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

Versioning di content con stessi metadati

Ciao a tutti, ho creato dei content personalizzati con certi metadati, tutto bene. Ora, vorrei che nel momento in cui faccio l'upload di un file attraverso le API java nel caso in cui il file contenga gli stessi valori di metadati esegua il versioning.
Mi spiego meglio:
1)
Content: fattura
metadato,valore: anno,2013
metadato,valore: numero,3
2)
Upload del documento con API Java
3)
Documento caricato, versione 1.0

A questo punto ricarico lo stesso file:
1)
Content: fattura
metadato,valore: anno,2013
metadato,valore: numero,3
2)
Upload del documento con API Java
3)
Documento caricato, a questo punto vorrei che la versione del documento sia la 2.0

Ho inserito nel mio content l'aspect versionable come dice il wiki alfresco

<!–Classe fattura–>
<type name="fe:fattura">
   <title>Fattura</title>
   <parent>fe:documento</parent>
   <properties>
      <property name="fe:numeroFattura">
         <title>Numero fattura</title>
         <type>d:text</type>
         <mandatory>true</mandatory>
      </property>
      <property name="fe:annoFattura">
         <title>Anno fattura</title>
         <type>d:int</type>
         <mandatory>true</mandatory>
      </property>
      <property name="fe:nazioneFattura">
         <title>Nazione</title>
         <type>d:int</type>
         <mandatory>true</mandatory>
      </property>
      <property name="fe:registroIvaFattura">
         <title>Registro IVA</title>
         <type>d:int</type>
         <mandatory>true</mandatory>
      </property>            
      <property name="fe:cliforPfxFattura">
         <title>Cliente/Fornitore Fattura</title>
         <type>d:text</type>
         <mandatory>true</mandatory>
      </property>
      <property name="fe:cliforCodFattura">
         <title>Codice cliente/fornitore fattura</title>
         <type>d:text</type>
         <mandatory>true</mandatory>
      </property>
      <property name="fe:cliforRgsFattura">
         <title>Descrizione cliente/fornitore fattura</title>
         <type>d:text</type>
         <mandatory>true</mandatory>
      </property>
   </properties>
   
   <mandatory-aspects>
      <aspect>cm:versionable</aspect>
   </mandatory-aspects>         
   
</type>
<aspects>
   <aspect name="cm:versionable">
      <title>Versionable</title>
      <properties>
         <property name="cm:versionLabel">
            <title>Version Label</title>
            <type>d:text</type>
            <protected>true</protected>
         </property>         
         <property name="cm:initialVersion">
            <title>Initial Version</title>
            <type>d:boolean</type>
            <default>false</default>
         </property>
         <property name="cm:autoVersion">
            <title>Auto Version</title>
            <type>d:boolean</type>
            <default>true</default>
         </property>
         <property name="cm:autoVersionOnUpdateProps">
            <title>Auto Version - on update properties only</title>
            <type>d:boolean</type>
            <default>false</default>
         </property>         
      </properties>
   </aspect>
</aspects>

      
ma ho degli errori nel log, cosa sbaglio? E' corretto come sto facendo?
Grazie e saluti





2 Replies
openpj
Moderator
Moderator

Re: Versioning di content con stessi metadati

Potresti condividerci il codice Java e l'errore sul log?
monocromo
Member II

Re: Versioning di content con stessi metadati

Scusa il ritardo, ecco il codice. Nel log non ci sono errori.


public boolean uploadFile(File fileUpload,File fileXML) throws Exception
    {
      String metaDati[][];
      
      try
        {
         // Avvio sessione
           AuthenticationUtils.startSession(user, password);                   
                 
           // Referenza al nodo padre in cui inserire il documento
            Store storeRef = new Store(Constants.WORKSPACE_STORE, "SpacesStore");
            ParentReference companyHomeParent = new ParentReference(storeRef, null, percorsoRepository, Constants.ASSOC_CONTAINS, null);
                       
            // Richiesta del repository service e del contet service
            RepositoryServiceSoapBindingStub repositoryService = WebServiceFactory.getRepositoryService();
            ContentServiceSoapBindingStub contentService = WebServiceFactory.getContentService();
           
            // Nome del documento
            companyHomeParent.setChildName("cm:" + fileUpload.getName());
           
            //metaDati2(percorsoFile);
          String valori[][]=metaDati(fileXML.getPath());
           
            //Vettori delle proprietà
           NamedValue[] customProps = new NamedValue[numeroProprieta(valori)];
          NamedValue[] standardProps = new NamedValue[3];                    
          
                              
          //Assegnazione ai vettori delle proprietà
          int i=0;          
          
          while(i<=customProps.length - 1)
          {          
             customProps = Utils.createNamedValue(Constants.createQNameString("http://www.feniceevo.it/model/content/1.0',valori[0]),valori[1]);             
             i++;
          }
          //customProps[0]= Utils.createNamedValue(Constants.createQNameString("http://www.feniceevo.it/model/content/1.0','tipo"),"fattura");
          //customProps[1] = Utils.createNamedValue(Constants.createQNameString("http://www.feniceevo.it/model/content/1.0','data"),"2012-01-01T00:00:00.000Z");
                    
            standardProps[0] = Utils.createNamedValue(Constants.PROP_TITLE, fileUpload.getName());
            standardProps[1] = Utils.createNamedValue(Constants.PROP_NAME, fileUpload.getName());
            standardProps[2] = Utils.createNamedValue(Constants.PROP_DESCRIPTION, "");
                       
            //Costrutto CML per aggiungere titolo al file
            CMLAddAspect addAspect = new CMLAddAspect(Constants.ASPECT_TITLED, standardProps, null, "1");
           
            //Upload file standard
            //CMLCreate create = new CMLCreate("1", companyHomeParent, companyHomeParent.getUuid(), Constants.ASSOC_CONTAINS, null, Constants.PROP_CONTENT, contentProps);
           
            //Upload file custom           
            //CMLCreate create = new CMLCreate("1", companyHomeParent, companyHomeParent.getUuid(), Constants.ASSOC_CONTAINS, null, "{http://www.feniceevo.it/model/content/1.0}docCommerciale", contentProps);
            CMLCreate create = new CMLCreate("1", companyHomeParent, companyHomeParent.getUuid(), Constants.ASSOC_CONTAINS, null, "{http://www.feniceevo.it/model/content/1.0}" + customProps[0].getValue(), customProps);
           
            // Blocco create CML
            CML cml = new CML();
            cml.setCreate(new CMLCreate[] {create});
            cml.setAddAspect(new CMLAddAspect[] {addAspect});
           
            //Creazione effettiva del nodo
            UpdateResult[] result = WebServiceFactory.getRepositoryService().update(cml);    
            Reference content = result[0].getDestination();

            //Scrittura del contenuto           
            ContentFormat contentFormat = new ContentFormat(this.mimeType(fileUpload.getName()), "UTF-8");
            Content contentRef = contentService.write(content, Constants.PROP_CONTENT, this.readFromFile(new File(fileUpload.getPath())), contentFormat);
           
            System.out.println("File caricato: " + fileUpload.getName());
            System.out.println();
           
            JOptionPane.showMessageDialog(null,"File " + fileUpload.getName() + " caricato con successo.","Operazione eseguita.",JOptionPane.INFORMATION_MESSAGE);
            return true;
           
        }
        catch(Throwable e)
        {
           JOptionPane.showMessageDialog(null,"Attenzione, file non caricato o sistema non raggiungibile.","Errore",JOptionPane.ERROR_MESSAGE);
            System.out.println(e.toString());
            return false;
        }
        finally
        {
            // Fine della sessione
            AuthenticationUtils.endSession();          
        }       
    }