2013-05-14 2 views
2

Я пытаюсь обновить тип содержимого содержимого в alfresco через OpenCMIS.Обновление содержимого содержимого alfresco с помощью химии OpenCMIS

Рабочее место CMIS показывает тип в окнах типов, поскольку только отключенный переключатель «Policy controlable». Его локальное имя - document, имя запроса - prefix:document, а базовый тип - cmis:document.

В заводной консоли, я попытался следующие:

Folder folder = (Folder) session.getObjectByPath("/Sites/mySite"); 

CmisObject o = session.getObject(aNodeRef); 
cmis.printObjectSummary(o); 

Map<String, Object> properties = new HashMap<String, Object>(); 
properties.put(PropertyIds.OBJECT_TYPE_ID, "D:prefix:document"); 
properties.put(PropertyIds.NAME, "itsanewname!"); 

println("\n\nFrom "+PropertyIds.OBJECT_TYPE_ID+" cmis:document to " + " D:prefix:document:\n\n\n"); 

o.updateProperties(properties); 
cmis.printObjectSummary(o); 

имя обновляется в порядке, но тип содержимого остается cmis:document.

Этот код был написан на следующий пример господина Поттс себя:

properties.put(PropertyIds.OBJECT_TYPE_ID, "D:sc:whitepaper,P:sc:webable,P:sc:productRelated"); 
properties.put(PropertyIds.NAME, filename); 
properties.put("sc:isActive", true); 
GregorianCalendar publishDate = new GregorianCalendar(2007,4,1,5,0); 
properties.put("sc:published", publishDate); 

Однако, он использует этот пример фрагмент кода, чтобы создать узел, не обновления его.

Я также пробовал этот код в приложении Java, которое связано с alfresco, но безрезультатно.

ответ

4

Вы не можете изменить тип объекта после его создания через CMIS. Если вы посмотрите на определение свойства cmis: objectTypeId, вы заметите, что его обновляемость установлена ​​как «ONCREATE», а не «READWRITE».

Jeff

+0

Я ждал столько же. Спасибо кучу за ясность! –

0

Попытка сделать что-то подобное здесь.

У меня есть несколько документов, которые были первоначально загружены в виде .doc-файлов с помощью mimetype Microsoft Word (приложение/msword) на общий ресурс alfresco.

Теперь мне удалось успешно изменить расширение и обновить свойство типа mime до Microsoft Word 2007. Но, когда файл загружается и открывается с помощью слова microsoft, он выдает сообщение об ошибке, говоря, что формат файла не имеет значения, t соответствует расширению.

Я думал, что делаю это правильно, но, видимо, нет. Вот часть кода, который должен обрабатывать преобразование типа mime.

Map<String, Object> updateProperties = new HashMap<String, Object>(); 

updateProperties.put("cmis:name", changeName); 
updateProperties.put("cmis:contentStreamFileName", changeName); 
document.updateProperties(updateProperties); 

ContentStream contentStream = document.getContentStream(); 
InputStream stream = contentStream.getStream(); 
ContentStream cs1 = session.getObjectFactory().createContentStream(changeName, docLength, MimeTypes.getMIMEType("docx"), stream); 

document.setContentStream(cs1, true); 
+0

Вы должны действительно начать свой собственный вопрос. Сказав это, вы можете использовать nodebrowser, чтобы узнать, что такое mimetype после запуска этого кода обновления. Вы также можете проверить, что оценивает 'MimeTypes.getMIMEType (" docx ")'. –