AnsweredAssumed Answered

Scrivere campi di cmis:document di un documento customizzato

Question asked by carminepat on May 20, 2014
Latest reply on May 21, 2014 by carminepat
Buongiorno a tutti :-) Vi illustro brevemente il mio problema:
- sto utilizzando Alfresco 4.2.c ed utilizzo le API all'indirizzo http://miohost/alfresco/cmisatom
- ho creato il mio modello di documento personalizzato (modello_mio.xml) in tomcat/shared/classes/alfresco/extension ed importato in custom-model-context.xml il riferimento. Ho modificato opportunamente il file web-client-config-custom.xml e dall'interfaccia web di alfresco, posso importare documenti tipizzati secondo il mio modello personalizzato, e configurare tranquillamente tutte le proprietà.
- per mettere a fattor comune alcune proprietà che mi occorrono in tutti i documenti che manipolerò con Alfresco, ho inoltre modificato (all'interno di /tomcat/webapps/alfresco/WEB-INF/classes/alfresco/model) il file "cmisModel.xml" aggiungendo due campi. Anche con questa modifica tutto continua a funzionare (dopo il riavvio) ed esplorando con cmisWorkbench alcuni file o effettuando le query su documenti di tipo "cmis:document" appaiono anche le due nuove proprietà configurate.
- Il problema si verifica nel momento in cui (utilizzando le API di opencmis di apache chemistry) devo importare da codice java dei documenti in Alfresco (cosa tra l'altro già fatta spesso con successo) in questo caso un pò particolare. Riesco a settare tutte le proprietà del mio modello personalizzato di documento opportunamente, riesco ad importare tutti i ".pdf" in alfresco, ma non riesco a settare con successo le proprietà di cmis:document che ho aggiunto. Stranamente, pur osservando il log di alfresco (oltre a racchiudere il mio codice in try–>catch) non si verificano eccezioni e tutto va a buon fine, pur rimanendo bianche e senza i valori settati le proprietà aggiunte in cmis:document

Nella speranza di farmi comprendere meglio vi allego qui di seguito un estratto di codice esplicativo della mia situazione:

String fol=dao.getRepoDirRoot()+"/"+items.get(0).getFolderName();
CmisObject folderContainsDocument = dao.getSession().getObjectByPath(fol);
Folder openDataF=null;           

if (folderContainsDocument!=null && folderContainsDocument instanceof Folder) {
            myFolder=(Folder)folderContainsDocument;
}

Map<String, Object> properties = new HashMap<String, Object>();
            properties.put(PropertyIds.OBJECT_TYPE_ID, "myObjectTypeId:myObjectTypeId");
            properties.put("myProperties","hisValue"); // qui setto le proprietà del mio documento e in alfresco
// queste proprietà sono ben popolate. Questo succede per tutte le proprietà del mio modello di documento

            properties.put(CMISPROPERTY,"value"); // qui setto le proprietà di cmis, così come mappate in cmisModel.xml che poi sono bianche in alfresco
            //Infine creo un inpuStream e poi il contentStream del documento e creo il documento


myFolder.createDocument(properties, contentStream, VersioningState.MAJOR);

la mia domanda è: come faccio a scrivere i valori che desidero in quelle proprietà??? Sto sbagliando qualcosa???

Outcomes