Внутри рабочего процесса я хочу обработать ошибку, такую как невозможность поиска имени пользователя, которому я хочу назначить задачу. Таким образом, имя пользователя не существует, я собираюсь уведомить администратора по электронной почте об этом, записать его в историю рабочего процесса и затем прекратить рабочий процесс.
Вопрос в том, как прекратить рабочий процесс изнутри рабочего процесса, как если бы я нажимал кнопку «Завершить рабочий процесс» на веб-странице SharePoint.
[Update]
Я пробовал SPWorkflowManager.CancelWorkflow (), который действительно отменяет рабочий процесс, но не сразу. То, что происходит, - это код для отмены запусков, но затем мой рабочий процесс продолжает создавать следующую задачу, а затем переходит в спящий режим, когда он выполняет следующие задачи в операции TasksChanged. Только после того, как он переходит в спящий режим, рабочий процесс прерывается, а не при вызове CancelWorkflow.
Это вызывает очевидную проблему: я не хочу, чтобы была создана следующая задача. Я звоню CancelWorkflow, потому что я хочу, чтобы он отменил то и дело.