在核心服务(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过滤器按预期工作。
任何人都有这个工作吗?
答案 0 :(得分:4)
这是一个已知的问题,已于2013年修复。
目前没有可用的修补程序,但您可以通过请求列表而不设置PublishTransactionState属性然后对结果进行后处理来解决此问题。