5

コアサービスで構造グループTCMURIを指定して、すべての子構造グループを取得するにはどうすればよいですか?

私はこのコードを使ってみました:

ItemsFilterData sgFilter = new RepositoryItemsFilterData 
    { ItemTypes = new[] { ItemType.StructureGroup }, 
      Recursive = true, 
      BaseColumns = ListBaseColumns.Id };

XElement listXml;

using (CoreServiceClient client = _coreServiceProvider.GetCoreServiceClient())
{
    listXml = XElement.Parse(
              client.ProxyClient.GetListXml(structureGroupUri, sgFilter)
              .OuterXml);
}

しかし、「予期しないアイテムタイプ:StructureGroup」というエラーが発生しました。

4

1 に答える 1

6

パブリケーションのURIから始めて、これは機能します。

client.GetListXml("tcm:0-10-1", new RepositoryItemsFilterData { 
    ItemTypes = new[] { ItemType.StructureGroup }, 
    Recursive = true, 
    BaseColumns = ListBaseColumns.Id 
})

秘訣は常に正しいフィルタータイプを見つけることです。この場合はRepositoryItemsFilterDataです。

動作しないサンプル

構造グループのURIから開始して、これは直接の子構造グループを返します。Recursive = trueここでは無視されているように見えることに注意してください。

client.GetListXml("tcm:10-328-4", new OrganizationalItemItemsFilterData { 
    ItemTypes = new[] { ItemType.StructureGroup }, 
    Recursive = true, 
    BaseColumns = ListBaseColumns.Id 
})
于 2012-11-05T18:20:47.767 に答える