Меню Закрыть

Microsoft flow что это

Содержание

Microsoft запустила новый облачный сервис Microsoft Flow. Этот сервис позволяет создавать автоматизированные рабочие процессы (workflow) между приложениями и службами. С помощью Flow можно получать уведомления, синхронизировать файлы, собирать данные и автоматизировать многие рутинные операции. Как результат – делать жизнь проще и комфортней. Девиз Flow – «Работайте меньше, успевайте больше».

Сервис пока находится в стадии предварительной версии и бесплатен для пользователей Office 365.

Важно, что Microsoft Flow поддерживает не только службы и приложения от Microsoft, но также и многие другие популярные сервисы. Например, Dropbox, Google Tasks, Slack, Trello и многие другие. Разумеется, акцент разработчики сделали на интеграцию со службами Office 365. Очень радует то, что поддерживается и Project Online. Важно, что Flow позволяет разработчикам расширять возможности сервиса. Ниже показан список приложений и облачных служб, поддерживаемых на данный момент. Очевидно, этот список будет пополнятся.

Потоки

Microsoft Flow построен на идее потоков (flows). Потоки связывают события и последовательности действий. В качестве событий и действий могут выступать службы и приложения. По потоку передаются данные от одного приложения к другому. Потоки могут разветвляться. Данные могут трансформироваться. Приложения и службы, с которыми работает Flow, могут быть как облачными либо локальными. Ниже показан пример потока Flow, который служит для автоматического создания задач в Project Online при получении электронного письма на заданный адрес.

Сервис Microsoft Flow позволяет сохранять наиболее полезные и актуальные потоки в качестве шаблонов и публиковать их для других пользователей. Например, вот такие готовые шаблоны потоков выдаются при поиске по слову Project.

Microsoft Flow в сравнении с IFTTT

По своей сути Microsoft Flow очень схож с давно существующим популярным сервисом IFTTT («If This, Then That»). В обоих сервисах используется схожая идея. В Microsoft Flow – потоки (flows), в IFTTT – рецепты (recipes). Термины разные, но суть одна – события и связанные действия. Пользовательский интерфейс обоих сервисов весьма схож.

Например, на рисунке ниже показаны шаблоны сервиса Microsoft Flow.

Для сравнения привожу вид шаблонов из сервиса IFTTT. Если вы пользовались IFTTT, вам не составит труда освоить Microsoft Flow.

Замечу, что компания Microsoft активно разрабатывает соединения (channels) к своим облачным службам для сервиса IFTTT, за что ей больше спасибо. Я пользуюсь сервисом IFTTT для автоматизации некоторых своих задач. Например, у меня скриншоты с iPhone автоматически синхронизируются в OneDrive с помощью IFTTT. Другой пример – когда я подъезжаю к дому, автоматически включается свет. Никакой магии – только управляемые через интернет лампы и приложение IFTTT на iPhonе, настроенное на определенную геолокацию.

Перспективы Microsoft Flow

Вернемся к Microsoft Flow. Безусловно, это замечательный сервис, имеющий потенциал развития. Важно, что он выходит за рамки одной платформы Microsoft и поддерживает сторонние сервисы. Flow имеет возможности расширения и Custom API для разработчиков. Поддерживается Project Online, чего нет в IFTTT. Поддерживается специфика Office 365. Очевидно, вскоре количество поддерживаемых сервисом приложений возрастет. Количество доступных событий и действий также будет увеличивается. Соответственно, станут возможными многие сценарии интеграции приложений, которые сейчас реализуются только с помощью программирования. Microsoft Flow тесно связан с другой новой технологией от Microsoft – PowerApps.

Автор статьи, оригинал которой опубликован здесь, – Алексей Явкин, Руководитель компании Бастион-Интегратор .

Подпишитесь, чтобы получать новые статьи

Для пользователей Office 365 в 2016 году был официально запущен открытый бета-тест нового в то время продукта от компании Microsoft «Microsoft Flow». В данной статье мы попробуем поближе познакомиться с сервисом, который призван автоматизировать наши рутинные задачи и облегчить жизнь и работу сотрудников компании.

