Может ли кто-нибудь опубликовать код OpenCMIS, необходимый для создания нового документа, а затем обновить этот документ, обновив его поток контента? Я не хочу потерять исходный документ - я хочу сохранить историю версий по мере обновления новых документов. Я использую Alfresco, но это должно быть применимо к любому хранилищу CMIS.Создавать и обновлять документы при сохранении истории версий с помощью OpenCMIS
ответ
В Alfresco, чтобы создать новую версию, просто получите частную рабочую копию, которая будет возвращена вам после проверки, обновите поток контента PWC, а затем верните его обратно. Alfresco будет управлять версиями для вас. Вот пример.
Folder folder = (Folder) getSession().getObjectByPath("/cmis-demo");
String timeStamp = new Long(System.currentTimeMillis()).toString();
String filename = "cmis-demo-doc (" + timeStamp + ")";
// Create a doc
Map <String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document");
properties.put(PropertyIds.NAME, filename);
String docText = "This is a sample document";
byte[] content = docText.getBytes();
InputStream stream = new ByteArrayInputStream(content);
ContentStream contentStream = getSession().getObjectFactory().createContentStream(filename, Long.valueOf(content.length), "text/plain", stream);
Document doc = folder.createDocument(
properties,
contentStream,
VersioningState.MAJOR);
System.out.println("Created: " + doc.getId());
System.out.println("Content Length: " + doc.getContentStreamLength());
System.out.println("Version label:" + doc.getVersionLabel());
// Now update it with a new version
if (doc.getAllowableActions().getAllowableActions().contains(org.apache.chemistry.opencmis.commons.enums.Action.CAN_CHECK_OUT)) {
doc.refresh();
String testName = doc.getContentStream().getFileName();
ObjectId idOfCheckedOutDocument = doc.checkOut();
Document pwc = (Document) session.getObject(idOfCheckedOutDocument);
docText = "This is a sample document with an UPDATE";
content = docText.getBytes();
stream = new ByteArrayInputStream(content);
contentStream = getSession().getObjectFactory().createContentStream(filename, Long.valueOf(content.length), "text/plain", stream);
ObjectId objectId = pwc.checkIn(false, null, contentStream, "just a minor change");
doc = (Document) session.getObject(objectId);
System.out.println("Version label is now:" + doc.getVersionLabel());
}
При запуске он выдает это:
Created: workspace://SpacesStore/d6f3fca2-bf9c-4a0e-8141-088d07d45359;1.0
Content Length: 25
Version label:1.0
Version label is now:1.1
Done
Большое спасибо ... Я хочу знать еще одну вещь, как мы можем изменить ярлык как 2.0 вместо 1.1 ?? – user2106213
Да, вы просто изменили бы главный флаг с false на true, так что вы бы сделали это: ObjectId objectId = pwc.checkIn (true, null, contentStream, «это один из основных изменений»); –
Спасибо, Джефф ... Ты гений – user2106213
- 1. Клиент OpenCmis - создавать метки alfresco
- 2. ConnectionException при сохранении новой истории
- 3. Как программно создавать/обновлять файл TAGS с помощью emacs?
- 4. Создавать документы API с помощью Javadoc
- 5. Объединение подмодулей Git назад при сохранении истории
- 6. Как перезаписывать и обновлять документы с помощью PyMongo?
- 7. Создание общедоступного подмножества репозитория при сохранении истории
- 8. Разделение файлов при сохранении истории в SVN
- 9. сила уникальных полей при сохранении встроенные документы
- 10. Перезапись git-ветки при сохранении истории
- 11. рельсы обновлять и создавать с помощью шаблона формы
- 12. Как динамически создавать HTMLElement и обновлять innerHTML с помощью window.setInterval
- 13. Как запрашивать и обновлять все документы массив
- 14. Django - НИКОГДА не обновлять столбец при сохранении
- 15. Не создавать записи истории при изменении хэша
- 16. Bitbucket проигрывает на истории версий
- 17. Журнал истории контроля версий IntelliJ
- 18. Справочные документы с ObjectId при сохранении в мангуста
- 19. Ошибка Matlab при открытии «При сохранении истории команд произошла ошибка»
- 20. MEAN MongoDB заменить коллекцию и создавать документы
- 21. Скачать документ из alfresco с помощью opencmis
- 22. Получить свойства расширения Alfresco с помощью OpenCMIS
- 23. Paperclip Проблема - не может обновлять и создавать
- 24. Создавать документы API через код с помощью API Blueprint
- 25. Applescript: Сохранить документы Word как открытый текст при сохранении акцентов
- 26. Opencmis CmisPermissionDeniedException
- 27. Как закрыть соединения OpenCMIS
- 28. ElasticSearch 5, документировать время, чтобы жить, создавать и обновлять
- 29. update_or_create не обновлять/создавать объекты
- 30. Манипулирование списком данных при сохранении истории всех элементов
что вы имеете в виду "поддерживать версию"? Например, вы хотите сохранить или изменить номер версии? – skuro
, когда я обновляю документ с помощью document.setContentStream (..), он должен сам изменить версию и изменить содержимое документа и сохранить оба документа в версии History. Я хочу как это – user2106213
не могли бы вы отправить код для создания документа ?? с контролем версий? – user2106213