2013-03-09 4 views
4

Я ищу вызов 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.

Спасибо заранее.

ответ

3

Вы можете установить IncludeRelativeWebDavUrlColumn свойства фильтра к истине, чтобы получить дополнительную информацию

+0

я попробовал этот вариант, однако, как представляется, не обеспечивают решения. С добавлением вышеприведенного свойства я мог видеть атрибут URL в tcm: узлах Item, и этот атрибут содержит имя структурной группы или страницы. Он не содержит URL-адрес webdav или любую дополнительную информацию, которую я мог бы использовать для организации иерархии. – TempTracer

+0

Это относительный путь. Это относительно группы структуры, на которую вы переводите список. Вы можете создавать URL-адреса WebDAV самостоятельно, если знаете URL-адрес sg, на который вы отправляете список, и это свойство –