2015-03-25 12 views
2

У меня уже есть элемент контента (элемент) с шаблоном A. Шаблон A не установил какой-либо рабочий процесс изначально, и я установил новый рабочий процесс в стандартное значение шаблона.Рабочий процесс Sitecore не работает

Если я перейду к разделу рабочего процесса элемента контента, обновляется только «По умолчанию рабочий процесс». Поля «Workflow» и «State» пусты, даже я установил «Initial State» в свойстве рабочего процесса, как показано ниже. Таким образом, рабочий процесс не работает над этим элементом.

Однако, если я создаю новый элемент с уже установленным рабочим процессом шаблона, я мог бы видеть все заполненные поля рабочего процесса на основе его первоначальной настройки рабочего процесса. Таким образом, рабочий процесс отлично работает.

У меня есть несколько страниц без настройки рабочего процесса, и я собираюсь назначить новый рабочий процесс в его шаблонах.

Как я могу решить эту проблему ???????


enter image description here

+0

Вы установили рабочий процесс в поле «По умолчанию» в самом шаблоне или в «Стандартных значениях» шаблона? Кроме того, вы вошли в систему как администратор или «обычный» пользователь? – jammykam

+0

В стандартном значении шаблона я устанавливаю только поле «По умолчанию рабочий процесс» и поля «Рабочий поток» и «Состояние» пусты в стандартном значении шаблона. – Jay

+0

Вы вошли в систему как администратор? – jammykam

ответ

2

Я использовал скрипт Powershell и все выглядит так. Он обновляет пустое поле и отлично работает.

################################################################## 
## 1. Set default workflow state in template's standard value ## 
## 2. Before running script, must set correct Context Item  ## 
################################################################## 

function SetWorkflow($item) 
{ 
    ## Update only items assigned __Default workflow 
    if ($item."__Default workflow" -eq "{A5BC37E7-ED96-4C1E-8590-A26E64DB55EA}") { 
     $item.__Workflow = "{A5BC37E7-ED96-4C1E-8590-A26E64DB55EA}"; 
     $item."__Workflow state" = "{190B1C84-F1BE-47ED-AA41-F42193D9C8FC}"; 
    } 
} 

## Update correct workflow information. 
get-item . -Language * | foreach-object { SetWorkFlow($_) } 
get-childitem . -recurse -Language * | foreach-object { SetWorkFlow($_) } 

## Show Updated Result 
get-item . -Language * | Format-Table Id, Name, Language, __Workflow, "__Workflow state", "__Default workflow" 
get-childitem . -recurse -Language * | Format-Table Id, Name, Language, __Workflow, "__Workflow state", "__Default workflow" 
+0

Просто подскажите тем, кто хочет реализовать/запустить этот скрипт: вы должны добавить проверку в операторе if, чтобы поля состояния Workflow и Workflow были пустыми, прежде чем перезаписывать их. – Paul

1

При установке значения рабочего процесса по умолчанию на стандартном пункте значения она не автоматически и пройти и добавить существующие версии элемента в определенное состояние рабочего процесса. Это связано с тем, что любой контент, который был ранее опубликован, станет неопубликованным, так как он перейдет в состояние рабочего процесса по умолчанию, которое обычно является состоянием проекта.

В следующий раз, когда вы добавите версию к элементу, который теперь имеет рабочий процесс (явно или «редактируя» как пользователь более низкого уровня), его состояние должно быть настроено на черновик, как вы ожидали.

Если вам нужно перенести существующие версии элементов в рабочий процесс в определенном состоянии, вам, вероятно, понадобится сделать это с помощью кода.

+0

Спасибо, однако, в комментарии «любой контент, который был ранее опубликован, станет неопубликованным, поскольку он перейдет к состоянию по умолчанию рабочего процесса, который обычно является состоянием проекта», я не знаю, правильно ли это. Я тестировал с опубликованными и неопубликованными предметами, и была та же проблема. – Jay

Смежные вопросы