3

我正在使用 Tridion Core Service 来获取从特定目标上的出版物中发布的所有组件。代码如下。由于可能有很多组件,并且使用此代码获得的结果包含所有项目,有没有办法缩小结果范围(如提供 ItemType 和递归为 false)。

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");
4

1 回答 1

2

首先,您的代码将始终返回 null,因为ListBaseColumns.IdAndTitle没有ItemType属性。缩小结果范围的唯一方法是您可以在 上找到的属性PublishTransactionsFilterData,它们是:

  • EndDate, StartDate 仅在此时间戳内搜索

  • 优先级,如果你知道的话

  • 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" />

您可以对任何属性进行后过滤

于 2013-03-11T14:00:45.200 回答