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


Разработка рабочих процессов Windows SharePoint Services

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

Рабочий поток Windows SharePoint Services обменивается с пользователями данными через веб-браузер и, соответственно, отображает формы с помощью Microsoft ASP.NET. Эти формы определяются как страницы ASPX. Рабочий поток Windows SharePoint Services потенциально может отображать формы на четырех этапах жизненного цикла:

  • Связь: когда администратор Windows SharePoint Services связывает шаблон рабочего процесса с определенной библиотекой документов или списком, он может выбрать параметры, которые будут применяться к каждому экземпляру рабочего потока, созданному из этой связи. Если автор рабочего потока разрешает использовать списки, нужно указать форму, которая позволит указать такую информацию.

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

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

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

Рабочие процессы, созданные исключительно на основе Windows SharePoint Services, определяют свои формы как страницы ASPX, а процессы, использующие Office SharePoint Server поддерживают и формы InfoPath, как описано ниже. В любом случае логика рабочего процесса определяется как группа действий, как и в любом процессе на базе WF. Корпорация Майкрософт создала два разных средства для выбора логики и форм рабочего потока. Разработчики программного обеспечения может использовать конструктор рабочих процессов WF, который находится в Visual Studio 2005. Информационные сотрудники (менее технически подкованная группа) могут создавать рабочие потоки в Office SharePoint Designer, без написания кода. В следующих двух разделах рассматривается метод создания рабочих процессов Windows SharePoint Services с использованием обоих средств.

Создание рабочих процессов с помощью Visual Studio 2005 и конструктора рабочих процессов WF

Рабочий процесс во многом схож с блок-схемой. Соответственно, стоило создать графическое средство, позволяющее конструкторам указать действия процесса. В WF таким средством является конструктор рабочих процессов, часть расширений Windows Workflow Foundation Extensions для Visual Studio 2005. С помощью конструктора рабочих процессов WF разработчики могут создавать графические представления действий внутри процесса и порядка выполнения этих действий. На экране ниже показан простой пример работы программы.

Пример рабочего процесса службы Windows SharePoint Services

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

В библиотеке основных видов деятельности WF хранится группа основных действий, описанных ранее. Кроме того, в Windows SharePoint Services есть набор действий, специально разработанных для рабочих потоков Windows SharePoint Services. Ниже перечислены некоторые из наиболее важных элементов:

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

  • CreateTask: действие создает задачу, связанную с конкретным пользователем из списка задач. Например, в сценарии утверждения, который был описан ранее, это действие использовалось для добавления задачи в список, который использовали все участники. Кроме того, у этого действия есть свойство SendEmailNotification. Если оно включено, система автоматически отправляет по электронной почте уведомление лицу, для которого создано задание.

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

  • CompleteTask: действие помечает задание как выполненное.

  • DeleteTask: действие удаляет задание из списка.

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

  • SendEmail: действие отправляет по электронной почте сообщение указанному лицу или группе лиц.

  • LogToHistoryList: действие записывает данные о выполнении рабочего процесса в список истории. Данные из этого списка позволяют просматривать текущий этап процесса, информацию о завершенном процессе и т.д. Чтобы разрешить такой мониторинг, автор рабочего процесса должен записывать данные в список истории в соответствующие моменты выполнения процесса. Windows SharePoint Services не поддерживают стандартную службу отслеживания WF, поскольку в них есть собственный механизм отслеживания рабочих процессов.

Типичная схема простого рабочего процесса Windows SharePoint Services начинается с действия OnWorkflowActivated, затем идет действие CreateTask, назначающее задание участнику рабочего процесса. Затем можно использовать стандартное действие BAL While, позволяющее дождаться выполнения задания. Чтобы узнать, когда это произойдет (пользователь может внести в задачу несколько изменений и поставить флажок в форме выполнения задания, когда закончит), внутри действия While нужно выполнить действие OnTaskChanged, которое извлекает данные, введенные пользователем в формы. Когда пользователь выполнит задание, можно будет выполнить действие CompleteTask и DeleteTask. Далее можно передать рабочий процесс следующему участнику, присвоив ему задачу с помощью действия CreateTask, и т.д. Конечно, можно выполнять и другие действия, например, отправлять сообщения электронной почты, регистрировать информацию в списке истории или даже включить действие BAL Code, позволяющее запустить произвольный код.

Все действия из Windows SharePoint Services позволяют рабочему процессу работать в среде Windows SharePoint Services. Выбор бизнес-логики рабочего процесса принадлежит только создателю. Фактически, разработчик рабочего процесса Windows SharePoint Services свободно может создавать и использовать собственные действия. Необязательно использовать только действия Windows SharePoint Services и WF.

