Пример рабочего процесса утверждения, который может вызываться повторно инициатором
Дата публикации исходной статьи: четверг, 16 августа 2012 г.
Привет, меня зовут Джонг Хва Лим (JongHwa Lim), я работаю менеджером проектов в группе SharePoint Designer (SPD). Сегодня я хотел бы поделиться с вами простым рабочим процессом, который отражает практические сценарии и позволяет понять, что можно сделать с помощью нового конструктора рабочих процессов SPD на основе платформы WF4.
Существует множество реальных примеров, в которых инициатор должен повторно вызывать процесс, когда обнаруживается, что с уже переданным элементом или переданной информацией что-то не так. Поэтому я хотел бы создать простой рабочий процесс, использующий конструкцию параллельных шагов и задачи из двух действий, доступные в платформе WF4.
Это базовый каркас рабочего процесса. Обратите внимание, что параллельный шаг используется для параллельного выполнения двух приемников команд (подшагов): нормального процесса утверждения и процесса повторного вызова.
Теперь я расскажу, как это работает, и продемонстрирую поведение рабочего процесса в реальном времени.
В WF4 параллельный шаг предоставляет дополнительную функцию контекстного меню. Если щелкнуть шаг правой кнопкой и выбрать "Дополнительные свойства", откроется следующее диалоговое окно, где вы можете выбрать эту функцию. Для этого вам потребуется логическая переменная, поэтому в логике выше используется переменная IsShortCut.
После завершения какого-либо из приемника команд другой приемник автоматически отменяется, а параллельный шаг завершается. Как можно видеть, один приемник содержит нормальный процесс утверждения, а другой — процесс повторного вызова. Когда рабочий процесс переходит к параллельному шагу, задачи для нормального процесса утверждения и задача процесса повторного вызова создаются параллельно. (В этом примере отправителем является Анна Вейлер (Anne Weiler).)
Если нормальный процесс утверждения завершен, нам больше не потребуется повторно вызывать рабочий процесс, поэтому повторный вызов автоматически отменяется после завершения первого приемника. Задача, созданная для повторного вызова, также удаляется из списка задач. Аналогично при завершении процесса повторного вызова после выполнения задачи повторного вызова, нормальный процесс утверждения автоматически отменяется.
Опять же, это всего лишь пример каркаса рабочего процесса. Чтобы сделать его более реалистичным, вам потребуется добавить дополнительную логику для принятия решений на основе результатов выполнения задачи и вам может потребоваться использовать настраиваемый тип контента, если вы хотите применять разные результаты, а не "Утверждено" и "Отклонено".
Более функциональный рабочий процесс может выглядеть следующим образом.
Это очень простой, но очень мощный пример рабочего процесса. Надеюсь, вам понравилась эта статья и вы нашли что-то полезное для себя для работы с рабочими процессами SPD.
Спасибо за внимание,
Джонг Хва
Это локализованная запись блога. Исходная статья находится по адресу A Sample Approval Workflow Which can be Recalled by the Initiator