logo

Получение подпапок заданной папки в сценарии

Пусть известен Id некоторой папки, для которой необходимо получить список ее подпапок. Id папки всегда можно посмотреть, находясь на странице данной папки: это будет последнее число в адресной строке браузера. Для поиска подпапок необходимо создать фильтр с критерием поиска (в данном случае в качестве критерия будет выступать Id родительской папки) и применить его к объектам типа Folder.

Пример сценария с использованием PublicAPI

Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.12.1 включительно.

Пространство имен:

using EleWise.ELMA.API;
using EleWise.ELMA.Documents.Models;

Текст сценария:

var childrens = PublicAPI.Docflow.Folder.GetAllChildren(PublicAPI.Docflow.Folder.LoadOrNull(36)).OfType<IFolder>().ToList();

Пример сценария без использования PublicAPI

Пространства имен:
using EleWise.ELMA.Documents.Managers;
using EleWise.ELMA.Documents.Models;
using EleWise.ELMA.Model.Managers;
using EleWise.ELMA.Services;
Пример сценария:
//создание фильтра
var filter = new InstanceOf<IDmsObjectFilter> {
New = {
         //критерий для фильтра - родительская папка, загрузим ее по id
    	 Folder = (Folder)FolderManager.Instance.LoadOrNull(10),    				
      }
}.New;
//применим фильтр к объектам Foler, получив тем самым список подпапок родительской папки
var folderz = EntityManager<Folder>.Instance.Find(filter, null).ToList();
В результате выполнения сценария в локальной переменной folderz окажется искомый список подпапок. Вы можете переписать его в контекстную переменную или обработать далее в сценарии, используя указанную локальную переменную.