Как уже говорилось ранее, Windows Workflow Foundation поддерживает последовательные и статичные рабочие процессы. Процесс Windows SharePoint Services, созданный с помощью конструктора WF, может использовать любой вариант. Для этого Windows SharePoint Services добавляет в Visual Studio 2005 лва типа проектов, по одному на каждый стиль рабочего процесса.

Независимо от выбранного стиля, разработчик обязан определить не только логику рабочего процесса, но и формы ASPX, которые он будет использовать. Для этого используется файл с именем workflow.xml. Это шаблон, в котором разработчик указывает форму (при наличии), которую нужно отображать в каждой из четырех точек, где процесс Windows SharePoint Services может это сделать.

Для настройки обмена данными между рабочим процессом Windows SharePoint Services и используемыми формами ASPX разработчику нужно кое-что сделать. В Windows SharePoint Services есть пространство имен, Microsoft.Windows.SharePoint.Workflow, предоставляющее разработчикам объектную модель. С помощью типов из этого пространства имен рабочий процесс Windows SharePoint Services может обмениваться данными с формой ASPX.

Создав рабочий процесс Windows SharePoint Services и его формы, разработчик должен упаковать их в так называемую функцию Windows SharePoint Services 3.0. После этого администратор Windows SharePoint Services устанавливает функцию (включая сборки рабочего процесса) в глобальный кэш сборок соответствующей системы. Теперь новый рабочий процесс отображается для администратора как шаблон, который можно связать с библиотекой документов или списком.

Разработчику программного обеспечения не так уж сложно создать рабочий процесс Windows SharePoint Services с использованием Visual Studio и конструктора WF. Нужно будет понять специфику работы в этой среде, но многие действия разработчикам уже знакомы. Однако разработчики — это не единственные люди, кому нужно будет создавать рабочие процессы Windows SharePoint Services. Как сказано далее, с помощью Office SharePoint Designer это смогут сделать и непрофессионалы.

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

Office SharePoint Designer 2007, отдельно лицензируемый компонент системы 2007 Office, позволяет информационным работникам и другим людям добавлять логику приложений (в виде рабочего процесса) к сайтам Windows SharePoint Services. Конечно, это полезная задача, но Office SharePoint Designer решает и другую существенную проблему. Если разработчик создает рабочий процесс Windows SharePoint Services с использованием Visual Studio, этот поток приходится устанавливать на сервер Windows SharePoint Services, как и любое другое приложение. При этом многие администраторы Windows SharePoint Services не разрешают развертывать на своих серверах произвольные коды, считая, что риск дестабилизации системы слишком велик. Иметь возможность создавать прямую бизнес-логику, привязанную к документам и элементам списка очень полезно, это именно то, что нужно многим пользователям Windows SharePoint Services. Помимо того, что Office SharePoint Designer позволяет менее технически грамотным людям создавать рабочие процессы, он создает более безопасный метод определения и развертывания бизнес-логики на серверах Windows SharePoint Services.

Сценарии рабочих процессов, которые реализует Office SharePoint Designer, кое в чем отличаются от процессов в Visual Studio и конструкторе рабочих процессов WF. Хотя Office SharePoint Designer позволяет создавать сложные приложения, основная его задача — добавление бизнес-логики в сайты Windows SharePoint Services. Предположим, например, что сайт содержит список, который позволяет пользователям отправлять запросы на изменение. Office SharePoint Designer можно использовать для создания рабочего процесса, который автоматически информирует автора о принятии или отклонении запроса. Аналогичным образом, настраиваемый рабочий процесс информирует определенную группу пользователей о добавлении нового документа в определенную библиотеку. Настроить такие уведомления с помощью рабочего процесса несложно, но в предыдущих версиях Windows SharePoint Services это было проблемой, поскольку администраторы отказывались устанавливать пользовательские коды.

Тут же возникает вопрос, чем же отличается логика, созданная в Office SharePoint Designer? Почему администраторы Windows SharePoint Services с готовностью соглашаются развернуть в своих системах рабочие потоки, созданные с помощью этого средства? Дело в том, что созданный в Office SharePoint Designer рабочий поток может использовать только действия из контролируемого администратором списка. Администратор может включить в список настраиваемый действия, созданные разработчиком, но не обязан это делать. Точно определив допустимые действия рабочего потока, администратор Windows SharePoint Services может быть уверен, что развертывание созданной в Office SharePoint Designer логики не дестабилизирует систему.

