Платформа Microsoft 365 включает в себя довольно большое количество сервисов: от довольно сложных и очень часто используемых (например, Exchange Online, SharePoint Online, Teams) до относительно простых и не так массово используемых (например, Planer, Yammer). В этой статье мы рассмотрим, что такое Microsoft Power Automate (ранее Microsoft Flow) – еще один из сервисов Microsoft 365.
Цель данной статьи – дать общее понимание сервиса Power Automate. Если вам интересны примеры реализаций, то ранее я уже публиковал пару статей – например, вот и вот.
В заключении статьи я покажу пример с элементарным процессом Power Automate.
Общее описание сервиса
Microsoft Power Automate это своего рода инструмент оркестрации для различных сервисов. Он позволяет отслеживать события в одном из сервисов и на основе данных этого события выполнять определенные действия. Причем, как в этом же сервисе, так и в каком-то другом. Вы можете выстроить практически любую бизнес логику в ответ на какое либо событие.
Например, у вас есть список SharePoint, где сотрудники регистрируют заявки на отпуска. Вы можете настроить бизнес логику, при которой в случае создания новой заявки ответственному сотруднику автоматически отправится письмо на электронную почту с запросом на утверждение.
Это один из самых простых примеров.
Лицензирование и стоимость
Microsoft Power Automate можно приобрести как в виде отдельной подписки, так и в составе других подписок.
Вот в этом документе сведен перечень основных подписок Microsoft:
т.е. вот эти подписки уже включают в себя Power Automate (Standard коннекторы):
- Microsoft 365 E3, E5.
- Office 365 E1, E3, E5.
- Windows 10 Enterprise E3, E5.
- Microsoft 365 F3.
- Office 365 F3.
Есть вероятность, что на момент прочтения вами этой статьи компания Microsoft внесет какие-то корректировки в свои подписки на сервисы.
Однако, тут есть важный момент. У Microsoft Power Automate есть два типа коннекторов (о коннекторах поговорим ниже) – Standard и Premium. Все перечисленные выше подписки включают только Standard коннекторы. Premium коннекторы лицензируются отдельными подписками Power Automate.
Вообще доступно два варианта лицензирования Power Automate:
- На пользователя.
- На процесс (Flow).
Выбор зависит от характера использования сервиса. Если у вас один большой бизнес процесс, который используют все сотрудники компании, то, вероятно, что лицензирование на процесс вам больше подойдет.
Если же у вас есть какие-то автоматизации для ограниченного числа сотрудников, то вариант с лицензированием на пользователя может оказаться более выгодным.
Вообще, лицензирование Power Automate не самое тривиальное занятие (как и все лицензирование в большей части). В разделе документации есть даже соответствующий документ.
Копия документа на 05.02.2022 приложена ниже.
Коннекторы
Выше мы уже частично говорили о коннекторах и их способам лицензирования. Что же такое коннекторы Power Automate? Это, по сути, некий интерфейс или посредник, который позволяет вам выполнять действия в другой системе (не обязательно из системы экосистемы Microsoft). Причем коннектор значительно упрощает вам задачу – вам остается только определить что нужно сделать. Коннектор уже сам возьмет на себя задачи как это сделать.
Например, вы собираетесь обновить элемент в списке SharePoint.
Вам не нужно разбираться с тем, как получить токен доступа. Вам не прийдется разбираться с API SharePoint. Не нужно вникать в POST запросы к SharePoint. Вы просто говорите, что нужно обновить поле “Title” у определенного элемента в списке SharePoint. Как раз это и помогают делать коннекторы, да и платформа Power Automate в целом.
Коннекторы содержат две большие группы элементов:
- Триггеры.
- Действия.
Триггеры определятю когда запускается процесс, а действия определяют непосредственно операции, которые выполняет процесс.
Как мы уже говорили выше существуют два вида коннекторов:
- Standard.
- Premium.
Коннекторы Standard доступны во многих подсписках (Office 365, Microsoft 365), а вот коннекторы Premium лицензируются отдельно.
Пример коннекторов Standard:
Пример Premium коннекторов:
Триггеры
Любое событие в платформы Power Automate происходит в ответ на какое-то действие. Такие действия называются триггерами. Например, триггером может служить создание или изменение элемента в списке SharePoint. Или, например, загрузка нового файла на OneDrive.
Пример триггеров для системы SharePoint:
Как видно из скриншота выше – для системы SharePoint существует более десятка различных триггеров.
Ниже приведен пример набора триггеров для коннектора к GitHub:
Триггером не обязательно должно служить действие в какой-то внешней (по отношению к Power Automate) системе. Например, триггером может служить HTTP запрос к Power Automate:
Или запуск события по расписанию:
Действия
Если триггеры определяют при каких условиях запускается процесс, то действия определяю конкретные шаги – что именно необходимо выполнить в ходе выполнения процесса.
Каждый коннектор содержит определенный набор действий, которые он предоставляет.
Ниже приведен пример некоторых действий, которые поддерживает коннектор к SharePoint:
А вот пример некоторых действий коннектора к Azure DevOps:
Как видно из скриншота выше – действия или триггеры Premium коннектор отмечены соответствующим значком.
Переменные
Может показаться необычным на первый взгляд, но Microsoft Power Automate поддерживает работу с переменными. Вы можете объявите переменную и сохранить туда какое-то значение. Например, из поля SharePoint. Вот в этой статье мы как раз использовали переменные.
В платформе определены следующие типы для переменных:
- Boolean.
- Integer.
- Float.
- String.
- Object.
- Array.
Доступны следующие действия с переменными:
- Append to array variable.
- Append to string variable.
- Decrement variable.
- Increment variable.
- Initializa variable.
- Set variable.
Ссылка на соответствующий раздл документации по работе с переменными.
Встроенные функции
Платформа также предоставляет набор заранее определенных функций, которые упрощают выполнение некоторых операций.
Полный перечень встроенных функций перечислен в этом разделе документации.
Рассмотрим лишь один из примеров. Например, функция concat().
Она принимает неограниченное количество параметров типа String и возвращает значение типа String, которое “склеивает” переданные ей параметры.
Параметры разделяются запятыми. Сами параметры мы заключаем в одинарные кавычки (причем, именно одинарные – это важно), т.к. это строка.
Итого, наше выражение вида:
concat('text1','text2')
Вернет следующую строку:
text1text2
Управление ходом выполнения процесса
Power Automate содержит набор действий, которые помогают контролировать ход выполнения процесса. Эти действия напоминают операции if-else, циклы и переборы массивов из других языков программирования.
Краткое перечисление действий управления ходом выполнения процесса и их назначение:
- Condition. Аналог конструкции if-else из других языков программирования.
- Apply to each. Аналог конструкции foreach или for. Необходим для перебора значений массива объектов.
- Do until. Аналог одноименного цикла (do-until).
- Scope. Чем то напоминает директиву #region в VisualBasic или C#. Позволяет немного организовать код и разделить его на сворачиваемые секции.
- Switch. Выполняет ровно тоже, что и конструкция switch в других языках программирования.
- Terminate. Принудительно завершает выполнение потока.
Шаблоны процессов
Уже “из коробки” платформа Microsoft Power Automate поддерживает преднастроенные процессы, которые вы можете развернуть буквально за пару кликов.
Например, это могут быть следующие процессы:
- Отправка почтового уведомления при появлении нового сообщения в канале Teams.
- При загрузке файла на OneDrive отправить этот файл вложением по электронной почте.
- Создание новой задачи в Microsoft Planner при заполнении Microsoft Forms.
- Отправка уведомления при изменении элемента SharePoint.
Простой пример
Рассмотрим пример элементарного процесса – уведомление по почте при изменении элемента списка SharePoint.
Пример готового процесса приведен ниже.
Разберем этот процесс по шагам. Триггером в нашем случае выступает событие изменение элемента списка SharePoint. Мы указываем адрес сайта SharePoint и имя списка.
Затем мы извлекаем адрес электронной почты нашей учетной записи Microsoft:
И последним шагом мы формируем письмо вместе с сопроводительным текстом и отправляем на наш адрес электронной почты:
Обратите внимание, что здесь мы используем данные, полученные на предыдущих шагах процесса, а также встроенные функции платформы Microsoft Power Automate.