2013-03-09 2 views
4

Tridion API 호출을 사용하여 모든 구조 그룹과 그 아래의 페이지에 일종의 계층 관계가있는 XML을 가져옵니다. 현재로서는 SDL Tridion 문서에서 API 호출을 찾을 수 없습니다. repective structuregroup 아래 페이지 노드가 포함 된 XML을 얻을 Tridion API를 호출하여 구조 그룹 및 페이지 노드에 계층 적 관계가있는 클래스를 가져옵니다.

Filter filter = new Filter(); 
filter.Conditions["ItemType"] = 4;  // Only structure groups 
filter.Conditions["Recursive"] = true; 
XmlElement structureGroupList = page.ContextRepository.GetListOrganizationalItems(filter); 

그런 다음 우리는 각 구조 그룹을 통해 반복된다 : 현재 우리는 구조 그룹 RAW XML의 목록을 가져 API 호출 이하로 사용하고 있습니다.

OrganizationalItemItemsFilter pageItemFilter = null; 
pageItemFilter = new OrganizationalItemItemsFilter(this.session); 
pageItemFilter.ItemTypes = new[] { ItemType.Page }; 
pageItemFilter.Recursive = false; 
XmlElement pageElements = structureGroup.GetListItems(pageItemFilter); 

구조 그룹의 수가 증가함에 따라 Tridion API 호출 수가 증가하여 해당 페이지를 가져옵니다. 이로 인해 CPU가 50 %로 급상승하는 DB 서버 끝에서 성능 문제가 발생합니다.

단일 API 호출로 계층 적으로 쉽게 정렬 할 수 있도록 구조 클래스와 페이지를 어떤 종류의 관계로 가져올 수있는 단일 API 호출이 있습니까?

미리 감사드립니다.

답변

3

당신은, 그러나 그것은 솔루션을 제공하지 않는 것 같다, 내가 그 옵션을 시도 몇 가지 추가 정보를 원하시면

+0

를 얻기 위해 true로 필터의 IncludeRelativeWebDavUrlColumn 속성을 설정할 수 있습니다. 위의 속성을 추가하면 tcm : Item 노드의 URL 특성을 볼 수 있으며이 특성은 구조 그룹 또는 페이지의 이름을 보유합니다. Webdav URL이나 계층 구조로 정렬하는 데 사용할 수있는 추가 정보가 없습니다. – TempTracer

+0

그것은 상대 경로입니다. 그것은 당신이 목록에있는 구조 그룹과 관련이 있습니다. 당신은 목록을 가져 가고있는이 웹 사이트의 URL을 알고 있다면이 WebDAV URL을 직접 만들 수 있습니다 –