Microsoft Flow – облачный сервис от компании Microsoft, который позволяет автоматизировать рабочие процессы между приложениями, службами и online-сервисами. Эти процессы можно использовать для сбора данных, синхронизации файлов, получения уведомлений и других целей.

На данный момент реализована поддержка более 200 различных сторонних сервисов и служб таких гигантов как Google, Dropbox, Slack, WordPress, а также различных социальных сервисов: Blogger, Instagram, Twitter, Youtube, Facebook, Vimeo и тд. Конечно же, помимо этого доступна простая интеграция с приложениями Office 365.

Для упрощения использования MS Flow компания Microsoft предоставила нам большое число стандартных шаблонов для различных приложений и событий, которые мы можем использовать, просто заполнив набор необходимых параметров. Также пользователи могут сами создавать шаблоны в конструкторе и публиковать их для использования другими пользователями.

Рассмотрим примеры популярных сценариев:

  • Контроль данных в электронной почте.

Мы можем собирать письма по определенным критериям (тема, отправитель и тд), статистику по этим письмам, например, в Excel на OneDrive для дальнейшего анализа с помощью средств MS Office.

  • Сбор и контроль данных из социальных сетей.

Можно отслеживать посты в социальных сетях Facebook, Twitter, Instagram по ключевым словам (например, упоминание компании/продукта). Затем настроить получение уведомлений по таким событиям, собирать данные и мнения людей для дальнейшего анализа.

  • Синхронизация данных.

С помощью MS Flow мы можем настроить синхронизацию данных между файловыми хранилищами OneDrive, Dropbox, GoogleDrive и тд. Например, собирать все актуальные версии файлов с серверов заказчика у себя в OneDrive и не думать о проблемах с версионностью.

Читайте также:  Сборка пк за 35к

Теперь давайте рассмотрим подробнее несколько простых сценариев, демонстрирующих нам, что для использования «Microsoft Flow» не нужно быть разработчиком или ИТ-специалистом, достаточно всего лишь иметь учетную запись Microsoft Office 365.

К примеру, мы хотим отслеживать твиты, в которых упоминается название нашего продукта или компании, и создавать в Dynamics CRM Интерес (Лид) для автора твита. Для этих целей есть уже готовый шаблон, поэтому нам не придется тратить время на дополнительные настройки или создание с нуля.

  1. Переходим на http://flow.microsoft.com/, заходим под своей учетной записью Office 365 и находим подходящий для наших целей шаблон.

  1. Для нашей задачи нам также необходимо авторизоваться в Twitter и выбрать организацию, для которой будет создаваться Интерес. После авторизации нажимаем Continue.

  1. Настраиваем основные параметры по шагам. Очень удобно, что на любом шаге мы можем добавить действие или дополнительное условие для проверки, что позволяет нам фильтровать результаты и выполнять различные действия зависимости от этого. Весь процесс настройки сводится к принципу логического построения шаблона “Если ХХХ, тогда YYY”.

  1. После выполнения требуемых настроек необходимо сохранить процесс. Далее в разделе My Flows можно увидеть созданный процесс, отключить и/или отредактировать его.
  1. Теперь опубликуем твит, содержащий заданное ключевое слово. Спустя время мы видим, что в Dynamics CRM создался Интерес для пользователя, который опубликовал твит с ключевым словом.

Как видно, конструктор на основе шаблонов предлагает очень обширные и гибкие возможности для бизнеса, но что делать если для бизнес-целей нет подходящего шаблона?

Для этого используется система триггеров (прим.: триггер – событие, при наступлении которого начнется выполнение процесса). Продемонстрируем на простом примере: мы хотим получать сообщения на почту при создании интереса в Microsoft Dynamics 365 (CRM).

1. Открываем сайт http://flow.microsoft.com/, находим сервис Dynamics 365 .

2. Для данного сервиса предусмотрено несколько триггеров, которые могут срабатывать на создание, обновление, удаление записи. Выбираем триггер создания записи “When a record is created”, затем выбираем организацию, для которой создается процесс, название сущности (объекта системы), на создание которой будет реагировать наш триггер и нажимаем “+ New step”.

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

