我需要使用tridion中的核心服务以编程方式获取出版物的本地化项目列表。任何人都可以建议我。
答案 0 :(得分:9)
我会使用GetListXml方法并指定一个BluePrintChainFilterData过滤器对象。
var subjectId = "[TCM Uri of your item]";
var filter = new BluePrintChainFilterData
{
Direction = BluePrintChainDirection.Down
};
var subjectBluePrintChainList = coreServiceClient.GetListXml(subjectId, filter);
然后,您仍需要验证收到列表中的本地化项目。
这不是我原来的答案,可能还不完整,因为我没有考虑名称空间,但以下内容可用于选择本地化(非共享)项目。
var localizedItems = subjectBluePrintChainList.Elements("Item")
.Where(element => "false".Equals(element.Attribute("IsShared").Value, StringComparison.OrdinalIgnoreCase));
答案 1 :(得分:4)
我知道的唯一方法是使用搜索功能:
var searchQuery = new SearchQueryData();
searchQuery.BlueprintStatus = SearchBlueprintStatus.Localized;
searchQuery.FromRepository = new LinkToRepositoryData{IdRef = "tcm:0-5-1"};
var resultXml = ClientAdmin.GetSearchResultsXml(searchQuery);
var result = ClientAdmin.GetSearchResults(searchQuery);