Техники И Особенности Работы С Microsoft Power Platform

Добрый день друзья! В этой статье я хотел бы поделиться различными приемами работы с Microsoft Power Platform и рассказать, как можно выполнять различные интересные операции, используя базовые возможности Power Apps, Power Automate и других сервисов линейки Microsoft Power Platform. Если вы не знакомы с Microsoft Power Platform, рекомендую прочитать здесь.

этот И этот статьи.

Там подробно описано, что это за сервисы, как с ними работать, а также какие средства автоматизации и приложения можно сделать на основе Power Apps и Power Automate. Сегодня мы рассмотрим различные прикладные техники.

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

Итак, начнем.



Техники и особенности работы с Microsoft Power Platform



Обновление элемента источника данных с помощью формулы Patch()

Многие знают о возможности взаимодействия с элементами источников данных через формы и функции SubmitForm(), позволяющей вносить изменения в запись одним вызовом.

Но бывают ситуации, в которых использовать формы нецелесообразно по ряду причин, что приводит к тому, что мы не можем использовать функцию SubmitForm() и в этом случае нам поможет функция Patch().

Давайте посмотрим на простой пример.

Создаем заявку на командировку с помощью приложения Power Apps. У нас есть отдельный экран и несколько элементов управления вводом данных, и нам нужно создать элемент в источнике данных с помощью функции Patch().



Техники и особенности работы с Microsoft Power Platform

Берем кнопку «Сохранить» и в свойстве «OnSelect» пишем:

Техники и особенности работы с Microsoft Power Platform

Функция Patch имеет следующий синтаксис Patch( , ,{ }) Если вам нужно создать новый элемент в исходнике, то Defaults( ) используется в качестве типа операции.

Если необходимо обновить существующую запись, то конструкция { : } используется.

То есть для обновления элемента формула будет выглядеть так:

Техники и особенности работы с Microsoft Power Platform

Где Gallery1.Selected.ID — идентификатор выбранной записи в таблице всех заказов.

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

Например, перед сохранением даты можно преобразовать ее в нужный формат, посчитать дни с учетом выходных и праздников и так далее.



Обработка элементов в цикле

Довольно часто возникают ситуации, когда вам необходимо организовать в приложении Power Apps цикл обработки массива или табличных данных.

Можно ли выполнить подобную операцию прямо в приложении? Да, в Power Apps для этого есть функция ForAll().

Давайте рассмотрим еще один небольшой пример.

Существует форма для размещения нового запроса на канцтовары.

Также в этой форме вы можете заполнить перечень и количество запрашиваемых канцтоваров в таблице.



Техники и особенности работы с Microsoft Power Platform

Но, как вы понимаете, мы находимся на экране создания приложения и поэтому все введенные в таблицу канцелярские товары еще никуда не сохранены, так как не сохранено основное приложение.

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

Прежде всего, мы размещаем функцию Collect() на кнопке «Добавить».



Техники и особенности работы с Microsoft Power Platform

Функция Collect позволяет сохранять данные во внутренней переменной сбора Power Apps. Название коллекции мы придумываем сами.

Атрибуты коллекции мы также придумываем сами.

Я придумал атрибут Title и атрибут Count. Заполняем их с помощью кнопки «Добавить» из соответствующих полей на экране.

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

Это будет выглядеть так.



Техники и особенности работы с Microsoft Power Platform

Сначала создаем основной элемент запроса на канцелярские товары и сразу сохраняем его, помимо источника данных, в переменную varCreatedItem. Далее с помощью цикла ForAll мы проходим по каждой строке в коллекции канцелярских товаров, создаем соответствующую запись в источнике данных и используем поле ParentItemID и значение переменной varCreatedItem, свойства ID, для связи с основным запросом.

В результате получаем следующий список канцелярских товаров, относящихся к основному приложению.



Техники и особенности работы с Microsoft Power Platform

Дело сделано, цикл работает.

Запуск потока Power Automate из отчета Power BI

Довольно интересный способ взаимодействия с данными из отчета Power BI. В некоторых случаях вам может потребоваться запустить поток прямо из отчета, чтобы отправлять уведомления или сохранять данные в другой источник.

Для этого вы можете использовать встроенную возможность Power BI для вызова потоков Power Automate. Мы добавляем визуализацию Power Automate на холст отчета и переносим поля, которые мы будем использовать внутри потока Power Automate, в раздел Данные Power Automate.

Техники и особенности работы с Microsoft Power Platform

Затем нажмите «Изменить» на объекте визуализации Power Automate и приступайте к созданию нового потока.

Поток будет содержать цикл, поэтому данные передаются в поток в виде массива.

Триггер — это кнопка, нажимаемая на холсте отчета Power BI.

Техники и особенности работы с Microsoft Power Platform

Теперь нажмите «Сохранить и применить», и в отчете появится кнопка запуска потока, которая передаст данные из набора на вход потока и запустит поток.

Поток запускается левой кнопкой мыши с удержанием CTRL. Этот пример можно настроить как в службе Power BI, так и в Power BI Desktop, что устраняет необходимость в лицензиях Power BI Pro.

Техники и особенности работы с Microsoft Power Platform



Добавьте приложение Power Apps в отчет Power BI.

Подобно предыдущему варианту с запуском потока, вы также можете добавить приложение Power Apps на холст отчета.