В связи с тем, что Office SharePoint Designer создан не для разработчиков, а для информационных работников, и предназначен в основном для простых сценариев, он использует другую модель создания рабочих процессов, не ту, что в размещенном в Visual Studio конструкторе WF. Вместо графического подхода в Office SharePoint Designer используется подход на основе правил. В чем-то это напоминает мастер правил, средство Outlook, с которым многие знакомы. Экран ниже иллюстрирует настройку этапа рабочего процесса, выполняемую пользователем Office SharePoint Designer.

Разработка рабочего процесса с использованием службы Windows SharePoint Services

У каждого этапа может быть условие и действие. Условие определяет, нужно ли выполнять действие этапа, как в утверждении "if" выше. В качестве действия можно выбрать, например, назначение элемента списка дел участнику рабочего процесса, отправку электронной почты и многое другое. На практике каждое действие выполняет действие Windows SharePoint Services. Действия здесь те же, что и в Visual Studio и конструкторе рабочих процессов WF. Например, параметр Отправить почту соответствует действию SendEmail, а Назначить задание — несколько специализированному варианту действия CreateTask. Кроме того, в список могут входить другие разрешенные администратором Windows SharePoint Services для этого сайта действия, в том числе и созданные разработчиками.

Хотя пользовательский интерфейс средства выглядит совсем не так, как при графическом подходе, использованном в Visual Studio и конструкторе рабочих процессов WF, Office SharePoint Designer создает стандартный рабочий процесс WF. На практике получается последовательный процесс с условиями, выраженными с помощью механизма правил WF. При этом у созданных процессов есть некоторые ограничения. Например, в отличие от процессов Visual Studio и конструктора WF, запущенные процессы нельзя менять, а кроме того, создавать можно только последовательные процессы — статичные механизмы не поддерживаются. Кроме того, готовые процессы нужно регистрировать в конкретной библиотеке или списке. Создание общего шаблона рабочего процесса, который позднее можно связать с любой библиотекой, списком или типом контента невозможно. Это ограничивает возможности использования процессов, но и значительно упрощает развертывание. Фактически, когда пользователь заканчивает создавать рабочий процесс с помощью Office SharePoint Designer, средство автоматически развертывает его на целевом сайте. Этот метод значительно проще многоэтапного процесса развертывания, который необходим для процессов, созданных в Visual Studio и конструкторе процессов WF.

Кроме того, рабочие процессы, созданные в Office SharePoint Designer, могут отображать настраиваемые формы. Авторам рабочих процессов не приходится напрямую создавать страницы ASPX — средство само генерирует эти страницы. Автор указывает, как должны выглядеть созданные страницы (например, какие в них должны быть поля), а Office SharePoint Designer делает все остальное. Однако из четырех точках рабочего цикла процессов Windows SharePoint Services, где можно использовать формы, процессы, созданные в Office SharePoint Designer, используют только две: запуск и выполнение задачи. Поскольку каждый процесс, созданный с помощью этого средства, необходимо связать с конкретной библиотекой документов или списком, в этапе связи нет необходимости, и форма связи не используется. Поскольку запущенный процесс нельзя изменить, форма изменения тоже не нужна.

Office SharePoint Designer можно использовать не только для создания рабочих процессов Windows SharePoint Services. С помощью этого средства можно создать, например, сайт Windows SharePoint Services или настроить вид и поведение страниц сайта, изменив его главную страницу. Кроме того, средство можно использовать для подключения к внешним данным элемента, использующего поддержку привязки данных ASP.NET. Для информационных работников, которым нужно создать логику, исполняемую на сайте Windows SharePoint Services, в Office SharePoint Designer, конечно же, важнее всего поддержка создания рабочих процессов.

В Windows SharePoint Services есть много функций для создания рабочих процессов, ориентированных на документы. При этом они представляют собой только платформу разработки и выполнения. Функций рабочих процессов, которые пользователь может использовать напрямую, здесь нет. Тем, кому нужны готовые приложения рабочих процессов (как это часто бывает) Windows SharePoint Services недостаточно. У рабочих процессов, созданных только в Windows SharePoint Services, есть и другие ограничения, например, невозможность взаимодействия с участниками через клиентские приложения Office. Как описано далее, в Office SharePoint Server есть способ обойти все эти ограничения.

Загрузка этой книги

Для упрощения чтения и печати эта тема включена в следующую загружаемую книгу:

См. полный список доступных книг на веб-сайте Загружаемые книги для Office SharePoint Server 2007.