Рабочий процесс Sitecore по умолчанию не применяется к элементам

В моей работе мы используем Sitecore 7.2. У нас есть две онлайн-формы, которые превращают отправленные материалы в элементы дерева sitecore. Эти элементы должны быть просмотрены/отредактированы редактором, прежде чем они будут перетащены из папки «представление» в папку, которая отображается на активном сайте.

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

Я применил его к полю стандартных значений как для шаблона A, так и для шаблона B. При создании новых элементов с помощью шаблона A (через отправку формы или вручную) создается элемент и прикрепляется рабочий процесс.

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

Есть ли причина, по которой «рабочий процесс по умолчанию», добавленный в «__Стандартные значения» шаблона элемента, не будет частью элементов, использующих этот шаблон?

http://i.imgur.com/QE5JuyP.png


person mikey_c    schedule 08.04.2015    source источник


Ответы (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.
## Uncomment below two lines if you are ready to go for updating    
#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"
person Jay    schedule 08.04.2015

Я столкнулся с той же проблемой. Я не понимаю, почему мой рабочий процесс по умолчанию не запускается при блокировке для редактирования или при новом создании. Если нет другого варианта, то я думаю, что мне придется пойти с ответом @Jay.

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

EDIT: Мой сценарий: сначала я установил пакет с шаблоном, затем я установил другой пакет ТОЛЬКО со стандартными значениями с установленным рабочим процессом по умолчанию. Я предполагаю, что это вызвало проблему.

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

person user2386411    schedule 28.07.2015