Планирование создания рабочих процессов (SharePoint Server 2010)

 

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

Последнее изменение раздела: 2016-11-30

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

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

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

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

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

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

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

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

Рабочие процессы, использующие SharePoint Server, могут использовать формы рабочих процессов Microsoft InfoPath 2010, а не только формы ASPX. Чтобы создать такие формы, создатель рабочего процесса использует Microsoft InfoPath. Это средство предоставляет графический редактор, позволяющий автору определить содержание формы. Разработчики, предпочитающие полностью работать в среде Visual Studio, могут использовать выпуск Professional Edition пакета Visual Studio 2010.

Как только формы InfoPath рабочих процессов созданы, они присоединяются к рабочему процессу посредством файла workflow.xml точно также, как это происходит с формами ASP.NET. Однако в отличие от форм ASP.NET, разработчикам не требуется писать пользовательский код для перемещения данных между формами InfoPath рабочих процессов и рабочим процессом. Вместо этого SharePoint Server и InfoPath предоставляют ссылку, которая облегчает работу разработчиков рабочих процессов.

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

Рабочий процесс сбора отзывов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рабочий процесс порядка обработки

Process Order Workflow

Каждый шаг может содержать условие и действие. Условие определяет, нужно ли выполнять действие этапа, как в операторе If выше. Выбор включает такие действия, как присвоение обработчика событию, сбор подтверждений и многое другое. На практике каждое действие выполняется действием SharePoint Server, а используемые действия такие же, как и в Visual Studio и конструкторе WF. Список действий также может включать и любые другие действия, разрешенные администратором SharePoint для данного веб-сайта, включая пользовательские действия, созданные разработчиками. В SharePoint Server имеется также набор специальных действий, позволяющих пользователям настраивать общую парадигму утверждений или сбора отзывов, входящих в процесс "создания набора задач и ожидания их выполнения", в специальном конструкторе Microsoft SharePoint Designer.

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

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

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

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

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

В следующей таблице перечислены основные различия между средствами, поддерживаемыми Майкрософт для создания рабочих процессов в SharePoint Server, с использованием SharePoint Designer и конструктора WF в Visual Studio 2010 Professional Edition.

Возможности (требования) SharePoint Designer Конструктор рабочих процессов WF в Visual Studio

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

Есть

Нет

Рабочие процессы доступны в клиентских приложениях (кроме браузеров).

Да

Да

Возможность использования Microsoft Visio профессиональный для создания логики рабочих процессов.

Есть

Нет

Необходимость написания кода.

Нет

Есть

Дополнительные действия (помимо предоставленных в SharePoint Server).

Нет

Есть

Возможность создания пользовательских действий.

Нет

Есть

Возможность использования форм InfoPath в рабочих процессах.

Есть

Есть

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

Нет

Есть

Возможность автоматической публикации рабочих процессов.

Есть

Есть

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

Есть

Нет

Возможность обеспечения доступности в пределах фермы.

Нет

Есть

Возможность ограничения области до семейства веб-сайтов.

Есть

Есть