Формы изменений рабочих процессов (SharePoint Foundation)
Дата последнего изменения: 8 апреля 2010 г.
Применимо к: SharePoint Foundation 2010
При необходимости можно разрешить изменение рабочего процесса пользователями в определенные моменты его выполнения. Например, можно разрешить назначение собственных задач другим пользователям или добавление задач в рабочий процесс. Такие возможности называются изменениями.
Для определения параметров изменений можно создать формы изменений.
Для создания изменения при разработке рабочего процесса добавьте к нему операцию EnableWorkflowModification. Возможность изменения определяется операцией EventHandlingScope, к которой добавляется операция EnableWorkflowModification. При определении изменения на страницу состояния рабочего процесса добавляется соответствующая ему ссылка. Как только операция EventHandlingScope переходит в область действия при выполнении процесса, в Microsoft SharePoint Foundation ссылка на изменение автоматически становится доступной пользователю. При выходе операции из области действия в Windows SharePoint Services ссылка на изменение удаляется со страницы состояния рабочего процесса.
При щелчке ссылки на изменение пользователь переходит к форме изменения рабочего процесса.
Определение форм изменений
Каждой форме изменения, используемой в рабочем процессе, следует назначить собственный код GUID. В SharePoint Foundation этот код GUID используется для сопоставления выбранного пользователем изменения с соответствующей формой.
Чтобы определить форму изменения, следует установить три элемента данных.
Присвойте свойству ModificationID операции EnableWorkflowModification значение кода GUID изменения.
В определении шаблона рабочего процесса присвойте атрибуту ModificationURL элемента Workflow URL-адрес формы изменения, которую следует использовать.
Если рабочий процесс содержит несколько изменений, в форме, определяемой этим атрибутом, можно запрограммировать выполнение следующих действий.
Отображение различных представлений формы на основании передаваемого в нее идентификатора изменения.
Перенаправление на отдельную форму на основании передаваемого в эту форму идентификатора изменения.
Примечание В определениях шаблонов рабочих процессов SharePoint Foundation поддерживается использование как абсолютных, так и задаваемых относительно сервера путей. Все URL-адреса следует задавать в одном из этих форматов. Например, можно использовать абсолютный ("http://site/library/page.aspx") или задаваемый относительно сервера ("/layouts/page.aspx") путь. В SharePoint Foundation не поддерживается исправление ссылок в определениях шаблонов рабочих процессов.
В определении шаблона рабочего процесса добавьте элемент Modification_guid_Name, где в качестве параметра guid укажите GUID изменения. В качестве значения этого элемента установите имя, которое следует присвоить изменению. В SharePoint Foundation это имя используется в качестве текста ссылки на изменение, которая отображается на странице состояния рабочего процесса. Например:
<Modification_GUID_Name>Add a New Reviewer</Modification_GUID_Name>
Обработка форм изменений
Как только конкретная операция EnableWorkflowModification переходит в область действия, рабочий процесс вызывает метод EnableWorkflowModification и передает в качестве его параметров два элемента данных SharePoint Foundation:
код GUID формы изменений, сохраненный в свойстве ModificationId операции;
данные, которые следует передать в форму изменения в строковой форме. Обычно передается контекст данных, сохраненный в свойстве ContextData операции.
Примечание Строка, которая содержит данные контекста, передаваемые в метод EnableWorkflowModification, создается разработчиком рабочего процесса. Чтобы упростить процесс программирования, рекомендуется создавать объект для каждого создаваемого изменения. Каждому объекту изменения следует назначать схему сериализации XML, в точности соответствующую схеме основного источника данных для формы изменения.
В SharePoint Foundation код XML определения шаблона рабочего процесса проверяется на наличие имени изменения. Обнаруженное имя используется в качестве текста ссылки на изменение, отображаемой на странице состояния рабочего процесса.
В объектной модели SharePoint изменения, доступные на данный момент для экземпляра рабочего процесса, перечисляются в объекте SPWorkflowModificationCollection.
При щелчке указанной ссылки на изменение в SharePoint Foundation проверяется код XML определения шаблона рабочего процесса. В частности, проверяется атрибут ModificationURL элемента Workflow, который определяет отображаемую форму. Затем в SharePoint Foundation выполняется загрузка формы, после чего в нее передаются данные контекста из операции EnableWorkflowModification.
Действия, выполняемые при отправке формы изменения пользователем, определяются разработчиком формы. В большинстве случаев из формы вызывается метод ModifyWorkflow, который предназначен для передачи идентификатора экземпляра рабочего процесса, объекта SPWorkflowModification и, при необходимости, обновленных данных контекста. В результате этого выполняется соответствующее изменение экземпляра рабочего процесса.
Для обработки события изменения рабочего процесса, добавьте в процесс операцию события OnWorkflowModified. В SharePoint Foundation эта операция вызывается при вызове метода ModifyWorkflow. Рекомендуется использовать эту операцию в обработчике событий операции EventHandlingScope. В SharePoint Foundation в операцию события передаются измененные данные контекста.
Действия по разбору данных контекста, передаваемых в операцию события OnWorkflowModified в виде строкового значения, реализуются разработчиком рабочего процесса.
См. также
Концепции
Формы сопоставления и запуска рабочих процессов (Sharepoint Foundation)