Выбор средства создания рабочих процессов (SharePoint Foundation)

 

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

Последнее изменение раздела: 2015-03-09

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

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

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

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

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

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

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

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

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

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

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

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

В библиотеке основных действий Windows Workflow Foundation хранится группа базовых действий, описанных ранее. Службы Microsoft SharePoint Foundation также предоставляют набор действий, специально разработанных для рабочих процессов. Ниже перечислены наиболее важные элементы.

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

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

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

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

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

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

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

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

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

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

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

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

Для настройки обмена данными между рабочим процессом и используемыми формами ASPX разработчику необходимо выполнить определенные действия. Пространство имен Microsoft.Windows.SharePoint.Workflow предоставляет разработчикам объектную модель. С помощью типов этого пространства имен рабочий процесс Windows SharePoint Services может обмениваться данными с формой 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 Foundation, как и любой другой компонент. При этом многие администраторы SharePoint не разрешают развертывать на своих серверах произвольный код, считая, что риск дестабилизации системы слишком велик. Возможность создавать прямую бизнес-логику, привязанную к документам и элементам списка, — это именно то, что нужно многим пользователям SharePoint. Таким образом, приложение Microsoft SharePoint Designer позволяет менее технически грамотным людям создавать рабочие процессы, а также создает более безопасный метод определения и развертывания бизнес-логики на серверах, работающих под управлением SharePoint Foundation.

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

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

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

Порядок обработки рабочего процесса

Process Order Workflow

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

Хотя пользовательский интерфейс выглядит совсем не так, как при графическом создании в 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 Foundation предоставляют множество функциональных возможностей для создания рабочих процессов, ориентированных на обработку документов. При этом службы являются платформой, предназначенной только для разработки и выполнения: здесь отсутствуют функции рабочих процессов, которые пользователь может использовать напрямую. У рабочих процессов, работающих под управлением SharePoint Foundation, есть и другие ограничения (например, невозможность взаимодействия с участниками через клиентские приложения Office).

Сравнение средств разработки

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

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

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

Да

Нет

Доступность рабочих процессов в клиентских приложениях (не в браузере)

Да

Да

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

Да

Нет

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

Нет

Да

Поддержка дополнительных действий (отличных от действий служб SharePoint Foundation)

Нет

Да

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

Нет

Да

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

Нет

Да

Поддержка публикации рабочих процессов за один щелчок мыши

Да

Да

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

Да

Нет

Настройка доступности для всей фермы

Нет

Да

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

Да

Да