【问题标题】:how do I use ClassifiedItemsFilterData for folders in Tridion 2011 CoreService?如何将 ClassifiedItemsFilterData 用于 Tridion 2011 CoreService 中的文件夹?
【发布时间】:2012-07-21 13:54:41
【问题描述】:

我正在重写一个 .NET 后端应用程序,以便它使用 Tridion 2011 CoreService。 有一部分它会在 Tridion 中获得一个使用特定关键字的文件夹。 在当前设置中,这是通过在关键字本身上调用方法“GetListClassifiedItems”来完成的,但我想如何使用 CoreService 来做到这一点?

CoreService API 中有一个ClassifiedItemsFilterData,但我该如何使用它呢?

我试过这段代码:

ClassifiedItemsFilterData filter = new ClassifiedItemsFilterData()
{
    ItemTypes = new ItemType[] { ItemType.Folder }
};

XElement list = client.GetListXml("tcm:113-363331-1024", filter);

但它只会返回关键字本身,URI tcm:113-363331-1024,而不是已经用它分类的文件夹。

如果我也将组件 ItemType 添加到过滤器中,我将获得所有已使用此关键字分类的组件 k,但仍不是该文件夹

我如何也获得文件夹?

【问题讨论】:

    标签: tridion tridion-2011


    【解决方案1】:

    当我运行类似的测试时,我确实在我的结果中同时获得了文件夹和组件

    var filter = new ClassifiedItemsFilterData();
    filter.ItemTypes = new ItemType[] {ItemType.Folder};
    var transactions = client.GetListXml("tcm:1-134-1024", filter);
    Console.WriteLine(transactions.ToString());
    

    我将关键字字段添加到元数据架构并将其与文件夹相关联。是不是和你做的一样?

    当我从上面的代码中删除项目类型过滤器时,我会根据该关键字获得所有组件和文件夹,但我确实没有获得关键字本身。这些都是我希望ClassifiedItemsFilterData 工作的方式,所以我们真的应该关注你的场景中的不同之处。

    【讨论】:

    • 我正在尝试重现我得到的结果,但我不能。它现在似乎工作正常,在我的代码中也是如此。我之前的代码中一定漏掉了一些逻辑错误……抱歉,各位,感谢您的宝贵时间!
    • 不客气,Reinder。它让我有机会使用我还没有尝试过的过滤器类型。感谢您确认它也适用于您。
    猜你喜欢
    • 2012-09-11
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 2012-04-11
    • 2012-09-19
    • 1970-01-01
    相关资源
    最近更新 更多