Tridion 2011 CoreService中的BasedOnSchemas选项

Rei*_*Wit 9 tridion tridion-2011

我试图理解OrganizationalItemItemsFilterData过滤器中的BasedOnSchemas选项的用途.

文档清楚地说明:"获取或设置BasedOnSchemas条件以仅返回使用给定模式的项目"因此,应该只能检索特定模式的组件,对吧?

这是我的代码:

LinkToSchemaData[] schemaLinks = new[] { 
        new LinkToSchemaData { IdRef = "tcm:113-362325-8" } 
    };

OrganizationalItemItemsFilterData filter = 
    new OrganizationalItemItemsFilterData();

filter.BaseColumns = ListBaseColumns.Extended;
filter.ItemTypes = new ItemType[] { ItemType.Component };
filter.Recursive = true;
filter.BasedOnSchemas = schemaLinks;

XElement items = client.GetListXml("tcm:113-14192-2", filter);
Run Code Online (Sandbox Code Playgroud)

items但是,XElement 将包含多种类型的组件,而不仅仅是schema tcm:113-362325-8

如何只检索基于我的架构的组件?

Fra*_*len 11

使用两者BasedOnSchemas并且Recursive = true不受支持.删除递归,你会发现架构过滤器工作.

如果要获取某个Schema的所有组件的"递归"列表,请考虑在Schema上执行WhereUsed.

GetListXml("tcm:5-59-8", new UsingItemsFilterData())
Run Code Online (Sandbox Code Playgroud)