В данном случае мы добавим действие “Add an action”. У нас на выбор есть огромное количество всевозможных видов действий: отправка sms, выполнение запроса к SQL-серверу, сбор данных и запись в файл, получение информации о погоде, создание поста в соц. сетях, работа с календарем, контактами и тд.

Сейчас выберем действие “Send an email” для решения нашей тривиальной задачи.

4. Заполним обязательные параметры. При необходимости список параметров можно развернуть для более тонкой настройки почтового сообщения. Обратим внимание на такую прекрасную вещь, как динамический контент. Мы можем вытащить данные из полей создаваемой записи и использовать в нашем почтовом сообщении. Например, возьмем поле “Имя” и добавим его в тело сообщения, после обработки сообщения на этом месте выведется Имя Интереса из системы.

Как мы видим сервис предлагает нам множество возможностей и большинство из них доступно бесплатно. Есть также возможность приобрести премиум аккаунт, который добавляет возможность работать с дополнительными сервисами. Однако в большинстве случаев бесплатного аккаунта достаточно для решения большинства рутинных задач и сокращения трудозатрат сотрудников на подобные задачи.

В данной статье мы рассмотрели только малую часть потенциала, скрываемого под названием «Microsoft Flow», и надеюсь у вас появилось желание попробовать данный сервис в своих повседневных бизнес-задачах, ведь как гласит лозунг этого сервиса «Work less, do more»!

Постановка задачи

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

В таких требованиях нет ничего особенного. Достаточно легко написать программу, которая бы напоминала мне об этих событиях. Но desktop-приложение обладает существенным недостатком. Оно будет работать только на одной машине, в то время, как у меня их несколько (дома, на работе, . ). И еще есть смартфон… Не было бы здорово получать уведомления на любом из моих устройств?

Ну, можно сохранять информацию о событиях в каком-нибудь Интернет-хранилище (например Mlab). В этом случае все экземпляры моего приложения будут работать с одной и той же информацией, что позволит им быть синхронизированными между собой. Тем не менее, мне потребуется установить эти приложения на все мои компьютеры. Кроме того, я использую Windows на компьютерах и Android на смартфоне, так что мне придется писать несколько различных приложений, если я действительно хочу получать свои уведомления везде. Как преодолеть эту проблему? С помощью Web, конечно же.

Читайте также:  Генерация штрих кода php

Если я создам Web-приложение, я смогу использовать его практически на любом устройстве. Замечательно! Но все же не достаточно замечательно. Позвольте мне объяснить мою точку зрения. Хотя не так трудно написать Web-приложение, решающее мою проблему, тем не менее в этом случае мне придется заботиться о множестве вещей. Нужно думать о хостинге, о хранилище данных, о хранении кода, … И зачем? Практически вся требуемая функциональность уже реализована в современных Web-календарях, таких как Google Calendar. Он может создавать события, делать их повторяющимися, посылать мне уведомления об их наступлении, и т.п. Единственно чего там нет, так это требуемой мне рандомизации. Не было бы здорово, если бы я мог просто добавить эту возможность, и использовать все остальные уже имеющиеся возможности?

Когда я думал об этой проблеме, я наткнулся на сайт IFTTT.com. Идея этого сайта проста, но продуктивна. Если что-то происходит, он что-то делает. Я знаю, это звучит странно, поэтому позвольте привести ряд примеров. Если я получил электронное письмо от определенного человека, пошли мне SMS. Если мой любимый автор опубликовал новую статью в своем блоге, сообщи мне об этом в Slack. Или если пришло время определенного события в Google Calendar, пошли мне письмо. Надеюсь, теперь понятно, к чему я веду. Этот сервис может следить за определенными событиями (они называются триггерами) и выполнять некоторые действия, когда эти события произошли. IFTTT поддерживает огромное количество возможных триггеров и действий. Я мог бы отслеживать мои события в Google Calendar, и когда определенное событие происходит, я бы посылал себе письмо, удалял старое событие и добавлял новое на более позднее время. Здорово! Именно то, что требуется! Но не совсем.

