#sql #filenet-p8 #filenet #filenet-content-engine
#sql #filenet-p8 #filenet #filenet-content-engine
Вопрос:
Я ищу способ повторить попытку и при необходимости удалить все документы, расположенные внутри дерева данного корневого каталога, со всеми их версиями, а не только с текущей.
Самым простым способом может быть SQL-запрос с пакетным удалением. Поскольку предыдущие версии документа не хранятся в папке, я решил сделать это следующим образом:
- Выполните
SELECT
запрос к классу Document - Добавьте a
LEFT JOIN
между версией документа (Document AS doc
) и другими версиями (Document AS doc2
), используя ключ version_series . - Фильтр для получения только текущей версии из других версий (
doc2.IsCurrentVersion = true
) - Файл для получения только документов, текущая версия которых хранится в данном дереве папок (
INSUBFOLDER clause
)
Дополнительный шаг:
- Левый присоединяется к
ReferentialContainmentRelationShip
Folder
классам и, чтобы получить имя пути к папке текущей версии документа
Окончательный запрос выглядит следующим образом:
SELECT doc.this,
doc.majorversionnumber AS "MAJV",
doc.minorversionnumber AS "MINV",
doc.IsCurrentVersion AS "Is Current",
doc2.This AS "Current version",
f.pathname AS "Current version folder"
FROM ((Document doc
LEFT JOIN Document doc2 ON
doc2.VersionSeries = doc.VersionSeries)
LEFT JOIN ReferentialContainmentRelationShip rcr ON
doc2.VersionSeries = rcr.VersionSeries)
LEFT JOIN Folder f ON f.This = rcr.tail
WHERE doc2.IsCurrentVersion = true AND
doc2.this INSUBFOLDER '/path/to/a/folder'
ORDER BY doc2.This
Является ли это хорошим и не излишним способом достижения цели?
Ответ №1:
Удаление документа приведет к удалению всех версий. Вам нужно будет понизить статус, чтобы просто удалить текущую версию.