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


Формы сопоставления и запуска рабочих процессов (Sharepoint Foundation)

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

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

В этой статье
Определение форм сопоставления
Обработка форм сопоставления
Определение форм запуска
Обработка форм запуска

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

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

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

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

Определение форм сопоставления

Чтобы определить форму сопоставления рабочего процесса, воспользуйтесь XML-файлом определения шаблона рабочего процесса. Для этого присвойте атрибуту AssociationURL элемента Workflow URL-адрес пользовательской страницы формы, которую следует использовать для сопоставления рабочего процесса. Например:

AssociationURL="MyWkflAssociationPage.aspx" 
ПримечаниеПримечание

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

Дополнительные сведения об определениях рабочих процессов см. в разделе Определения рабочего процесса.

Обработка форм сопоставления

Если администратор выбирает рабочий процесс, который следует сопоставить с заданными списком, библиотекой или типом контента, в SharePoint Foundation отображается страница добавления нового рабочего процесса. На этой странице можно задать общие параметры для всех рабочих процессов, например условия определения и запуска процесса, а также объекты, для которых выполняется процесс (элементы, папки или оба вида объектов одновременно).

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

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

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

<input type="hidden" name="WorkflowDefinition" value=<% _STSWriteHTML(Request.Form["WorkflowDefinition"]); %>>
<input type="hidden" name="WorkflowName" value=<% _STSWriteHTML(Request.Form["WorkflowName"]); %>>
<input type="hidden" name="AddToStatusMenu" value=<% _STSWriteHTML(Request.Form["AddToStatusMenu"]); %>>
<input type="hidden" name="AllowManual" value=<% _STSWriteHTML(Request.Form["AllowManual"]); %>>
<input type="hidden" name="RoleSelect" value=<% _STSWriteHTML(Request.Form["RoleSelect"]); %>>
<input type="hidden" name="AutoStartCreate" value=<% _STSWriteHTML(Request.Form["AutoStartCreate"]); %>>
<input type="hidden" name="AutoStartChange" value=<% _STSWriteHTML(Request.Form["AutoStartChange"]); %>>
<input type="hidden" name="GuidAssoc" value=<% _STSWriteHTML(Request.Form["GuidAssoc"]); %>>

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

  • Проверка значения параметра GuidAssoc и определение выполняемого пользователем действия: добавление нового или изменение существующего сопоставления рабочего процесса.

  • Если пользователь добавляет новое сопоставление рабочего процесса, для его создания вызывается метод AddWorkflowAssociation.

  • Если пользователь изменяет существующее сопоставление рабочего процесса, для его обновления вызывается метод Update().

  • Создание списка задач для рабочего процесса (если он еще не создан).

  • Установка свойств объекта SPWorkflowAssociation с использованием данных, предоставленных пользователем (при необходимости).

  • Создание списка журнала рабочего процесса (при необходимости).

Определение форм запуска

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

InstantiationURL="MyWkflInitiationPage.aspx" 
ПримечаниеПримечание

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

Дополнительные сведения об определениях рабочих процессов см. в разделе Определения рабочего процесса.

Обработка форм запуска

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

Для загрузки заданной формы в SharePoint Foundation в нее в составе URL-адреса передаются следующие параметры запроса.

  • List — код GUID списка, которому принадлежит элемент.

  • ID — идентификатор элемента списка, для которого запускается рабочий процесс.

  • Source — страница, с которой пользователь запускает рабочий процесс.

  • TemplateID — код GUID сопоставления рабочего процесса.

Кроме того, в форме можно запрограммировать загрузку данных формы сопоставления в это сопоставление. Эти данные содержатся в свойстве AssociationData объекта SPWorkflowAssociation, который представляет заданное сопоставление рабочего процесса.

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

  • Поиск объекта SPWorkflowManager для текущего сайта.

  • Использование объекта SPWorkflowManager для вызова метода StartWorkflow. Для этого передаются объекты SPListItem и SPWorkflowAssociation. Для передачи данных формы запуска в строковом формате используется параметр eventData.

  • Возврат пользователя на исходную страницу, с которой был запущен рабочий процесс.

При вызове метода M:Microsoft.SharePoint.Workflow.SPWorkflowManager.StartWorkflow(Microsoft.SharePoint.SPListItem,Microsoft.SharePoint.Workflow.SPWorkflowAssociation,System.String) диспетчером рабочих процессов создается экземпляр процесса для элемента SharePoint. После этого данные, полученные с помощью формы запуска, передаются в событие OnWorkflowActivated рабочего процесса.

Любой рабочий процесс SharePoint Foundation начинается с операции OnWorkflowActivated. Операция OnWorkflowActivated содержит свойство WorkflowProperties, возвращающее объект SPWorkflowActivationProperties. Этот объект представляет исходные свойства, установленные при запуске рабочего процесса, например имя пользователя, добавившего рабочий процесс, а также список или элемент, к которому был добавлен процесс. Кроме того, свойство AssociationData возвращает объект System.Collections.Hashtable, который представляет пользовательские данные, полученные с помощью формы запуска рабочего процесса.

См. также

Концепции

Обзор форм рабочего процесса

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

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