6

在核心服务(SDL Tridion 2011 SP1)上使用 GetSystemWideList 操作时,我尝试为 PublishTransactionState 应用过滤器。

如果我尝试设置像 PublishTransactionState.ScheduledForPublish 或 PublishTransactionState.WaitingForPublish 这样的过滤器值,我不会得到任何结果,即使我确定队列中有具有此状态的发布事务。

var filter = new PublishTransactionsFilterData {ForRepository = new LinkToRepositoryData {IdRef = "tcm:0-69-1"}};
filter.PublicationTarget = new LinkToPublicationTargetData { IdRef = "tcm:0-1-65537" };
filter.PublishTransactionState = PublishTransactionState.ScheduledForPublish;
//filter.StartDate = DateTime.Today.AddDays(-1);

var transactions = coreServiceSession.GetSystemWideList(filter);
Console.WriteLine(transactions.Count() + " publish transactions");

启用 filter.PublishTransactionState 行后,核心服务始终返回 0 个结果。注释了这一行后,我们将按预期获得发布交易的列表,其中包括一些状态为 SceduledForPublish 的交易。

其他过滤器,如 StartDate 过滤器按预期工作。

有人有这个工作吗?

4

1 回答 1

4

这是一个已知问题,已在 2013 年修复。

目前没有可用的修补程序,但您可以通过请求列表而不设置 PublishTransactionState 属性然后对结果进行后处理来解决它。

于 2012-12-06T14:48:21.597 回答