Одно уточнение — этот пример лучше настроить в Power BI Service, а не в Power BI Desktop, то есть вам понадобится лицензия Power BI Pro. По той же схеме добавляем в отчет визуализацию Power Apps и определяем поля из набора, которые будут использоваться в приложении.

Далее нажмите «Создать новое приложение».



Техники и особенности работы с Microsoft Power Platform

Мы создаем простое приложение Power Apps и используем PowerBIIntegration.Data в качестве источника данных.



Техники и особенности работы с Microsoft Power Platform

Теперь мы можем добавить экран создания нового запроса на командировку и с помощью уже знакомой нам функции Patch сохранить результат в источник данных, который будет синхронизирован с набором данных Power BI, используемым в отчете.



Техники и особенности работы с Microsoft Power Platform



Вызов приложения холста PowerApps с помощью кнопок из списка SharePoint Online

Нам хорошо известна возможность настройки внешнего вида формы создания, просмотра и редактирования элемента в SharePoint Online с помощью Power Apps. Но эти формы имеют множество особенностей и недостатков.

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

Как мне это сделать.

Сначала мы создаем приложение Power Apps и создаем в нем три основных экрана — Создание, просмотр и редактирование элемента.

Самое главное, что у нас есть ссылка на приложение, которую можно взять из его свойств.



Техники и особенности работы с Microsoft Power Platform

Далее нам нужно будет создать по 3 страницы ASPX для каждого события (Создание, просмотр, редактирование) соответственно.

Проще всего это сделать в SharePoint Designer, который, несмотря на свой преклонный возраст, отлично работает с SharePoint Online. Страница создания элемента будет выглядеть так.



Техники и особенности работы с Microsoft Power Platform

  
   

function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split('&'); for (var i = 0; i < vars.length; i++) { var pair = vars[i].

split('='); if (decodeURIComponent(pair[0]) == variable) { return decodeURIComponent(pair[1]); } } } var play = " https://apps.powerapps.com/play/f8b58706-b202-4281-b845-1d082a35e903ЭtenantId=80ff03f9-8ca0-49b3-a1a3-5c2883b8db69 "; var id = getQueryVariable("ID"); var searchstring = encodeURIComponent(document.referrer); window.location.replace(play+"&ParamFormMode=New" + "&ParamSourceUrl="+searchstring);

Главное, что мы делаем на этих страницах, — это перенаправление с SharePoint Online на приложение холста Power Apps. Кроме того, мы пересылаем идентификатор элемента (для просмотра и редактирования форм) и обратную ссылку, если хотим вернуться из приложения в SharePoint Online. Страницы готовы, но их необходимо связать с событиями из списка SharePoint Online. Для этого мы используем скрипт Powershell.

Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.dll" Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.SharePoint.Client.Runtime.dll" Add-Type -Path "C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell\Microsoft.Online.SharePoint.Client.Tenant.dll" $SiteURL=" https://doctrix.sharepoint.com/sites/portal-demo-site " $ContentTypeID="0x0100FD35A1E4246A5F409061499070D239F100F3367436883B81479BCB4DD6DE13CC29" $ListName="Education Requests" #Get Credentials to connect $Cred= Get-Credential #Setup the context $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL) $Ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.Username, $Cred.Password) $Web = $Ctx.Web $lists = $Ctx.web.Lists $list = $lists.GetByTitle($ListName) $ContentType = $list.ContentTypes.GetById($ContentTypeID) $ContentType.NewFormUrl = "SitePages/AssetNewFormEdication.aspx" $ContentType.DisplayFormUrl = "SitePages/AssetDispFormEdication.aspx" $ContentType.EditFormUrl = "SitePages/AssetEditFormEdication.aspx" $ContentType.Update($false) $Ctx.ExecuteQuery()

Этот скрипт свяжет наши страницы с типом контента списка и сделает это в трех типах форм.

Переплет готов.

Остается только обработать входные параметры внутри самого приложения Power Apps. Для этого нам нужны свойства StartScreen и OnStart для объекта App. Здесь мы определяем в зависимости от входного параметра, на какой экран мы перейдем после открытия приложения.



Техники и особенности работы с Microsoft Power Platform

Здесь мы определяем обратный SourceURL для возврата в SharePoint Online и элемент контекста из списка SharePoint для форм просмотра и редактирования.



Техники и особенности работы с Microsoft Power Platform

Не забудьте также создать кнопку для возврата к списку SharePoint Online после завершения работы с экраном.



Техники и особенности работы с Microsoft Power Platform

Теперь, когда мы нажимаем на кнопку «Создать» в списке SharePoint Online, вызывается не форма SharePoint, а полноценное холстовое приложение, а на вход также подаются параметры, определяющие, какой экран нужен быть открытым.

Для кнопок «Просмотр» и «Редактировать» дополнительно определяется идентификатор элемента, по которому был выполнен клик, и этот элемент извлекается из списка.

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



Техники и особенности работы с Microsoft Power Platform

В этой статье мы рассмотрели несколько приемов, которые можно использовать при работе с Microsoft Power Platform. В будущем появятся еще более интересные функции и приемы, так что следите за обновлениями.

Всем хорошего дня! Теги: #Разработка для Office 365 #Microsoft Azure #облачные службы #sharepoint #office365 #power Platform #powerapps #microsoft365 #microsoft365 #команды #power автоматизировать #power автоматизировать #sharepoint online #sharepoint online

Вместе с данным постом часто просматривают: