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 に答える