Как завершить рабочий процесс конечного автомата SharePoint 2010 после завершения всех задач? - PullRequest
1 голос
/ 04 марта 2012

Я новичок в SharePoint. Извините, если ответ на мои вопросы очевиден.

Первый вопрос: У меня есть рабочий процесс конечного автомата, который создает около 30 задач (некоторые из них создаются после предыдущего выполнения с использованием действия OnTaskChnage). Я должен регистрировать изменения задач и завершать рабочий процесс, когда все задачи выполнены. Я вижу 2 способа сделать это:

1) Я могу создать eventDrivenActivity для каждой из 30 задач.

OnTaskChanged 
--Code (log changes)
--If (allTaskCompleted())     //not code, but activity, what use 
----then SetState(Completed); //condition allTaskComplete() from code

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

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

SPWorkflowManager.CancelWorkflow(itemWorkflow);

но я не могу найти какую-либо информацию о том, как ее завершить (или установите для состояния «Завершено»). Может быть, я делаю что-то не так, и рабочий процесс должен завершиться сам, тогда все задачи завершены, но этого не происходит (он остается в «В процессе»).

Второй вопрос: Есть ли возможность запускать некоторый код после каждого изменения в задачах рабочего процесса (насколько я понимаю, OnWorkflowChanged и OnWorkflowModified не подходят для моих нужд) или добавить программный обработчик в мой 30 задач (не для списка задач вообще, а только для моих задач)?

Заранее спасибо. С наилучшими пожеланиями Михаил.

PS: извините за мои письма. Английский не мой родной язык.

...