Формы сопоставления и запуска рабочих процессов (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, который представляет пользовательские данные, полученные с помощью формы запуска рабочего процесса.