Когда создаются рабочие процессы sharepoint?

#sharepoint #sharepoint-2010 #sharepoint-workflow

#sharepoint #sharepoint-2010 #sharepoint-workflow

Вопрос:

Я использую sharepoint 2010, и я застрял. У меня есть функция, у которой есть метод, дополненный функциями. В этом методе у меня есть класс, в котором я хочу иметь код, запускающий созданный мной рабочий процесс.

Итак, я сделал это

  foreach (SPListItem item in itemCollection)
     {
      SPWorkflowAssociation wfAssoc = listItem.ParentList.WorkflowAssociations[new Guid("0768433d-23b1-4797-be66-fefc486e7e08")];
     }
  

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

Итак, мне интересно, создается ли мой рабочий процесс в это время? Или это создается после запуска класса feature EventReceiver?

Я создал свой рабочий процесс в виде списка с помощью Visual Studios 2010

Ответ №1:

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

 var assoc = list.WorkflowAssociations[new Guid("...")];
var manager = site.WorkflowManager;
foreach (SPListItem item in list.Items) 
{ 
    manager.StartWorkflow(item, assoc, assoc.AssociationData, true); 
}