Tridion Core Service에서 GetListUsingItems 접근 방식을 사용하여 청사진 항목의 모든 하위 항목을 가져오고 싶습니다. 핵심 서비스를 통해 TOM의 구식 방식과 다른 결과를 얻었습니다 (기타). 컴포넌트 링크를 통해 내 소스 컴포넌트를 참조하는 다른 컴포넌트를 다시 얻게됩니다. 핵심 서비스에서 필터 옵션이 누락 되었습니까?Tridion 핵심 서비스를 사용하는 GetListUsingItems가 TOM보다 많은 항목을 반환합니다.
Tridion 5.3 :
Function GetLocalizedItemNodes(itemUri)
Dim tridionItem : set tridionItem = tdse.GetObject(itemUri,1)
Dim rowFilter : set rowFilter = tdse.CreateListRowFilter()
call rowFilter.SetCondition("ItemType", GetItemType(itemUri))
call rowFilter.SetCondition("InclLocalCopies", true)
Dim usingItemsXml : usingItemsXml = tridionItem.Info.GetListUsingItems(1919, rowFilter)
Dim domDoc : set domDoc = GetNewDOMDocument()
domDoc.LoadXml(usingItemsXml)
Dim nodeList : set nodeList = domDoc.SelectNodes("/tcm:ListUsingItems/tcm:Item[@CommentToken='LocalCopy']")
set tridionItem = nothing
set domDoc = nothing
set GetLocalizedItemNodes = nodeList
End Function
Tridion 2011 SP1 핵심 서비스 :
private XElement GetLocalizedItems(string itemUri)
{
XElement usingXML = null;
try
{
CoreServiceClient client = new CoreServiceClient();
client.ClientCredentials.Windows.ClientCredential.UserName = ConfigurationManager.AppSettings["impersonationUser"].ToString(); // "administrator";
client.ClientCredentials.Windows.ClientCredential.Password = ConfigurationManager.AppSettings["impersonationPassword"].ToString();
client.ClientCredentials.Windows.ClientCredential.Domain = ConfigurationManager.AppSettings["impersonationDomain"].ToString();
// original code from http://www.tridiondeveloper.com/getting-used-items-using-the-core-service
// Create a filter
UsingItemsFilterData usingItemsFilterData = new UsingItemsFilterData
{
BaseColumns = ListBaseColumns.IdAndTitle, // to specify the detail in the XML
IncludeLocalCopies = true,
ItemTypes = new[] { ItemType.Component }
};
// Get the XML by calling .GetListXml on the client (assumes you have a 'client' object already)
usingXML = client.GetListXml(itemUri, usingItemsFilterData);
}
catch (Exception ex)
{
throw;
}
return usingXML;
}
안녕 로버트의 BluePrintNodeData 객체의 당신 배열을 반환합니다 GetSystemWideList 방법을 사용할 수 있다는 것입니다. 다시 돌아 오는 구성 요소의 수에 영향을 미치지 않아야합니다 (소스 항목이 구성 요소이기 때문에)하지만 R5.3 코드가 'ItemType'행 필터를 설정한다는 점에 유의할 필요가 없습니다. 즉, 구성 요소 back)하지만 핵심 서비스 코드는 그렇지 않습니다. 이것은 총 결과 수에는 영향을 미칠 수 있지만 구성 요소의 양에는 영향을 미치지 않습니다 (설명대로). –
ItemTypes 조건을 추가했지만 여전히 관련 구성 요소와 하위 항목을 가져옵니다. 다른 아이디어? – robrtc