#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);
}