2015-03-09 22 views
7

Attualmente sto lavorando a un progetto che richiede l'impostazione di un flusso di lavoro sitecore molto semplice. Sto incontrando alcune difficoltà durante la modifica degli articoli esistenti per utilizzare il mio nuovo flusso di lavoro. Questo è quello che ho fatto:Impossibile impostare il flusso di lavoro e le proprietà dello stato del flusso di lavoro sugli articoli del sitecore

Il flusso di lavoro crea una nuova versione quando un gestore di contenuti inizia a modificare un elemento e pubblica l'elemento quando si fa clic sul pulsante di invio.

Sitecore workflow items

ho aggiunto questi elementi del flusso di lavoro ai valori standard dei miei modelli:

Workflow settings of standard values of templates

Il passo successivo sarebbe quello di impostare le impostazioni del flusso di lavoro sulle voci già esistenti. Fortunatamente possiamo usare sitecore-powershell per fare questo per noi.

function SetWorkflow($item) 
{ 
    $item.__Workflow = "{DE29E564-3157-4CAB-81B1-87DF2E983517}"; 
    $item."__Workflow state" = "{27633BF0-B76A-4450-A139-BA53F6943778}"; 
} 

get-childitem . -recurse -Language * | foreach-object { SetWorkFlow($_) } 

Questo script viene eseguito senza errori.

Ora inizia il divertimento: quando ho aperto gli elementi, ho eseguito questo script sul flusso di lavoro e le proprietà dello stato del flusso di lavoro non sono cambiate. Stranamente, l'editor dice che i valori vuoti vengono ereditati dai valori standard, anche se i valori standard non sono vuoti, li ho impostati!

Workflow settings of the items

che l'avresti detto lo script forse ha fallito e che non sono stati fissati valori. Tranne quando guardo i valori in sitecore-powershell, posso vedere che i valori ci sono.

get-childitem . -recurse -Language * | Format-Table Id, Language, __Workflow, "__Workflow state" 

ID               Language             __Workflow             __Workflow state 
--               --------             ----------             ---------------- 
{208D79B1-5B42-4713-A7F9-F2109588F639}      en               {DE29E564-3157-4CAB-81B1-87DF2E983517}      {27633BF0-B76A-4450-A139-BA53F6943778} 
{208D79B1-5B42-4713-A7F9-F2109588F639}      nl-NL              {DE29E564-3157-4CAB-81B1-87DF2E983517}      {27633BF0-B76A-4450-A139-BA53F6943778} 
{3F3B1132-02DA-4E75-928F-BDB8AED5C3CD}      nl-NL              {DE29E564-3157-4CAB-81B1-87DF2E983517}      {27633BF0-B76A-4450-A139-BA53F6943778} 
{8AF23DC5-E7FE-47E3-AC65-AA3D41D81F97}      en               {DE29E564-3157-4CAB-81B1-87DF2E983517}      {27633BF0-B76A-4450-A139-BA53F6943778} 
{8AF23DC5-E7FE-47E3-AC65-AA3D41D81F97}      nl-NL              {DE29E564-3157-4CAB-81B1-87DF2E983517}      {27633BF0-B76A-4450-A139-BA53F6943778} 

etc.etc. 

Ho provato a impostare manualmente il flusso di lavoro e le proprietà dello stato del flusso di lavoro sugli articoli. Funziona un po ', posso passare attraverso il flusso di lavoro una volta. Quando viene aggiunta una nuova versione, le proprietà dello stato del flusso di lavoro e dello stato del flusso di lavoro ritornano ai valori standard "vuoti" che interrompono il flusso di lavoro per quell'elemento.

Qualcuno sa cosa sta succedendo qui? Come posso impostare il flusso di lavoro e le proprietà dello stato del flusso di lavoro una volta per tutte?

risposta

3

Nei valori standard del modello di base, hai impostato il flusso di lavoro sul campo Workflow? In realtà deve essere impostato sul campo Default workflow. Gli altri 3 campi sono campi "stato attuale", cioè memorizza in quale fase del flusso di lavoro l'elemento è attualmente inserito, questi devono essere lasciati vuoti nel modello e nei valori standard.

Maggiori informazioni dalla sezione 3.3.1 della Sitecore Workflow Reference:

Assegnazione di flussi di lavoro per prodotti che

Per impostazione predefinita, gli elementi non vengono inseriti in un flusso di lavoro al momento della creazione. Sitecore inserisce gli articoli in un flusso di lavoro se il flusso di lavoro "Iniziale" è impostato per la voce di valori standard del modello dati corrispondente. Il flusso di lavoro iniziale corrisponde al campo Flusso di lavoro predefinito nel modello standard.

+1

Felice di vedere che hai utilizzato le estensioni di PowerShell per questo e il fatto che sembra che stia verificando i suoi risultati.Ciò che mi preoccupa è il fatto che non li vedresti nell'editor dei contenuti. La mia domanda è se questo è ancora il caso. Un errore che faccio di solito quando controllo questo è che controllo l'elemento che chiamavo Get-ChildItem -Recurse on mentre lo script avrebbe funzionato solo sui suoi figli. :) Non sto dicendo che sia il caso, ma ho eseguito questi script e Content Editor Shown ha mostrato i risultati che ti aspettavi, chiedendoti semplicemente perché sarebbe diverso nel tuo caso. –

+0

Oops ... Penso di aver modificato la risposta piuttosto che aggiungere il mio commento ... Sono davvero molto dispiaciuto per quello :( –

+0

Ciao Adam, l'editor di contenuto del sitecore potrebbe non visualizzare i valori impostati dallo script di PowerShell a causa del campo dello stato __workflow e __workflow che sono i campi "stato attuale" come descritto da jammykam. PowerShell di Sitecore ha sempre funzionato come un incantesimo per i miei altri script di PowerShell.Grazie per aver creato questo fantastico strumento! –