Программная ошибка запуска рабочего процесса Sharepoint 2010 - PullRequest
4 голосов
/ 30 декабря 2010

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

// Эта строка находит связь с рабочим процессом

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"

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

Ответы [ 2 ]

0 голосов
/ 31 августа 2011

Возможно, слишком поздно, чтобы быть полезным, но я только что узнал, что вы не можете использовать String.Empty (или null) в методе StartWorkflow.

С http://www.tonytestasworld.com/post/Howto-Start-a-Sharepoint-Workflow-Programmatically.aspx, itпохоже, что assoc.AssociationData будет работать для простого рабочего процесса без каких-либо параметров конфигурации.

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

0 голосов
/ 28 июня 2011

Убедитесь, что assoc.Enabled = true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...