Вграждане отчет на Power BI в основен формуляр на приложение, управлявано от модел
Можете да използвате отчети на Power BI в приложения, управлявани от модели, на Power Apps, за да внесете обогатени отчети и анализи в овните си формуляри и да дадете възможност на потребителите си да постигнат повече. Това отключва силата да събирате данни между системи и да ги приспособявате към контекста на единичен запис.
Предварителни изисквания
Вграждането на съдържание на Power BI е опционална функция и по подразбиране е забранена във всички среди. Трябва да я активирате, преди да можете да вградите съдържание на Power BI. Повече информация: Разрешаване на визуализации на Power BI в организацията.
Тази функция изисква експортиране на решение, модифицирането му за добавяне на XML фрагмент и след това импортирането му обратно в средата. Не забравяйте да импортирате промените на вашата целева среда само чрез завършено решение. Вижте Импортиране, актуализиране и експортиране решения за указания относно инсталирането на актуализация на съществуващо завършено решение.
Вграждане без контекстуално филтриране
Можете да използвате отчетите на Power BI, като ги вградите, и да получите същия отчет. Това не включва тяхното контекстуализиране към текущата формулирана от модела и следователно получавате същия отчет или плочка за всички записи на таблицата. Следният отчет например показва географското местоположение на всички клиенти наведнъж и е полезен да показва обобщена информация.
Можете да персонализирате sections
възел на XML на основен формуляр, така че да може да хоства вграден Power BI доклад и плочка, като следвате тези стъпки:
Във вашата среда за разработка създайте решение и добавете таблицата, която съдържа основната форма, където искате да вградите Power BI доклад за показване.
- Ако таблицата вече съществува в целевата среда, в която импортирате решението, изберете опцията Избор на компоненти, когато добавяте таблицата към решението. След това добавете само основната форма на таблицата.
- Ако таблицата не съществува в целевата среда, в която импортирате решението, изберете Включване на всички компоненти, когато добавяте таблицата към решението.
Експортиране на решение като управлявано.
Извлечете всички файлове в zip файла на пакета с решения. След това редактирайте файла customizations.xml и добавете предоставения по -долу XML код вътре в
<sections>
блок, който е вътре в<forms type="main">
възел във файла customizations.xml.
<section id="{d411658c-7450-e1e3-bc80-07021a04bcc2}" locklevel="0" showlabel="true" IsUserDefined="0" name="tab_4_section_1" labelwidth="115" columns="1" layout="varwidth" showbar="false">
<labels>
<label languagecode="1033" description="Unfiltered Power BI embedding demo"/>
</labels>
<rows>
<row>
<cell id="{7d18b61c-c588-136c-aee7-03e5e74a09a1}" showlabel="true" rowspan="20" colspan="1" auto="false" solutionaction="Added">
<labels>
<label languagecode="1033" description="Accounts (Parent Account)"/>
</labels>
<control id="unfilteredreport" classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}">
<parameters>
<PowerBIGroupId>00000000-0000-0000-0000-000000000000</PowerBIGroupId>
<PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId>
<TileUrl>https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081</TileUrl>
</parameters>
</control>
</cell>
</row>
<row/>
</rows>
</section>
Важно
Не забравяйте да използвате контролата classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}"
, както е указано в XML примера.
- Направете следните промени във XML на формуляра, който сте копирали във файла customizations.xml за вашия Power BI доклад. Тази таблица описва стойностите, които трябва да промените към елементите в предишната XML извадка.
Свойство | Описание |
---|---|
PowerBIGroupId | ИД на работна област на Power BI. Ако отчетът ви е в Моето работно пространство,** тогава ИД на работната област е 00000000-0000-0000-0000-000000000000. В противен случай добавете ID на работното пространство. Можете да намерите идентификатора на работното пространство в URL адреса на услугата Power BI. Повече информация: Намерете работно пространство на Power BI и идентификатори на отчети. |
PowerBIReportId | ИД на отчета на Power BI. Заместете това с отчета, който искате да вградите. Можете да намерите идентификационния номер на вашия отчет в URL адрес на услугата Power BI. Повече информация: Намерете работно пространство на Power BI и идентификатори на отчети |
TileUrl | URL адресът на отчет на Power BI, които искате да вградите. Използвайте правилното име на поддомейн на Power BI (възможно е да се наложи да заместете app.powerbi.com със свой) и ИД на отчет (заменете reportId=544c4162-6773-4944-900c-abfd075f6081 със свой). Например, https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081 . |
solutionaction="Added" | Ако таблицата вече съществува в целевата среда, оставете solutionaction=Added параметър за клетъчния елемент, както е предоставено в XML извадката. Ако таблицата не съществува в целевата среда, премахнете solutionaction=Added параметър. |
- Създайте zip файл от всички предварително извлечени файлове с решение. След това импортирате решението в целевата среда.
Вграждане с контекстуално филтриране
Можете да създавате отчети на Power BI по-целенасочено, като приложите контекстуални филтри към текущия формуляр, управляван от модел, така че отчетът да се филтрират въз основа на атрибутите на текущия ред. Следният отчет например показва географското местоположение на акаунт чрез филтриране на отчета на Power BI с използване на името на акаунта. Това позволява на единичен отчет да показва контекстуализирана информация за всички редове на таблицата.
Филтрирането се извършва чрез добавяне на <PowerBIFilter>
елемент в блока <parameter>
, както е показано тук. Можете да използвате всеки атрибут на таблицата на формуляра, за да създадете израза за филтъра. Повече информация: Създаване на филтри, за да разберете как да създавате свои собствени филтри.
<control id="filteredreport" classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}">
<parameters>
<PowerBIGroupId>00000000-0000-0000-0000-000000000000</PowerBIGroupId>
<PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId>
<TileUrl>https://xyz.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081</TileUrl>
<PowerBIFilter>{"Filter": "[{\"$schema\":\"basic\",\"target\":{\"table\":\"table_name_of_power_bi_dataset\",\"column\":\"power_bi_field\"},\"operator\":\"In\",\"values\":[$a],\"filterType\":1}]", "Alias": {"$a": "field_name_in_powerapps_to_filter"}}</PowerBIFilter>
</parameters>
</control>
Обърнете внимание, че това използва същата контрола като вграждането на нефилтрирани отчети и следователно ИД на клас на контрола остава непроменен.
Тази таблица описва всички допълнителни свойства, използвани в предишния XML пример.
Свойство | Описание |
---|---|
PowerBIFilter | Изразът за филтър, който контекстуализира отчета на Power BI чрез подаване на атрибути на формуляр като параметри. За да бъде по-четлив, филтърът е конструиран, както е показано тук. Филтърният израз не може да бъде разделен със запетая списък със стойности. |
{
"Filter": "[{
\"$schema\":\"basic\",
\"target\":{
\"table\":\"table_name_of_power_bi_dataset\",
\"column\":\"power_bi_field\"
},
\"operator\":\"In\",
\"values\":[$a, $b],
\"filterType\":1
}]",
"Alias": {
"$a": "field1_name_in_powerapps_to_filter",
"$b":"field2_name_in_powerapps_to_filter"
}
}
Целевата част от предишния израз идентифицира таблицата и колоната, за които да приложите филтри. Операторът идентифицира логиката, а стойностите определят данните, подадени от приложението, управлявано от модел, на Power Apps. За да бъдат параметризирани по генеричен начин, стойностите са изградени чрез псевдоними. В предишния израз стойностите на firstname и lastname на акаунт са подадени и всяка от тях се търси в колоната Име на акаунт в отчета на Power BI. Забележете, че firstname и lastname са уникалните имена на атрибутите на таблицата за акаунт, чиято стойност ще бъде подадена тук.
Можете да създавате по-сложни изрази за филтри чрез разглеждане на примери от Създаване на филтри и осигуряване на подходящи стойности за $schema и filterType. Не забравяйте да избягвате всякакъв литерал в частта на филтъра с помощта на ", така че JSON да е генериран правилно.
Премахване на непроменен атрибут преди импортиране
Преди да импортирате решението в целевата среда, уверете се, че непромененият атрибут не е включен в секцията formXml на файла customizations.xml. Ако непромененият атрибут е наличен в XML, който включва XML контролата на Power BI, премахнете атрибута, преди да импортирате решението в целевата среда. Например заменете <systemform unmodified="1">
с <systemform>
.
Намерете работно пространство на Power BI и идентификатори на отчети
- Идентификаторът на работното пространство за този пример е efc85277-2bdb-47bc-9762-363f64335108.
- Идентификаторът на отчет за този пример е 643ab643-7126-4a57-bd82-ca8f1fb676fc.
Известни проблеми и ограничения
Тази интеграция е достъпна само в клиента на Унифициран интерфейс, на поддържаните браузъри и мобилни устройства.
Отваряне на този формуляр в разработчика за формуляри на Power Apps няма да показва контролата по уместен начин. Това е, защото контролата е персонализирана извън разработчика за формуляри.
Потребителите ще бъдат удостоверени за Power BI автоматично с тяхното потребителско име и парола за Power Apps. Ако даден акаунт в Power BI със съвпадащи идентификационни данни не съществува, се показва подкана за влизане, както е илюстрирано тук.
Няма да се покажат данни, ако се използва неправилен акаунт за влизане в Power BI. За да влезете с правилните идентификационни данни, излезте и след това влезете отново.
Изгледът на данните от отчета, показани вътре Power Apps , е същият, а Power BI Power Apps правата за достъп и привилегиите не влияят на данните, които се показват. Това означава, че данните по същество са същите като това, което ще вижда създателят на набора данни в Power BI. За да приложите ограничения за достъп до данни, подобни на ролите на защита и екипите на Power Apps, използвайте Защита на ниво ред (RLS) с Power BI.
Ако формулярът не показва отчет на Power BI след импортирането на решението и публикуване на персонализации, го отворете в редактора за формуляри, управлявани от модели, и го запишете, така че JSON на формуляра да се генерира повторно.
Вграждане на Power BI плочка във формуляр се поддържа само без контекстно филтриране.
Вграждането на Power BI отчет не поддържа препратки към различни клиенти. Например опитът за вграждане на Power BI отчет, принадлежащ на клиента на Contoso, в приложение, управлявано от модел, принадлежащо на клиента на Fabrikam, в момента не се поддържа, дори ако вграденият отчет е споделен с потребители в клиента на Fabrikam чрез Power BI.
Фиксираните отчети като част от Power BI таблата за управление не са предназначени да бъдат интерактивни. Ако искате да имате интерактивни Power BI отчети, вградете ги директно, вместо да ги закачате на табло за управление.
Обичайни проблеми
- ИД на групата не е посочен
TileUrl
във възела на контролните параметри, когато може да се наложи. Този пример включва ИД на група.
<parameters>
<PowerBIGroupId>fd266a4c-9a02-4553-9310-80e05ee844f3</PowerBIGroupId>
<PowerBIReportId>544c4162-6773-4944-900c-abfd075f6081</PowerBIReportId>
<TileUrl>https://xyz.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081&groupId=fd266a4c-9a02-4553-9310-80e05ee844f3</TileUrl>
</parameters>
- Полетата имат различни типове данни в Power BI и Dataverse. Те трябва да са от същия тип, като например низ в Power BI и низ в Dataverse.
- В полетата с низове нямат наклонена черта с кавички във филтъра на Power BI. Забележете
values
по-скоро[\"$a\"]
не[$a]
.
{
"Filter": "[{
\"$schema\":\"basic\",
\"target\":{
\"table\":\"table_name_of_power_bi_dataset\",
\"column\":\"power_bi_field\"
},
\"operator\":\"In\",
\"values\":[\"$a\"],
\"filterType\":1
}]",
"Alias": {
"$a": "field_name_in_powerapps_to_filter",
}
}
Вижте също
Вграждане на табло на Power BI в лично табло, управлявано от модел, на Power Apps
Използвайте Power BI с приложенията на Dynamics 365
Бележка
Можете ли да ни споделите повече за езиковите си предпочитания за документацията? Попълнете кратко проучване. (имайте предвид, че това проучване е на английски език)
Проучването ще отнеме около седем минути. Не се събират лични данни (декларация за поверителност).