Как вызвать рабочий процесс SharePoint 2010 из рабочего процесса SharePoint 2013

Исходная статья опубликована в субботу 18 августа марта 2012 г.

 

Всем привет,

я Чонг Юн (Джон) Чоу (Chong Youn (John) Choe), руководитель проекта в группе SharePoint Designer. SharePoint и SharePoint Designer 2013 бета-версия 2 теперь общедоступны, поэтому участники группы продуктов с радостью делимся с вами новыми записями.

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

Вводная информация

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

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

Тем не менее группы разработчиков рабочих процессов настоятельно хотели охватить все существующие сценарии. Поэтому действия "запуска рабочего процесса" были спроектированы так, чтобы позволить конечным пользователям совмещать SharePoint 2013 и SharePoint 2010, разрешив взаимный вызов различных версий рабочих процессов. Это было единственное экономичное решение для миграции текущих пользователей SPD.

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

И последнее, но не менее важное: если вы хотите знать, что находится внутри, сведения о "мосте взаимодействия рабочих процессов" можно найти здесь: https://msdn.microsoft.com/en-us/library/sharepoint/jj163181(office.15).

 

Пример сценария

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

Представим, что существует рабочий процесс "Утверждение бюджета", используемый на сайте SharePoint 2010. ИТ-администратор решил обновить SharePoint 2010 до SharePoint 2013, поэтому существующие рабочие процессы SharePoint 2010 были перенесены на новый сайт (это не означает, что они были обновлены до рабочих процессов SharePoint 2013, они все еще являются рабочими процессами SharePoint 2010). Рабочий процесс "Утверждение бюджета" используется для запроса бюджета из отдела финансов или отдела кадров и принимает 4 входных параметра: "Запрошенный бюджет" для запрошенной суммы денег, "Объяснение" с описанием необходимости процесса, "Запрошенная конечная дата утверждения" и "Справочная информация" для указания любых связанных сведений.

Допустим, вы хотите использовать рабочий процесс "Утверждение бюджета" как часть нового рабочего процесса. Раньше вам нужно было создать рабочий процесс и переписать старый процесс в новой платформе. А если вы хотите объединить новые возможности рабочего процесса SharePoint 2013 и рабочий процесс "Утверждение бюджета", то все это нельзя было уместить в одном рабочем процессе.

Действия "Запустить рабочий процесс" — это идеальное решение для данного случая. Предположим, что рабочий процесс "Утверждение бюджета" является рабочим процессом списка "Финансы Contoso", в котором финансовые процессы Contoso автоматизируются с помощью рабочих процессов.

 

Действия по проектированию

 

1. Вставьте действие "Запустить рабочий процесс списка", если необходимо вызвать рабочий процесс списка или рабочий процесс для повторного использования, связанный со списком.

clip_image001

 

2. После вставки действия необходимо выбрать рабочий процесс или связь. Для этого щелкните ссылку "Рабочий процесс списка SharePoint 2010".

clip_image002

 

3. Найдите список, в котором содержится нужный рабочий процесс, и выберите этот рабочий процесс.

изображение

 

4. Нажмите кнопку "ОК", чтобы закрыть диалоговое окно. Затем щелкните ссылку "параметры" в действии "Запустить рабочий процесс". Затем SharePoint Designer 2013 проанализирует рабочий процесс и параметры запуска, а также предустановленные значения.

изображение

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

 

5. Вы можете установить значение каждого параметра во время создания, здесь можно выбрать значения подстановки, которые будут установлены во время запуска. Это дает достаточно гибкости для создания интегрированного процесса с помощью вызова рабочего процесса SharePoint 2013 и вызванного рабочего процесса SharePoint 2010.
В диалоговом окне также представлены ограничения, поэтому вам не нужно заранее просматривать сведения о параметрах.

изображение

 

6. Конечно, вы также можете задать значение, введя его непосредственно в текстовом редакторе. Обратите внимание, что диалоговое окно и его функции могут отличаться в зависимости от типов параметров.

изображение

изображение

 

7. После нажатия кнопки "…" открывается соответствующий тип конструктора для заполняемого типа параметра с инструкциями по вводу. При нажатии кнопки "Fx" открывается стандартное диалоговое окно.

изображение

изображение

 

8. После установки всех параметров закройте диалоговое окно "Установка значений параметров запуска". Число заданных параметров будет показано в действии.

изображение

изображение

 

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

изображение

 

Вот и все! Вызов рабочего процесса SharePoint 2010 очень прост — нужно добавить действие и установить соответствующие значения. На самом деле процесс напоминает поведение конечных пользователей, запускающих рабочий процесс SharePoint 2010 на сервере SharePoint. Выбор списка, элемента и связанного рабочего процесса и заполнение формы запуска. Действия конечного пользователя на сервере SharePoint описаны далее.

clip_image021

изображение

изображение

 

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

Я покажу это на примере сценария.

Объявляется новая политика компании, создатель рабочего процесса должен отправить уведомление по электронной почте участникам процесса утверждения бюджета для проверки новой политики.

 

10. Добавьте действие "Отправить сообщение электронной почты" участникам процесса утверждения бюджета.

изображение

 

11. Для просмотра переменных рабочего процесса SharePoint 2010 выберите "Поиск рабочего процесса для пользователя" для элемента управления "Кому".

изображение

 

12. Новый источник данных создается автоматически после вставки действия "Запустить рабочий процесс списка или сайта" и выбора рабочего процесса SharePoint 2010. Имя источника данных состоит из статического текста "Выходные данные SharePoint 2010 Output" и имени рабочего процесса.

изображение

 

13. Каждая переменная рабочего процесса "Утверждение бюджета" отображается во 2м раскрывающемся списке: "Поле из источника". Выберите нужную переменную и нажмите кнопку "ОК", чтобы задать значение поля "Кому" в диалоговом окне сообщения электронной почты.

изображение

 

14. Заполните раздел "Копия" аналогичным образом. Учтите, что переменные создаются вручную пользователем, создавшим рабочий процесс SharePoint 2010. Заполните остальные поля нужными вам значениями.

изображение

изображение

 

Надеюсь, что теперь вы хорошо понимаете, как использовать возвращенные значения рабочего процесса SharePoint 2010.

В предыдущем примере было показано, как использовать действия "Запустить рабочий процесс" для вызова старого рабочего процесса. Вы можете расширить эту концепцию и использовать одно действие для добавления дополнительных функций в рабочие процессы SharePoint 2013. Например, есть действия, доступные только в рабочих процессах SharePoint 2010 (например, действие поиска руководителя), поэтому вы можете использовать действия "Запустить рабочий процесс" для вызова другого процесса, использующего старые действия, и расширения возможностей нового рабочего процесса.

После усвоения действий "Запустить рабочий процесс" и способов их использования рабочие процессы SharePoint 2013 и SharePoint 2010 больше не будут вам казаться разными видами рабочих процессов.

Ограничения

Существуют ограничения по полному объединению преимуществ рабочих процессов SharePoint 2013 и 2010.

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

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

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

Сводка

Действие "Запустить рабочий процесс" вызывает рабочий процесс SharePoint 2010 во время выполнения рабочего процесса SharePoint 2013. Доступно два типа действий в зависимости от типа вызываемого рабочего процесса: "Запустить рабочий процесс списка" и "Запустить рабочий процесс сайта".

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

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

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

Надеюсь, вам понравятся доступные преимуществ этой возможности!

Чонг Юн (Джон) Чоу (Chong Youn (John) Choe)

Это локализованная запись блога. Исходная статья находится по адресу How to trigger a SharePoint 2010 workflow from a SharePoint 2013 workflow