Давайте не будем терять время и посмотрим сегодня на один из сценариев, а именно:
Запуск 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 и добавляем несколько полей:
- ActionType – тип вызываемого действия
- Comments – комментарии
- ParentItemID – идентификатор родительского элемента (заявки)
- DelegateTo – дополнительное поле для хранения делегата
- 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 кроется огромное количество интересных особенностей, которые могут быть не видны на первый взгляд, однако они могут очень помочь при реализации различных кейсов. В следующих статьях я постараюсь показать Вам еще больше возможностей. Спасибо большое за внимание!
ссылка на оригинал статьи https://habr.com/ru/post/504250/
Добавить комментарий