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


Формы изменений рабочих процессов (SharePoint Foundation)

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

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

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

Для определения параметров изменений можно создать формы изменений.

Для создания изменения при разработке рабочего процесса добавьте к нему операцию EnableWorkflowModification. Возможность изменения определяется операцией EventHandlingScope, к которой добавляется операция EnableWorkflowModification. При определении изменения на страницу состояния рабочего процесса добавляется соответствующая ему ссылка. Как только операция EventHandlingScope переходит в область действия при выполнении процесса, в Microsoft SharePoint Foundation ссылка на изменение автоматически становится доступной пользователю. При выходе операции из области действия в Windows SharePoint Services ссылка на изменение удаляется со страницы состояния рабочего процесса.

При щелчке ссылки на изменение пользователь переходит к форме изменения рабочего процесса.

Определение форм изменений

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

Чтобы определить форму изменения, следует установить три элемента данных.

  1. Присвойте свойству ModificationID операции EnableWorkflowModification значение кода GUID изменения.

  2. В определении шаблона рабочего процесса присвойте атрибуту ModificationURL элемента Workflow URL-адрес формы изменения, которую следует использовать.

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

    • Отображение различных представлений формы на основании передаваемого в нее идентификатора изменения.

    • Перенаправление на отдельную форму на основании передаваемого в эту форму идентификатора изменения.

      ПримечаниеПримечание

      В определениях шаблонов рабочих процессов SharePoint Foundation поддерживается использование как абсолютных, так и задаваемых относительно сервера путей. Все URL-адреса следует задавать в одном из этих форматов. Например, можно использовать абсолютный ("http://site/library/page.aspx") или задаваемый относительно сервера ("/layouts/page.aspx") путь. В SharePoint Foundation не поддерживается исправление ссылок в определениях шаблонов рабочих процессов.

  3. В определении шаблона рабочего процесса добавьте элемент 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)

Формы задач рабочего процесса (SharePoint Foundation)