2013-03-11 55 views
3

我正在使用Tridion Core Service获取从特定目标上的发布发布的所有组件。代码如下。因为可以有很多组件,并且使用此代码获得的结果包含所有项目,有没有什么办法来缩小结果(例如提供ItemType和递归为false)。的所有代码PublishTransactionFilterData中的属性缩小使用Tridion核心服务的搜索范围

var filter = new PublishTransactionsFilterData 
      { 
       PublicationTarget = new LinkToPublicationTargetData { IdRef = targetId }, 
       ForRepository = new LinkToRepositoryData { IdRef = GetPublication(publicationId)}, 
       BaseColumns = ListBaseColumns.IdAndTitle, 
      }; 

XElement t= Instance.GetSystemWideListXml(filter); 
var v = t.Elements().Where(k => k.Attribute("ItemType").Value == "16"); 
+0

嗨的后置滤波器,你有兴趣加入一个StackExchange网站的内测只是外表套上http://area51.stackexchange.com /建议/ 38335 /的tridion?在Twitter上添加我(rsleggett),我会发给你一个链接加入。 – 2013-03-12 12:08:55

回答

2

首先将始终返回null,因为由于ListBaseColumns.IdAndTitle不会有ItemType属性。来缩小结果的唯一方法是,你可以找到关于PublishTransactionsFilterData性能,它们是:

  • 结束日期,起始日期为仅搜索此时间戳内

  • 优先级,如果你知道它

  • PublishedBy,如果你知道是谁发布它

其余全是后过滤,这也行。您可以过滤XML中的所有内容。示例XML看起来是这样的:

<tcm:Item ID="tcm:0-241-66560" Title="page" Allow="24576" Deny="67108864" Icon="T64L0P0" ItemType="64" ItemID="tcm:2-72-64" State="4" StateChangeDate="2013-03-11T14:53:55" Publication="Test" PublicationTarget="Local" ItemPath="\Test\New Structure Group" Action="0" ScheduleDate="" UserId="tcm:0-11-65552" User="domain\user" Priority="4" Managed="0" /> 

您可以在任何属性