Прежде всего, IFTTT допускает только одно действие на триггер. Это не такая уж большая проблема, т.к. можно создать несколько апплетов с идентичными триггерами (апплетом называется комбинация триггера и действия в IFTTT). Один будет слать мне письмо, другой — удалять старое событие, третий — создавать новое событие. Но есть и более серьезное препятствие. Для нового события мне нужно создавать время срабатывания с рандомизацией. И я не нашел, как это сделать в IFTTT. Это означает, что данный сервис не может решить мою задачу. Но, может быть в Интернет есть другие подобные сервисы? Да, есть.

Следующим сайтом, который я рассматривал, был Zapier. Здесь мы можем использовать несколько действий на один триггер, что хорошо. Но это доступно только за деньги, что не так хорошо. Я не играл с Zapier достаточно долго, но у меня сложилось впечатление, что он также не дает возможности для требуемой мне рандомизации. Хотя тут я могу и ошибаться. В любом случае, я перешел к следующему кандидату.

Это был Microsoft Flow. Данный сервис позволяет мне отслеживать 750 срабатываний триггера в месяц бесплатно. Это более чем достаточно для моих нужд. Более того, он имеет поддержку выражений, среди которых есть и функция rand()! Это именно то, что нужно. Теперь позвольте мне показать, как решить описанную задачу с помощью Microsoft Flow.

Решение

Сначала нужно создать новый поток (flow). Потоком называется комбинация триггера и действий. Чтобы сделать это, зарегистрируйтесь на сайте и в главном меню щелкните на My flows, а затем на Create from blank:

Щелкните на кнопке Create from blank:

Вас попросят выбрать триггер. Введите «calendar» в поле поиска и выберите Google Calendar:

В списке доступных триггеров для Google Calendar выберите When an event starts:

Здесь вас могут попросить разрешить доступ со стороны Microsoft Flow к Google Calendar от вашего лица.

Теперь триггер готов. Его единственным параметром является календарь:

Да, в Google Calendar вы можете создать несколько календарей. Каждое событие принадлежит к одному из календарей, и вам нужно выбрать календарь, чьи события будут запускать ваши действия.

Нет ничего плохого в том, что создать новый календарь и класть в него все события, по которым должны срабатывать ваши действия. Но если не все события в календаре должны обрабатываться, вы можете использовать фильтрацию. Нажмите New step и затем Add a condition:

Это создаст для вас фильтр. Теперь нужно решить, как именно мы хотим фильтровать события. К примеру, я хочу обрабатывать только те события, которые содержат текст "[RANDOM]" в поле “местоположение”. Чтобы выполнить это, щелкните на поле ввода Choose value. Microsoft Flow покажет вам список возможных значений, с которыми вы можете работать:

Щелкните на Event List Event Location. И заполните остальные поля соответствующими значениями:

Обратите внимание на ссылку Edit in advanced mode. Она очень полезна. Если щелкнуть на нее, вы получите представление того же условия в виде текстового выражения:

Это очень поможет, когда придет время писать ваши собственные выражения.

Теперь можно добавлять действия для наших событий. В ветке If yes вашего фильтра щелкните на ссылку Add an action. Здесь я создам действие, которое будет посылать мне уведомление о событии на Gmail:

Как вы можете видеть, можно использовать данные из вашего события чтобы заполнить поля Subject, Body и другие свойства этого действия.

Читайте также:  Все о криптовалюте и блокчейн

Теперь у нас есть уведомления. Пришло время удалить старое событие в календаре и создать новое на более позднее время. С помощью ссылки Add an action создайте действие Delete an event для Google Calendar:

Следует сказать, что вполне возможно просто изменить событие в календаре вместо того, чтобы удалять старое и создавать новое. Но здесь я буду все же придерживаться последнего варианта, чтобы показать вам еще одну возможность Microsoft Flow. Пусть я хочу, чтобы создание нового события в календаре происходило не после удаления старого, а параллельно с этим. Наведите мышку на стрелку между действиями Send email и Delete an event. На экране появится знак «плюс». Щелкните на нем и выберите Add a parallel branch → Add an action в контекстном меню:

Теперь мы можем добавить параллельное действие Create an event из Google Calendar. Для этого действия мы возьмем заголовок, описание и местоположение из нашего исходного события. Единственная вещь, которую осталось сделать — это установить время начала и окончания нового события:

