【问题标题】:BasedOnSchemas option in Tridion 2011 CoreServiceTridion 2011 CoreService 中的 BasedOnSchemas 选项
【发布时间】:2012-08-22 17:07:19
【问题描述】:

我正在尝试了解 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);

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

如何仅检索基于我的架构的那些组件?

【问题讨论】:

    标签: tridion tridion-2011


    【解决方案1】:

    不支持同时使用 BasedOnSchemasRecursive = true。去掉递归,你会发现模式过滤器起作用了。

    如果您想获得某个 Schema 的所有组件的“递归”列表,请考虑在 Schema 上执行 WhereUsed。

    GetListXml("tcm:5-59-8", new UsingItemsFilterData())
    

    【讨论】:

    • tnx Frank,删除递归选项后,我的列表只包含那些特定项目。文档中的任何地方都提到了这一点吗?我会看看 WhereUsedFilterData...
    • 为什么 Content Manager 核心服务 API 参考 CHM 中没有这个?!
    猜你喜欢
    • 2012-09-11
    • 2012-07-21
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    • 2012-09-19
    相关资源
    最近更新 更多