2012-12-06 18 views
6

Ho provato ad applicare un filtro per PublishTransactionState quando si utilizza l'operazione GetSystemWideList sul servizio principale (SDL Tridion 2011 SP1).Utilizzo del filtro PublishTransactionState in GetSystemWideList non funziona

Se provo a impostare valori di filtro come PublishTransactionState.ScheduledForPublish o PublishTransactionState.WaitingForPublish non ottengo risultati, anche se so per certo che ci sono transazioni di pubblicazione con questo stato nella coda.

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

Con la linea filter.PublishTransactionState abilitato, il servizio principale restituisce sempre 0 risultati. Con questa riga commentata otterremo l'elenco delle transazioni di pubblicazione come previsto, questo include alcune transazioni con stato SceduledForPublish.

Altri filtri, come il filtro StartDate funzionano come previsto.

Chiunque ha questo funzionamento?

+1

Posso facilmente riprodurre il problema: esistono chiaramente risultati con 'State = ScheduleForPublish', ma l'aggiunta di tale condizione al filtro non restituisce risultati. –

+0

@FrankvanPuffelen: Grazie per la tua conferma. Con mia sorpresa ho appena notato che il filtro su PublishTransactionState.Success funziona correttamente. Inoltre, si ottiene lo stesso comportamento quando si applicano questi filtri nella coda di pubblicazione nella CME. –

+0

Bella domanda, potremmo interessarti ad aderire alla [specifica specifica di Area 51 Tridion] (http://area51.stackexchange.com/proposals/38335/tridion?referrer=gPujQMxthNCNn9xqeeO2NA2). Iscriviti con lo stesso account SO se hai un momento. –

risposta

4

Si tratta di un problema noto che è stato fissato nel 2013.

Non v'è alcun hotfix disponibili in questo momento, ma si può lavorare intorno ad esso richiedendo la lista senza impostare la proprietà PublishTransactionState e poi post-elaborazione il risultato .

+0

Assicurati di impostare un intervallo di date in futuro in quel caso, altrimenti finirai per recuperare più transazioni del necessario. –

+0

Sì, l'esempio di codice mostrava già l'StartDate, impostato su un giorno indietro, nel caso in cui l'editore fosse un po 'occupato. //filter.StartDate = DateTime.Today.AddDays (-1); Avrà un bel po 'di prestazioni quando il sistema elabora molte transazioni di pubblicazione. Potresti finire a guadare attraverso 100rd di transazioni di pubblicazione per filtrare un paio di quelle programmate. –

+0

Trovato alcune ulteriori informazioni nel database CM. La colonna STATE nella tabella PUBLISH_TRANSACTIONS ha il valore 0 anziché 1 (Pianificato per la pubblicazione). Probabilmente un bug, perché lo stato 0 non esiste. Panoramica degli stati di pubblicazione: sdllivecontent.sdl.com/LiveContent/content/en-US/ –

Problemi correlati