Я ищу вызов API Tridion, чтобы получить XML, содержащий все структурные группы и страницы под ним с каким-то иерархическим отношением. На данный момент я не смог найти такой вызов API в документации SDL Tridion. В настоящее время мы используем ниже API вызова, чтобы получить список групп структуры XML RAW:Tridion API call, чтобы получить Xml, содержащий узлы структуры и страницы с каким-то иерархическим отношением
Filter filter = new Filter();
filter.Conditions["ItemType"] = 4; // Only structure groups
filter.Conditions["Recursive"] = true;
XmlElement structureGroupList = page.ContextRepository.GetListOrganizationalItems(filter);
Тогда мы перебор каждой структурной группы, чтобы получить XML, содержащий узел Страницы под repective structuregroup.
OrganizationalItemItemsFilter pageItemFilter = null;
pageItemFilter = new OrganizationalItemItemsFilter(this.session);
pageItemFilter.ItemTypes = new[] { ItemType.Page };
pageItemFilter.Recursive = false;
XmlElement pageElements = structureGroup.GetListItems(pageItemFilter);
Поскольку число групп структур растет, количество вызовов API Tridion растет, чтобы получать соответствующие страницы в нем. Это вызывает проблемы с производительностью на сервере БД, где процессор достигает 50%.
Есть ли один вызов API, который может получить группу структуры и Страницы с каким-то отношением, чтобы мы могли легко организовать их иерархически с помощью одного вызова API.
Спасибо заранее.
я попробовал этот вариант, однако, как представляется, не обеспечивают решения. С добавлением вышеприведенного свойства я мог видеть атрибут URL в tcm: узлах Item, и этот атрибут содержит имя структурной группы или страницы. Он не содержит URL-адрес webdav или любую дополнительную информацию, которую я мог бы использовать для организации иерархии. – TempTracer
Это относительный путь. Это относительно группы структуры, на которую вы переводите список. Вы можете создавать URL-адреса WebDAV самостоятельно, если знаете URL-адрес sg, на который вы отправляете список, и это свойство –