Теперь мы подходим к действительно интересной части. Нам нужно как-то добавить случайное число дней ко времени старта текущего события. Эту новую дату мы будем использовать в качестве начала создаваемого события. Например, я хочу добавить 30 дней плюс/минус 2 дня. Документацию по доступным функциям можно найти здесь. Признаюсь, это не очень простое чтение. У меня было много вопросов, особенно о том, как извлечь время начала из исходного события, чтобы его можно было использовать в функциях. Определенную помощь можно получить от нашего фильтра. Помните ссылку Edit in advanced mode:

Щелчок на ней показывает соответствующее выражение:

Это дало мне некоторую подсказку в написании моих выражений. Теперь щелкните на поле Start time события Create an event и выберите вкладку Expression:

В поле ввода запишите следующее выражение:

addDays(triggerBody()?[‘start’], add(30, rand(mul(2, -1), add(2, 1))))

и нажмите кнопку Ok. Данное выражение в точности решает нашу задачу: добавляет 30 дней плюс/минус 2 дня ко времени начала исходного события. Но что, если мне нужна некоторая гибкость? Что, если я хочу иметь несколько типов событий? Для событий первого типа я буду увеличивать время начала на 30 дней плюс/минус 2 дня, для событий второго типа — на 14 дней плюс/минус 3 дня, и т.д. Каким образом возможно достичь этого?

Вот один из способов. Помните, что мы храним строку "[RANDOM]" в поле “местоположение” наших событий? Теперь запишем в это поле дополнительную информацию. Его содержимым будет текст в формате "[RANDOM],NN,MM", где NN — две цифры и MM — также две цифры. Будем увеличивать время наступления события на NN дней плюс/минус MM дней. При использовании этого формата, я могу быть уверен, что символы в позициях 9 и 10 (начиная с 0) строки будут представлять NN, а символы в позициях 12 и 13 — MM. А вот выражение, использующее этот новый формат хранения информации для увеличения времени начала события:

addDays(triggerBody()?[‘start’], add(int(substring(triggerBody()?[‘location’], 9, 2)), rand(mul(int(substring(triggerBody()?[‘location’], 12, 2)), -1), add(int(substring(triggerBody()?[‘location’], 12, 2)), 1))))

Оно использует функцию substring для выделения нужных частей из строки, и функцию int для преобразования их к целочисленному виду.

Здорово! Мы почти достигли нашей цели. Осталось только установить время окончания нового события. И здесь мы встречаем наше последнее препятствие. Нужно, чтобы время окончания события равнялось времени его начала плюс 15 минут. Microsoft Flow поддерживает функцию addMinutes, и можно было бы написать выражение типа:

Однако по природе функции rand, в результате мы получим значение, никак не связанное со значением для времени начала события. Вместо этого было бы хорошо иметь переменную ‘nextStart’, которая бы хранила значение нашего выражения. Тогда можно было бы использовать ее значение для времени начала события, и использовать

для времени его окончания. И знаете что? Microsoft Flow поддерживает переменные. Сперва мы должны инициализировать ее. Наведите мышь на стрелку между триггером и фильтром. Щелкните на знаке “плюс” и выберите Add action:

Введите в поле поиска текст «Variables» и выберите Initialize variable:

Задайте имя переменной ‘nextStart’ и тип «String». Microsoft Flow не имеет отдельного типа для дат и времени, он везде использует строки.

Теперь нужно установить значение для этой переменной. Этого нельзя сделать прямо здесь, поскольку еще не известно, правильное ли это событие. Только после фильтра мы можем быть в этом уверены. Поэтому добавим другое действие типа Set variable после отправки почтового уведомления:

Здесь установим значение созданной переменной в наше длинное выражение. Остается только переиспользовать эту переменную в выражениях для времени начала и окончания события. Ссылаться на переменную в выражении можно так:

Поэтому выражение для времени окончания события будет иметь вид:

Заключение

Вот и конец истории. Нужно только сохранить поток, и Microsoft Flow запустит его для нас.

Надеюсь, эта статья будет полезна для вас. Для меня Microsoft Flow оказался замечательным инструментом автоматизации задач.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.