Добрый день друзья! В этой статье я хотел бы поделиться различными приемами работы с Microsoft Power Platform и рассказать, как можно выполнять различные интересные операции, используя базовые возможности Power Apps, Power Automate и других сервисов линейки Microsoft Power Platform. Если вы не знакомы с Microsoft Power Platform, рекомендую прочитать здесь.
этот И этот статьи.
Там подробно описано, что это за сервисы, как с ними работать, а также какие средства автоматизации и приложения можно сделать на основе Power Apps и Power Automate. Сегодня мы рассмотрим различные прикладные техники.
Сразу отмечу, что все приведенные ниже примеры являются тестовыми вариантами и поэтому дизайн может местами отсутствовать, но о дизайне и внешнем виде Power Apps мы поговорим в следующей статье.
Итак, начнем.
Обновление элемента источника данных с помощью формулы Patch()
Многие знают о возможности взаимодействия с элементами источников данных через формы и функции SubmitForm(), позволяющей вносить изменения в запись одним вызовом.Но бывают ситуации, в которых использовать формы нецелесообразно по ряду причин, что приводит к тому, что мы не можем использовать функцию SubmitForm() и в этом случае нам поможет функция Patch().
Давайте посмотрим на простой пример.
Создаем заявку на командировку с помощью приложения Power Apps. У нас есть отдельный экран и несколько элементов управления вводом данных, и нам нужно создать элемент в источнике данных с помощью функции Patch().
Берем кнопку «Сохранить» и в свойстве «OnSelect» пишем:
Функция Patch имеет следующий синтаксис Patch( , ,{ })
Если вам нужно создать новый элемент в исходнике, то Defaults( ) используется в качестве типа операции.
Если необходимо обновить существующую запись, то конструкция { : } используется.
То есть для обновления элемента формула будет выглядеть так:
Где Gallery1.Selected.ID — идентификатор выбранной записи в таблице всех заказов.
Удобство использования функции Patch заключается в том, что вы можете управлять логикой, с помощью которой вы определяете, какое значение, в каком формате и форме вы записываете в конкретное поле источника данных.
Например, перед сохранением даты можно преобразовать ее в нужный формат, посчитать дни с учетом выходных и праздников и так далее.
Обработка элементов в цикле
Довольно часто возникают ситуации, когда вам необходимо организовать в приложении Power Apps цикл обработки массива или табличных данных.Можно ли выполнить подобную операцию прямо в приложении? Да, в Power Apps для этого есть функция ForAll().
Давайте рассмотрим еще один небольшой пример.
Существует форма для размещения нового запроса на канцтовары.
Также в этой форме вы можете заполнить перечень и количество запрашиваемых канцтоваров в таблице.
Но, как вы понимаете, мы находимся на экране создания приложения и поэтому все введенные в таблицу канцелярские товары еще никуда не сохранены, так как не сохранено основное приложение.
Более того, теперь мы можем достичь сразу двух целей и, помимо обработки строк в цикле, также можем сохранять данные строк в источнике со ссылкой на родительский запрос.
Прежде всего, мы размещаем функцию Collect() на кнопке «Добавить».
Функция Collect позволяет сохранять данные во внутренней переменной сбора Power Apps. Название коллекции мы придумываем сами.
Атрибуты коллекции мы также придумываем сами.
Я придумал атрибут Title и атрибут Count. Заполняем их с помощью кнопки «Добавить» из соответствующих полей на экране.
Теперь, по событию сохранения основного запроса, нам нужно в цикле переместить строки из внутренней коллекции в источник данных.
Это будет выглядеть так.
Сначала создаем основной элемент запроса на канцелярские товары и сразу сохраняем его, помимо источника данных, в переменную varCreatedItem. Далее с помощью цикла ForAll мы проходим по каждой строке в коллекции канцелярских товаров, создаем соответствующую запись в источнике данных и используем поле ParentItemID и значение переменной varCreatedItem, свойства ID, для связи с основным запросом.
В результате получаем следующий список канцелярских товаров, относящихся к основному приложению.
Дело сделано, цикл работает.
Запуск потока Power Automate из отчета Power BI
Довольно интересный способ взаимодействия с данными из отчета Power BI. В некоторых случаях вам может потребоваться запустить поток прямо из отчета, чтобы отправлять уведомления или сохранять данные в другой источник.
Для этого вы можете использовать встроенную возможность Power BI для вызова потоков Power Automate.
Мы добавляем визуализацию Power Automate на холст отчета и переносим поля, которые мы будем использовать внутри потока Power Automate, в раздел Данные Power Automate.
Затем нажмите «Изменить» на объекте визуализации Power Automate и приступайте к созданию нового потока.
Поток будет содержать цикл, поэтому данные передаются в поток в виде массива.
Триггер — это кнопка, нажимаемая на холсте отчета Power BI.
Теперь нажмите «Сохранить и применить», и в отчете появится кнопка запуска потока, которая передаст данные из набора на вход потока и запустит поток.
Поток запускается левой кнопкой мыши с удержанием CTRL. Этот пример можно настроить как в службе Power BI, так и в Power BI Desktop, что устраняет необходимость в лицензиях Power BI Pro.
Добавьте приложение Power Apps в отчет Power BI.
Подобно предыдущему варианту с запуском потока, вы также можете добавить приложение Power Apps на холст отчета.Одно уточнение — этот пример лучше настроить в Power BI Service, а не в Power BI Desktop, то есть вам понадобится лицензия Power BI Pro. По той же схеме добавляем в отчет визуализацию Power Apps и определяем поля из набора, которые будут использоваться в приложении.
Далее нажмите «Создать новое приложение».
Мы создаем простое приложение Power Apps и используем PowerBIIntegration.Data в качестве источника данных.
Теперь мы можем добавить экран создания нового запроса на командировку и с помощью уже знакомой нам функции Patch сохранить результат в источник данных, который будет синхронизирован с набором данных Power BI, используемым в отчете.
Вызов приложения холста PowerApps с помощью кнопок из списка SharePoint Online
Нам хорошо известна возможность настройки внешнего вида формы создания, просмотра и редактирования элемента в SharePoint Online с помощью Power Apps. Но эти формы имеют множество особенностей и недостатков.Так почему бы не открыть для тех же событий полноценные холстовые приложения вместо урезанных форм.
Как мне это сделать.
Сначала мы создаем приложение Power Apps и создаем в нем три основных экрана — Создание, просмотр и редактирование элемента.
Самое главное, что у нас есть ссылка на приложение, которую можно взять из его свойств.
Далее нам нужно будет создать по 3 страницы ASPX для каждого события (Создание, просмотр, редактирование) соответственно.
Проще всего это сделать в SharePoint Designer, который, несмотря на свой преклонный возраст, отлично работает с SharePoint Online. Страница создания элемента будет выглядеть так.
Главное, что мы делаем на этих страницах, — это перенаправление с SharePoint Online на приложение холста Power Apps. Кроме того, мы пересылаем идентификатор элемента (для просмотра и редактирования форм) и обратную ссылку, если хотим вернуться из приложения в SharePoint Online. Страницы готовы, но их необходимо связать с событиями из списка SharePoint Online. Для этого мы используем скрипт Powershell.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);
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. Здесь мы определяем в зависимости от входного параметра, на какой экран мы перейдем после открытия приложения.
Здесь мы определяем обратный SourceURL для возврата в SharePoint Online и элемент контекста из списка SharePoint для форм просмотра и редактирования.
Не забудьте также создать кнопку для возврата к списку SharePoint Online после завершения работы с экраном.
Теперь, когда мы нажимаем на кнопку «Создать» в списке SharePoint Online, вызывается не форма SharePoint, а полноценное холстовое приложение, а на вход также подаются параметры, определяющие, какой экран нужен быть открытым.
Для кнопок «Просмотр» и «Редактировать» дополнительно определяется идентификатор элемента, по которому был выполнен клик, и этот элемент извлекается из списка.
Нажав на кнопку «Отмена», мы возвращаемся обратно в SharePoint, так как у нас есть параметр, хранящий обратный адрес в список, из которого мы пришли в приложение.
В этой статье мы рассмотрели несколько приемов, которые можно использовать при работе с Microsoft Power Platform. В будущем появятся еще более интересные функции и приемы, так что следите за обновлениями.
Всем хорошего дня! Теги: #Разработка для Office 365 #Microsoft Azure #облачные службы #sharepoint #office365 #power Platform #powerapps #microsoft365 #microsoft365 #команды #power автоматизировать #power автоматизировать #sharepoint online #sharepoint online
-
Все Об Openshift Egress. Часть 2
19 Oct, 24 -
Надежное Шифрование Данных В Png
19 Oct, 24 -
Ie 7: Новая Версия, Новая Уязвимость
19 Oct, 24 -
Анализ Ошибок В Открытых Компонентах Unity3D
19 Oct, 24 -
Виртуальное Государство
19 Oct, 24 -
Навигация Изнутри
19 Oct, 24