Поделиться через


Обработка действий рабочего процесса в SharePoint Foundation

Дата последнего изменения: 16 апреля 2010 г.

Применимо к: SharePoint Foundation 2010

Очень важно понимать, каким образом Microsoft SharePoint Foundation обрабатывает действия рабочего процесса, относящиеся к SharePoint Foundation, в работающем экземпляре рабочего процесса.

SharePoint Foundation выполняет рабочий процесс, пока не достигнет точки, в которой дальнейшая обработка невозможна, поскольку ожидается возникновение некоторого события: например, пользователь должен пометить задачу как выполненную. Только в этой "точке подтверждения" SharePoint Foundation фиксирует изменения, внесенные предыдущими действиями рабочего процесса, относящегося к SharePoint Foundation. Эти изменения группируются в одну транзакцию SQL. У такого подхода имеется два главных преимущества.

  • Группировка изменений в одну транзакцию SQL поглощает меньше ресурсов, чем фиксация каждого изменения по мере возникновения в отдельной транзакции.

  • Если при фиксации каких-либо изменений произошел сбой, то SharePoint Foundation откатывает все изменения к предыдущей "точке подтверждения". Это существенно сокращает объем работ, который должны выполнить разработчики при создании обработчиков исключений и обработчиков компенсаций для действий рабочих процессов, относящихся к Windows SharePoint Services.

Когда событие, которое ожидает рабочий процесс, происходит, SharePoint Foundation возобновляет выполнение рабочего процесса. Рабочий процесс опять выполняется до следующего события или до завершения, и в этой точке SharePoint Foundation фиксирует все изменения, внесенные действиями рабочего процесса, относящегося к SharePoint Foundation, после предыдущей точки фиксации. Это продолжается до тех пор, пока рабочий процесс не достигнет своего конца или не будет остановлен пользователем.

Такой подход может влиять на рабочие процессы, в которых действия Code распределены с помощью действий рабочих процессов, относящихся к SharePoint Foundation. Хотя операции записи для действий рабочих процессов, относящихся к SharePoint Foundation, группируются и не фиксируются, пока не будет достигнута точка фиксации, любые операции записи, включенные в действия Code, фиксируются сразу по мере возникновения. Кроме того, в действиях Code отсутствует функциональная возможность неявного отката действий рабочих процессов, относящихся к SharePoint Foundation; если для них требуется обработка ошибок, необходимо написать обработчики исключений и компенсаций для таких действий.

См. также

Концепции

Действия рабочих процессов для SharePoint Foundation

Токены корреляции в рабочих процессах

Инициализация рабочего процесса в SharePoint Foundation