cancel
Showing results for 
Search instead for 
Did you mean: 

Problema con property datetime (Decimal properties!)

samfisher
Champ in-the-making
Champ in-the-making
Salve a tutti,
ho un problema e sono fermo su questo punto da un paio di giorni…..
Sono alle prime armi con Alfresco e sto realizzando un collegamento tramite CMIS ad Alfresco 3.4.

Ho creato un custom-type con alcuni metadati, in particolare un paio sono di type datetime:

<property name="dp:data_protocollo">
   <title>Data Protocollo</title>
     <type>d:datetime</type>
     <multiple>false</multiple>
</property>

Quando vado a creare un nuovo documento tramite CMIS ottengo un errore:

java.lang.IllegalArgumentException: Property 'dp:data_protocollo' is a Decimal property!
   at org.apache.chemistry.opencmis.client.runtime.repository.PersistentObjectFactoryImpl.convertProperties(PersistentObjectFactoryImpl.java:536)
   at org.apache.chemistry.opencmis.client.runtime.PersistentFolderImpl.createDocument(PersistentFolderImpl.java:89)

La creazione del documento con CMIS è la seguente:

Map<String, Object> properties = new HashMap<String, Object>();
properties.put("dp:data_protocollo", new Date());
folder.createDocument(properties, conStream, versioningState,null,null,null,operationContext);

Dove è che sto sbagliando?????
Grazie
alfsotti
2 REPLIES 2

openpj
Elite Collaborator
Elite Collaborator
Da quanto riesco ad intuire non viene riconosciuto il tipo del valore della nuova property.

Non sono sicuro che il codice che sto per mostrarti è compatibile con l'ultima versione di Apache Chemistry, e da parecchio che non ne scrivo una riga, però da quanto mi ricordo dovresti creare la property nel seguente modo:

CmisPropertiesType properties = new CmisPropertiesType();
ObjectFactory objectFactory = new ObjectFactory();
CmisPropertyDateTime dateTimeProp = objectFactory.createCmisPropertyDateTime();
dateTimeProp.setPropertyDefinitionId("dp:data_protocollo");
dateTimeProp.getValue().add(new Date());
properties.getProperty().add(dateTimeProp);
folder.createDocument(properties, conStream, versioningState,null,null,null,operationContext);
Spero possa aiutarti  Smiley Wink

samfisher
Champ in-the-making
Champ in-the-making
Ciao,
purtroppo ancora non sono riuscito a venirne a capo:

CmisPropertiesType properties = new CmisPropertiesType();
…….
folder.createDocument(properties, conStream, versioningState,null,null,null,operationContext);

Il createDocument che ho io vuole Map<String,?> e non un CmisPropertiesType…