Как в Alfresco заменить документ в первой его версии
Alfresco Community v.5.1.0 (201605)
У документа есть несколько версий, можно ли как то подменить самую первую версию документа на другой?
Эта первая версия документа доступна по ссылке alfresco/service/api/node/content/versionStore/version2Store/{uuid},
как я понял через workspace/SpaceStore можно смотреть только последнюю версию документа.
Так же не понимаю как найти эту версию через licene
Если есть вариант сделать это с помощью JavaScript консоли, то было бы здорово.
Ответы (1 шт):
Разобрался
Через setContent() не получится, потому что предыдущие версии документов хранятся в отдельном хранилице versionStore://version2Store/ которое является READONLY.
К примеру у документа существует 3 версии, 3-я версия является текущей и нам надо заменить 1-ю версию документа на другой файл (важно чтобы mimeType совпадал, иначе нужно будет отдельно править и тип документа).
Для этого вычислим uuid первой версии документа через JacaScript Console:
// получаем текущий документ
var doc = search.findNode("workspace://SpaceStore/{uuid}");
// массив всех версий
var allVersionDoc = doc.getVersionHistory();
print(allVersionDoc);
// первой версией документа является последний элемент массива версий
var firstVersionDoc = allVersion[2];
// получаем хранилище и uuid 1-й версии (versionStore/version2Store/{uuid})
print(firstVersionDoc.getNode());
- Берем наш
versionStore://version2Store/{uuid}и идем в консоль администратора (hostname.ru/alfresco/service/admin/admin-nodebrowser) - Выбираем
Просмотр объектов-> Хранилище:workspace://version2Store-> Запрос:noderef:versionStore://version2Store/{uuid}->Выполнить - В результате поиска находим в колонке
Имяcm:contentи берем из колонкиЗначениечасть послеcontentUrl=store://у меня этоcontentUrl=store://2020/3/13/{uuid}.bin - Берем новый документ
NewDoc.pdfи переименовываем его (с изменением расширения) в{uuid}.binиз предыдущего пункта - Заходим на сервер в
D:\alfresco\alf_data\contentstore\2020\3\13{uuid}.bin и заменяем документ на вновь созданный