У меня есть рабочий процесс, связанный с типом контента.Я пытаюсь извлечь его из кода в получателе событий того же типа контента, поэтому при обновлении элемента, если есть определенное условие (статус = готов к просмотру), я запускаю его.
// Эта строка находит связь с рабочим процессом
var assoc = properties.Web.ContentTypes["Experiment Document Set"]
.WorkflowAssociations.GetAssociationByName("Experiment Review Workflow",
ultureInfo.CurrentUICulture);
// Я пытался использовать эту строку из того, что нашел в Интернете, но она вернула бы ноль
assoc = properties.Web.WorkflowAssociations
.GetAssociationByName("Experiment Review Workflow",
CultureInfo.CurrentUICulture);
Следующая строка даетошибка:
var result = properties.Web.Site.WorkflowManager
.StartWorkflow(properties.ListItem, assoc,string.Empty,
SPWorkflowRunOptions.Synchronous);
System.ArgumentException: не удалось запустить рабочий процесс, поскольку рабочий процесс связан с типом содержимого, которого нет в списке.Перед повторным запуском рабочего процесса в список должен быть добавлен тип содержимого.
Чтобы проверить это, я просматривал тип содержимого обновляемого элемента списка, и он является правильным
properties.ListItem.ContentType.Name "Experiment Document Set"
Так что в основном у меня есть рабочий процесс, связанный с типом контента «Набор документов эксперимента».Когда я пытаюсь запустить рабочий процесс из приемника событий в «Экспериментальном наборе документов», я получаю сообщение о том, что тип содержимого «Экспериментальный набор документов» не существует в списке, что не имеет смысла.