2

我需要使用 tridion 中的 coreservice 以编程方式获取出版物的本地化项目列表。任何人都可以建议我。

4

2 回答 2

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));
于 2012-07-17T10:15:38.913 回答
5

我知道的唯一方法是使用搜索功能:

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);
于 2012-07-17T10:06:10.603 回答