Тонкости Power Automate и Logic Apps. Справочник citizen developer'a #1

    Добрый день всем! В одной из прошлых своих статей я рассказывал какими особенностями обладают облачные сервисы Power Automate и Logic Apps. Мы рассмотрели в чем основные различия между ними, изучили в каких случаях следует использовать тот или иной сервис, а также познакомились с некоторыми сценариями использования. Сегодня я бы хотел начать новый цикл статей, посвященный различным лайфхакам и обходным решениям, которые позволят реализовать ряд бизнес-сценариев, с использованием доступных инструментов.



    Давайте не будем терять время и посмотрим сегодня на один из сценариев, а именно:

    Запуск Logic Apps потока по кнопке из приложения Power Apps


    В некоторых случаях, в ходе проектирования и настройки различных модулей системы, выгоднее использовать Logic Apps, нежели Power Automate. Причин на то может быть множество, но одна из самых популярных – наличие «премиум» коннекторов в Logic Apps без покупки дополнительных планов, как например в Power Automate. К примеру, внутри потока Вам может потребоваться осуществить вызов HTTP веб-сервиса и законнектиться с SQL Server, но в Power Automate данные коннекторы недоступны без покупки специального плана по пользователям или по потокам. В этом случае нам поможет Logic Apps, где используется немного другой механизм тарификации и все коннекторы, включая «премиум» доступны изначально. Более подробно про особенности Logic Apps можно почитать в этой статье.

    Однако, есть одна особенность – Logic Apps поток нельзя запустить по кнопке из формы или приложения Power Apps, в отличие от Power Automate потока. Как решить эту задачу? На самом деле, решение довольно простое. Рассмотрим данный кейс на примере процесса подачи заявки на техническую поддержку.

    Итак, в нашем случае, у нас есть список SharePoint «Заявки на техническую поддержку»:



    Дополнительно, на списке сделана кастомизация формы с использованием Power Apps:



    Как Вы можете заметить, в шапке формы есть переход на дополнительный экран с кнопками действий по выбранной заявке:



    Нажимаем «Делегировать заявку» и заполняем дополнительные поля:



    По кнопке «Подтвердить» необходимо запустить поток Logic Apps, но у нас нет возможности осуществить эту операцию напрямую. Поэтому попробуем сделать немного иначе.

    Создаем на сайте SharePoint дополнительный список ActionsList и добавляем несколько полей:

    1. ActionType – тип вызываемого действия
    2. Comments – комментарии
    3. ParentItemID – идентификатор родительского элемента (заявки)
    4. DelegateTo – дополнительное поле для хранения делегата
    5. CompleteProcessFlag – флаг обработки действия



    Теперь из PowerApps делаем создание элемента в списке ActionsList при нажатии на кнопку «Подтвердить»:



    С помощью функции Patch, создаем новый элемент в списке ActionsList с типом «Delegate» и передачей остальных значений контролов с формы. Проверяем что элемент создается:



    Теперь можем перейти к Logic Apps. Идем в Azure, создаем новый поток Logic Apps и указываем триггер «При создании элемента в списке SharePoint»:



    Делаем поток с переключателем:



    Логика данного потока в следующем:

    При создании элемента в списке ActionsList поток поднимается, проверяет значение поля «ActionType» нового элемента и, в зависимости от типа действия, идет на одну из веток переключателя, где обрабатывается требуемая логика. Таким образом, мы с Вами можем в одном потоке сделать сколько угодно веток для переключателя и обрабатывать любые события, в рамках одного потока. Останется только создавать в списке ActionsList элементы с нужными типами событий и добавить поддержку этих типов в поток, в виде дополнительных веток переключателя.
    Давайте сделаем еще одно создание события из PowerApps, например, для отмены заявки:



    В данном случае в списке ActionsList появится новое событие с типом «Reject» и комментариями к отмене. Обязательно передаем значение идентификатора родительского элемента, иначе потом найти требуемую заявку из потока будет весьма проблематично. Далее, надо добавить поддержку нового типа события в потоке Logic Apps. Делаем еще одну ветку в переключателе:



    И осталось добавить в самый конец потока обновление флага обработки, для того, чтобы понимать какие события обработаны нашим потоком, а какие нет:



    Этот флаг поможет в случае непредвиденных ситуаций, в ходе которых обработка события потоком выполнена неудачно. Можно будет сделать поток, который, например, два раза в день будет подниматься по расписанию и обрабатывать события в списке ActionsList, у которых флаг «CompleteProcessFlag» равен No.

    Описанный в данной статье механизм успешно реализован и стабильно работает у нескольких клиентов. В заключение хотелось бы сказать, что в Power Platform кроется огромное количество интересных особенностей, которые могут быть не видны на первый взгляд, однако они могут очень помочь при реализации различных кейсов. В следующих статьях я постараюсь показать Вам еще больше возможностей. Спасибо большое за внимание!
    AdBlock похитил этот баннер, но баннеры не зубы — отрастут

    Подробнее
    Реклама

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое