2012-12-06 7 views
6

Ich habe versucht, einen Filter für die PublishTransactionState anzuwenden, wenn die GetSystemWideList Betrieb auf dem Core Service (SDL Tridion 2011 SP1) verwenden.Mit PublishTransactionState Filter in GetSystemWideList funktioniert nicht

Wenn ich versuche, Filterwerte wie PublishTransactionState.ScheduledForPublish oder PublishTransactionState.WaitingForPublish einzustellen, bekomme ich keine Ergebnisse, obwohl ich sicher weiß, dass es Publizierungstransaktionen mit diesem Status in der Warteschlange gibt.

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

Mit der filter.PublishTransactionState Linie aktiviert ist, der Kern-Dienst gibt immer 0 Ergebnisse. Wenn diese Zeile kommentiert wird, erhalten wir die Liste der Veröffentlichungstransaktionen erwartungsgemäß, dies schließt einige Transaktionen mit Status SceduledForPublish ein.

Andere Filter, wie das Startdatum Filter wie erwartet.

Wer hat diese Arbeit?

+1

Ich kann dein Problem leicht reproduzieren: Es gibt eindeutig ergibt mit 'State = ScheduleForPublish', sondern dem Filter, den Zustand Zugabe lieferte keine Ergebnisse. –

+0

@FrankvanPuffelen: Danke für Ihre Bestätigung. richtig Zu meiner Überraschung funktioniert ich bemerkt nur Filterung auf PublishTransactionState.Success. Auch bekomme ich das gleiche Verhalten, wenn diese Filter in der Publishing-Warteschlange in den CME Anwendung. –

+0

Schöne Frage, könnten wir Sie Interesse an der [Area 51 Tridion spezifischen Vorschlag] (http://area51.stackexchange.com/proposals/38335/tridion?referrer=gPujQMxthNCNn9xqeeO2NA2) interessieren. Melden Sie sich mit dem gleichen SO-Konto an, wenn Sie einen Moment Zeit haben. –

Antwort

4

Dies ist ein bekanntes Problem, das im Jahr 2013

behoben wurde Es gibt kein Update jetzt verfügbar, aber Sie können die PublishTransactionState Eigenschaft durch Anfordern der Liste um ihn herum arbeiten und dann nach der Verarbeitung des Ergebnisses ohne Einstellung .

+0

Achten Sie darauf, in diesem Fall einen Datumsbereich in die Zukunft zu stellen, da Sie sonst viel mehr Transaktionen als nötig abrufen. –

+0

Ja, das Codebeispiel zeigte bereits das Startdatum, das auf einen Tag zurück gesetzt wurde, nur für den Fall, dass der Publisher etwas beschäftigt ist. //filter.StartDate = DateTime.Today.AddDays (-1); Es wird ziemlich viel Leistung haben, wenn das System viele Publishing-Transaktionen verarbeitet. Sie können bis zum 100sten der Veröffentlichungstransaktionen gehen, um einige geplante Transaktionen zu filtern. –

+0

Weitere Informationen in der CM-Datenbank gefunden. Die STATE-Spalte in der Tabelle PUBLISH_TRANSACTIONS hat den Wert 0 statt 1 (Geplant für Veröffentlichung). Wahrscheinlich ein Fehler, weil der Zustand 0 nicht existiert. Überblick über die Veröffentlichungsstatus: sdllivecontent.sdl.com/LiveContent/content/en-US/ –