Udostępnij za pośrednictwem


Создание рабочего процесса SharePoint Designer 2013 с помощью шага уровня приложения (расширения примера рабочего процесса, используемого для SPC 2012)

Исходная статья опубликована в четверг, 22 ноября 2012 г.

jonghwal's picЗдравствуйте, меня зовут ДжонгХва Лим (JongHwa Lim), я работаю менеджером проектов в группе SharePoint Designer.
Сегодня я представлю вашему вниманию пример рабочего процесса, которой был продемонстрирован на конференции SharePoint Conference 2012 (также известной как SPC 2012). Кроме того, я модифицирую и расширю этот пример в блоге, чтобы сделать его более реалистичным. Эта запись блога содержит некоторые советы, которые можно использовать при создании рабочего процесса с помощью SharePoint Designer 2013 (также известного как SPD 2013). Мои объяснения предполагают, что вы знакомы с рабочими процессами типа SharePoint Designer 2013 и SharePoint 2013. В противном случае ознакомьтесь с предыдущими записями блога, чтобы получить информацию о рабочих процессах SharePoint 2013. 

Рабочий процесс для компании по организации досуга

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

image

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

  • Запрос утверждения группы координаторов мероприятий Event Coordinator SharePoint Group.
  • Отправка сообщения об отклонении клиенту, если запрос отклонен.
  • Если запрос утвержден, то отправка сообщения с напоминанием о мероприятии/учебном занятии за 5 дней до его начала.
    • Сообщение с напоминанием содержит информацию о мероприятии, включая информацию о погоде и карту с указанием маршрута. 

В этом примере рабочего процесса мы будем использовать две веб-службы, но только одна веб-служба будет обрабатываться действием «Вызов веб-службы HTTP», доступным в SPD. Ссылка на другую веб-службу будет содержаться в строковой переменной, и она будет вставляться в тело письма с помощью тега <IMG>. Для получения дополнительной информации можно посетить страницу Bing Map API (https://www.microsoft.com/maps/developers/web.aspx).

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

image

image

image

Обратите внимание, что этап «Получение информации о погоде» включает действие «Вызов веб-службы HTTP». Если вы щелкните первый параметр, то увидите, что используется следующий URL-адрес, а ключ веб-службы хранится в отдельном списке, который называется «Ключи веб-служб». Описание действий «Веб-служба», «Получение элемента из словаря» и «Контейнер цикла», а также методов их использования можно найти в предыдущей записи блога пользователя Ён Гук Ким (https://blogs.technet.com/b/office_ru/archive/2012/10/11/quot-http-quot-call-http-web-service.aspx). 

image

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

image 

Давайте сделаем наш пример более реалистичным

В реальной жизненной ситуации может потребоваться управление ключами веб-служб с обеспечением их безопасности. Для этого необходимо защитить их, сохранив в список, доступом к которому обладают только пользователи с уровнем разрешений «Полный доступ». Но в данном случае обычная логика рабочего процесса не сможет получать доступ к ключам веб-служб, так как она выполняется на уровне разрешений инициатора рабочего процесса и (логическое AND) на уровне разрешений приложения рабочего процесса. Поэтому, если инициатор рабочего процесса не обладает правом на доступ к списку, в котором содержатся ключи веб-служб, выполнение этого рабочего процесса будет невозможно. Чтобы логика рабочего процесса выполнялась только на уровне разрешений приложения рабочего процесса, который подразумевает права на чтение/запись во всех списках сайтов, необходимо использовать шаг уровня приложения.

Шаг 1. Обеспечение защиты списка за счет наличия независимых разрешений

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

Предположим, это список «Ключи веб-служб». Если вы перейдете в меню Параметры списка и откроете страницу Разрешение для этого списка , вы увидите меню, которое позволит отключить наследование.

image

После отключения наследования можно выбрать пользователей без разрешения «Полный доступ», как показано ниже, и нажать кнопку Удалить разрешения пользователя .

image

Тогда в списке будут присутствовать только те пользователи, которые обладают уровнем разрешений «Полный доступ».

image

Шаг 2. Активация функции «Шаг уровня приложения»

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

image

Это приведет к активации кнопки Шаг уровня приложения в SPD .

image

Шаг 3. Добавление шага уровня приложения и перенос в нее логики

Необходимо найти компоненты логики, которые ссылаются на список «Ключи веб-служб», а затем заключить их в контейнер шага уровня приложения. Нам необходимо поместить в контейнер шага уровня приложения два компонента логики: действие «Вызов веб-службы HTTP» и действие «Задать переменную RouteMap», как показано на рисунках ниже:  

image

image

Шаг 4. Публикация рабочего процесса

При публикации рабочего процесса отображается следующее диалоговое окно с описанием поведения.

image

Я надеюсь, что вам понравилась эта статья и теперь вы знаете, как следует использовать шаги уровня приложения. Прощаюсь с вами до следующей статьи!

Это локализованная запись блога. Исходная статья находится по адресу How to Create a SharePoint Designer 2013 Workflow with App Step (extension from the example workflow used for SPC 2012)