Есть ли способ в Documentum получить все подпапки папки? Может ли кто-нибудь предложить DQL или что-то еще, где я могу указать родительскую папку, и DQL возвращает мне путь к папке всех подпапок.
Documentum - получение списка подпапок
Ответы (2)
select distinct r_folder_path from dm_folder where folder('/Folder1/Folder2', descend)
Это вернет все папки и подпапки в папке /Folder1/Folder2.
Следует помнить одну вещь:
Documentum поддерживает связывание объектов с несколькими родительскими папками. Это означает, что у одной папки может быть несколько родительских папок.
Если у вас есть такая структура папок
Cabinet1
/Test1
/Test3
/Test2/
/Test3
Где Test3
— это подпапка Test1
но также (поскольку она может быть связана с) Test2
!
Documentum достигает этого с помощью повторяющихся атрибутов. r_folder_path
— это повторяющийся атрибут dm_folder
(на самом деле dm_sysobject
, который является его супертипом). Итак, запуск DQL:
select distinct r_folder_path from dm_folder where folder('/Folder1/Folder2', descend)
вернет все пути к папкам, частью которых является ваша папка (связанная с):
/Cabinet1/Test1/Test3
/Cabinet1/Test2/Test3
Что может быть не тем, что вы ищете!
Поскольку DQL не позволяет вам указать, какое значение повторяющегося атрибута (вы не можете указать индекс повторяющегося атрибута) будет возвращено, нет элегантного (и отказоустойчивого) способа сделать это в DQL.
Что вы можете сделать, так это получить все object_name
подпапок и добавить к ним префикс пути к родительской папке, которую вы использовали при поиске (но это с некоторым кодированием).
Ознакомьтесь с справочным руководством по системным объектам Documentum Content Server (оно доступно в сообществе разработчиков EMC или пока также здесь)