2012-06-20 7 views
8

In questo momento sto avendo un problema con il flusso di lavoro sitecore. Il problema è il seguente:Problema fastidioso con i flussi di lavoro Sitecore e l'ereditarietà del valore standard

il valore standard del mio modello ha impostato i campi Flusso di lavoro e Flusso di lavoro predefinito impostati. Lo stato del flusso di lavoro è impostato su Bozza. Tuttavia, ogni volta che creo un articolo da questo modello non eredita i campi della sezione del flusso di lavoro, tutti sono vuoti

se imposto manualmente il flusso di lavoro e lo stato del flusso di lavoro per gli articoli, funziona come previsto fino allo stato finale. Tuttavia, se un autore di contenuti modifica l'articolo, viene creata una nuova versione ma viene mantenuto solo il valore del campo del flusso di lavoro, mentre lo stato del flusso di lavoro è nuovamente vuoto.

cosa sto facendo di sbagliato? perché sta succedendo? Sto usando sitecore 6.5.0

risposta

20

Il modello __Standard Values deve avere solo il set di campi Default workflow; non impostare il campo Workflow sull'elemento __Standard Values in quanto ciò insinua che l'elemento __Standard Values è esso stesso nel flusso di lavoro! Allo stesso modo, non impostare il campo State sull'elemento __Standard Values poiché ciò sta dicendo che l'elemento __Standard Values si trova in quello stato!

L'elemento del flusso di lavoro contiene un campo Initial State che definisce lo stato iniziale in cui un elemento sarà inserito (presupponendo che l'elemento utilizzi tale flusso di lavoro).

Quando si crea un oggetto, e tale elemento ha un __Standard Value con un flusso di lavoro nel campo Default Workflow, allora l'elemento avrà il suo campo Workflow impostato lo stesso del Default Workflow campo della sua __Standard Values. Lo stato in cui si trova l'articolo sarà il Initial State come definito su detto flusso di lavoro.

+1

Stiamo facendo esattamente questo, e di vedere qualcosa che non possiamo immaginare: la creazione di un elemento dall'interfaccia utente, questo funziona come lei, ma creandolo dal codice (item.Add che specifica il modello che ha il suo __flusso di default standard del flusso di lavoro impostato, dove l'elemento è una cartella di contenuto), non imposta l'elemento creato nel flusso di lavoro (il campo Flusso di lavoro rimane vuoto). Siamo perplessi su cosa potrebbe causare questo, qualche idea? – Legolas

2

Quando si crea la voce tramite l'API si sembrano avere per impostare specificamente il flusso di lavoro e lo stato esplicitamente:

Item myItem = parentItem.Add("New item", myTemplate); 
myItem.Editing.BeginEdit(); 
// set any other fields you want here 
... 
// Now explicitly set the workflow and state here on your new item 
// (make sure you get the correct GUIDs by viewing raw values on your workflow and workflow state items)... 
myItem[FieldIDs.Workflow] = "{212BCCCB-8197-45C0-81CC-621E0553C25F}"; 
myItem[FieldIDs.WorkflowState] = "{E8228D86-D780-4F34-B372-6A4D29B67AF9}"; 
myItem.Editing.EndEdit(); 

Sto assumendo che quando lo si fa attraverso l'interfaccia utente ci sono alcune condutture in più che vengono elaborati che fanno questo per te quando usi Content Editor ecc., che ignori usando l'API.

In realtà, ecco un messaggio in questione su SDN: http://sdn.sitecore.net/Forum/ShowPost.aspx?PostID=45991

+0

Non utilizzare in questo modo con Guidi codificati in modo rigido, controllare questa pagina e consultare la risposta di JRobbins su come impostarla correttamente. http://stackoverflow.com/questions/13528431/sitecore-assign-workflow-to-an-item-programmatically –

+1

@ Martin Hai perso il punto. Il codice non doveva essere pronto per la produzione: era puramente a scopo dimostrativo. D'accordo, naturalmente, non inserire ID hardcode nel codice prod. Resta il fatto che quando lo fai attraverso l'interfaccia utente ci sono alcune pipeline extra che vengono elaborate che fanno questo per te quando usi Content Editor ecc. Difficile pensare che valga il downvote – geedubb

+0

per quanto riguarda il modo "corretto" per impostare un flusso di lavoro su http: //stackoverflow.com/questions/13528431/sitecore-assign-workflow-to-an-item-programmatically: non penso che il codice proposto eccessivamente complicato con 4 (!) nidificato se le istruzioni dovrebbero essere il modo "corretto" per fare qualcosa. inoltre non sembra rispondere alla domanda: come assegnare un flusso di lavoro e uno stato del flusso di lavoro casuale a un elemento.Al contrario, sposta sostanzialmente l'elemento allo stato successivo del flusso di lavoro se lo stato successivo risulta essere lo stato desiderato – eloycm

Problemi correlati