SharePoint в качестве платформы документооборота. Работаем с workflow в WSS 3.0 и MOSS 2007

SharePoint в качестве платформы документооборота. Работаем с workflow в WSS 3.0 и MOSS 2007

Одна из самых долгожданных возможностей Windows SharePoint Services 3.0 (WSS 3.0) и Microsoft Office SharePoint Server 2007 (MOSS 2007) – поддержка рабочих процессов (workflow). Что представляют из себя эти возможности и действительно ли новый функционал превращает SharePoint в полноценную платформу для документооборота?

Особенности рабочих процессов в SharePoint

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

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

Создание рабочих процессов

Какие инструменты предоставляет SharePoint для создания рабочих процессов?

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

  • сбор отзывов;
  • сбор подписей;
  • утверждение;
  • утверждение ликвидации;
  • три этапа.

Смысл первых четырех процессов очевиден из их названия. Поясню, что означает «три этапа». Для запуска такого процесса необходимо, чтобы у библиотеки документов или списка было свойство типа «Выбор» как минимум с тремя вариантами выбора, например, «Планируется», «Утверждается» и «Завершено». При запуске процесса значение свойства равно первому варианту, т.е. «Планируется». После завершения первой задачи процесса пользователем (например, завершения работы над документом) значение поля «Состояние» меняется на второй вариант – «Утверждается», после завершения второй задачи (например, утверждения документа руководителем) это поле получает последнее значение – «Завершено» и процесс завершается (см. рис. 1).

Рисунок 1. Настройка трехэтапного рабочего процесса

Создать стандартный рабочий процесс можно из раздела «Параметры -> Параметры рабочих процессов» списка или библиотеки документов (см. рис. 2).

Рисунок 2. Добавление рабочего процесса

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

Каждый стандартный рабочий процесс предполагает собственные настройки. Процесс «Сбор отзывов» включает указанные на рис. 3.

Рисунок 3. Настройка рабочего процесса «Сбор отзывов»

Дополнительно можно указать адрес для отправки копий отзыва прочим пользователям и ряд параметров завершения рабочего процесса.

При запуске процесса может потребоваться заполнение дополнительных параметров. Например, форму как на рис. 4 нужно заполнить при запуске процесса «Сбор отзывов».

Рисунок 4. Запуск рабочего процесса «Сбор отзывов»

Не буду останавливаться на типовых процессах, работа с которыми интуитивно понятна. Расскажу подробнее о процессе сбора подписей, запустить который можно только из клиентских приложений Microsoft Office 2007.

Допустим, имеется библиотека документов, к которой добавлен стандартный процесс «Сбор подписей». Чтобы запустить процесс, необходимо открыть документ из библиотеки в MS Word 2007. На вкладке «Вставка» нужно выбрать «Строка подписи -> Строка подписи Microsoft Office».

Появится форма настройки подписи, которую необходимо заполнить (см. рис. 5).

Рисунок 5. Настройка подписи в MS Office

Затем можно запустить процесс из общего меню Word (см. рис. 6).

Рисунок 6. Пункт меню «Рабочие процессы» в MS Word

После выбора процесса «Сбор подписей» появится форма, где нужно указать, кто должен подписать документ (см. рис. 7).

Рисунок 7. Запуск рабочего процесса «Сбор подписей» из MS Word

Чтобы подтвердить подставленное по умолчанию из предыдущей формы значение, нужно нажать кнопку с галочкой справа от поля. После этого станет активной кнопка «Начать».

В результате запуска рабочего процесса будет создана задача по сбору подписи в соответствующем списке задач (см. рис. 8).

Рисунок 8. Задачи рабочего процесса

Обратите внимание, что так как в настройках сервера запрещено создание задач для внешних участников, задача будет автоматически перенаправлена внутреннему пользователю.

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

Рисунок 9. Форма работы с задачей по сбору подписи

Подписать документ можно, открыв документ в MS Word. При этом будет выдано предупреждение, что для проверки подлинности подписи другими лицами необходимо получить цифровое удостоверение от партнеров Microsoft. Если такой необходимости нет, можно создать свою цифровую подпись. Вот так будет выглядеть готовая подпись (см. рис. 10).

Рисунок 10. Готовая подпись в документе MS Word

Создание рабочих процессов с помощью SharePoint Designer

Создавать простые рабочие процессы без написания кода можно с помощью редактора Microsoft Office SharePoint Designer [2]. Для этого необходимо открыть в редакторе узел SharePoint и выбрать пункт меню «Файл -> Создать -> Рабочий процесс».

Откроется мастер создания рабочих процессов. На первом шаге необходимо выбрать список или библиотеку, к которой будет привязан процесс, указать способы его запуска. Можно также задать список переменных (см. рис. 11).

Рисунок 11. Создание рабочего процесса в MS SharePoint Designer

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

  • проверка значения переменной;
  • проверка, находится ли дата изменения элемента в определенном промежутке времени;
  • проверка, находится ли дата создания элемента в определенном промежутке времени;
  • проверка, кем был изменен элемент;
  • проверка, кем был создан элемент.

По умолчанию в SharePoint Designer имеется 22 возможных действия: отправка сообщения по почте, назначение задачи, установка значения свойства текущего элемента, присвоение значения переменной и другие (см. рис. 12).

Рисунок 12. Создание шагов рабочего процесса в MS SharePoint Designer

Обращаю отдельное внимание на полезное действие «Записать в журнал», которое позволяет хотя бы минимально отлаживать процессы, отслеживая значения переменных в журнале.

У процессов, созданных с помощью SharePoint Designer, есть ряд существенных недостатков:

  • процесс может работать только с тем списком (библиотекой), к которому он привязан;
  • нет функционала для реализации циклов/обработки коллекций значений;
  • процессы нельзя отлаживать (за исключением явной записи значений переменных в журнале);
  • нет интеграции с InfoPath/возможности разработки собственных форм.

Впрочем, можно расширить функциональность процессов, создаваемых в SharePoint Designer.

Для этого можно написать собственные действия (Custom Activity). В такое действие, например, можно поместить запрос к другому списку, и таким образом обойти одно из ограничений SharePoint Designer.

Создание Custom Activity

Создать собственное действие можно с помощью MS Visual Studio. Для работы с workflow в Visual Studio необходимо предварительно скачать и установить WWF Visual Studio Extensions [5].

Чтобы создать Custom Activity для SharePoint, нужно указать в списке ссылок (References) библиотеки Microsoft.Sharepoint.dll и Microsoft.Sharepoint.WorkflowActions.dll (находятся в папке «%PROGRAMFILES%\Common Files\Microsoft Shared\Web Server Extensions\12\ISAPI\»).

Примеры Custom Activity можно найти в Enterprise Content Management Starter Kit for 2007 Office System (ECM Starter Kit), который можно скачать на сайте Microsoft в составе MOSS SDK[1].

Для разработки собственных действий в Visual Studio необходимо создать проект типа Workflow Activity Library (библиотека действий), для каждого действия описать необходимые свойства (входные и выходные параметры) и, наконец, переопределить метод «Execute(ActivityExecution

Context executionContext)», в котором и выполняется действие.

Пример простейшего действия, которое получает электронный адрес пользователя по его логину:

public partial class getEmail: SequenceActivity

//Описываем свойство __Context, в нем хранится информация

//о веб-приложении, из которого было вызвано действие

public static DependencyProperty __ContextProperty = \

System.Workflow.ComponentModel.DependencyProperty.Register("__Context", typeof(WorkflowContext), typeof(getEmail));

public WorkflowContext __Context

📎📎📎📎📎📎📎📎📎📎