Incorporare un report Power BI nel modulo principale di un'app basata su modello
Puoi usare i report Power BI nelle app basate su modello di Power Apps per integrare funzionalità di creazione di report e funzionalità di analisi nei moduli principali e consentire agli utenti di ottenere informazioni più dettagliate. Ciò permette di aggregare i dati nei sistemi e di adeguarli al contesto di un singolo record.
Prerequisiti
L'incorporazione di contenuto Power BI è una funzionalità facoltativa ed è disabilitata in tutti gli ambienti per impostazione predefinita. Devi abilitarla per poter incorporare contenuto Power BI. Altre informazioni: Abilitare le visualizzazioni Power BI nell'organizzazione.
Questa funzionalità richiede l'esportazione di una soluzione, la modifica della stessa per aggiungere il frammento XML e la reimportazione nell'ambiente. Assicurati di importare le modifiche nell'ambiente di destinazione soltanto tramite una soluzione gestita. Vedi Importare, aggiornare ed esportare le soluzioni per istruzioni sull'installazione di un aggiornamento nella soluzione gestita esistente.
Incorporare senza il filtro contestuale
Puoi utilizzare i report di Power BI incorporandoli e ottenere lo stesso identico report. Ciò non comporta la contestualizzazione degli stessi al modulo basato su modello corrente, di conseguenza ottieni lo stesso report in tutti i record della tabella. Ad esempio, il report seguente illustra la posizione geografica di tutti gli account contemporaneamente ed è utile per visualizzare informazioni di riepilogo.
Puoi personalizzare un nodo sections
XML di modulo principale in modo che ospiti un report e un riquadro di Power BI incorporato attenendoti alla procedura seguente:
Nel tuo ambiente di sviluppo, crea una soluzione e aggiungi la tabella che contiene il modulo principale in cui desideri incorporare il report Power BI da visualizzare.
- Se la tabella esiste già nell'ambiente di destinazione in cui importerai la soluzione, scegli l'opzione Seleziona componenti quando aggiungi la tabella alla soluzione. Aggiungi quindi semplicemente il modulo principale della tabella.
- Se la tabella non esiste nell'ambiente di destinazione in cui importerai la soluzione, scegli l'opzione Includi tutti i componenti quando aggiungi la tabella alla soluzione.
Esporta la soluzione come gestita.
Estrai tutti i file nel file con estensione zip del pacchetto della soluzione. Modifica quindi il file customizations.xml e aggiungi il codice XML riportato di seguito nel blocco
<sections>
che trovi nel nodo<forms type="main">
nel file 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>
Importante
Assicurati di utilizzare il controllo classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}"
come illustrato nell'esempio XML.
- Apporta le modifiche seguenti al codice XML del modulo che hai copiato nel file customizations.xml per il tuo report Power BI. Questa tabella descrive i valori che è necessario modificare negli elementi nell'esempio XML precedente.
Proprietà | Descrizione |
---|---|
PowerBIGroupId | L'ID area di lavoro Power BI. Se il tuo report si trova in Area di lavoro personale,** l'ID area di lavoro è 00000000-0000-0000-0000-000000000000. In caso contrario, aggiungi l'ID area di lavoro. Puoi trovare l'ID area di lavoro nell'URL del servizio Power BI. Altre informazioni: Trovare ID report e area di lavoro di Power BI. |
PowerBIReportId | L'ID report Power BI. Sostituiscilo con il report che intendi incorporare. Puoi trovare l'ID report nell'URL del servizio Power BI. Altre informazioni: Trovare ID report e area di lavoro di Power BI |
TileUrl | L'URL del report Power BI che intendi incorporare. Assicurati di usare il nome di sottodominio Power BI corretto (potrebbe essere necessario sostituire app.powerbi.com con il tuo nome di dominio) e l'ID report corretto (sostituisci reportId=544c4162-6773-4944-900c-abfd075f6081 con il tuo). Ad esempio: https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081 . |
solutionaction="Added" | Se la tabella esiste già nell'ambiente di destinazione, lascia il parametro solutionaction=Added per l'elemento della cella come indicato nell'esempio XML. Se la tabella non esiste nell'ambiente di destinazione, rimuovi il parametro solutionaction=Added . |
- Crea un file con estensione zip da tutti i file della soluzione precedentemente estratti. Successivamente, importa la soluzione nell'ambiente di destinazione.
Incorporare con il filtro contestuale
Puoi rendere i report Power BI più significativi applicando filtri contestuali al modulo basato su modello corrente, di modo che il report venga filtrato in base agli attributi del record corrente. Ad esempio, il report seguente mostra la posizione geografica di un account, filtrando il report Power BI che utilizza il nome account. Ciò consente a un singolo report di visualizzare le informazioni contestualizzate per tutti le righe della tabella.
Il filtro viene applicato aggiungendo un elemento <PowerBIFilter>
nel blocco <parameter>
come illustrato di seguito. Puoi utilizzare qualsiasi attributo della tabella del modulo per creare l'espressione di filtro. Ulteriori informazioni: Creazione di filtri per comprendere come creare filtri personalizzati.
<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>
Nota che viene utilizzato lo stesso controllo dell'incorporazione di report senza filtro e quindi l'ID classe di controllo rimane inalterato.
Questa tabella descrive tutte le proprietà aggiuntive usate nell'esempio XML precedente.
Proprietà | Descrizione |
---|---|
PowerBIFilter | L'espressione di filtro che contestualizza il report Power BI passando gli attributi del modulo come parametri. Per renderla più leggibile, il filtro viene creato come illustrato di seguito. L'espressione di filtro non può essere un elenco di valori separati da virgole. |
{
"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"
}
}
La parte target dell'espressione precedente identifica la tabella e la colonna a cui applicare i filtri. L'operatore identifica la logica e i valori identificano i dati passati dall'app basata su modello di Power Apps. Per parametrizzare in modo generico, i valori vengono creati mediante alias. Nell'espressione precedente, vengono passati i valori firstname e lastname di un account e uno di questi viene cercato nella colonna Nome account del report Power BI. Nota che firstname e lastname sono i nomi univoci di attributi della tabella Account, il cui valore verrà passato qui.
Puoi creare espressioni di filtro più complesse consultando gli esempi in Creare filtri e fornendo i valori appropriati per $schema e filterType. Assicurati di utilizzare caratteri di escape per ogni valore letterale nella parte del filtro utilizzando ", di modo che il JSON sia generato correttamente.
Rimuovere l'attributo non modificato prima dell'importazione
Prima di importare la soluzione nell'ambiente di destinazione, assicurati che l'attributo non modificato non sia incluso nella sezione formXml del file customizations.xml. Se l'attributo non modificato è presente nell'XML che include l'XML del controllo Power BI, rimuovi l'attributo prima di importare la soluzione nell'ambiente di destinazione. Ad esempio, sostituisci <systemform unmodified="1">
con <systemform>
.
Trovare ID report e area di lavoro di Power BI
- L'ID area di lavoro per questo esempio è efc85277-2bdb-47bc-9762-363f64335108.
- L'ID report per questo esempio è 643ab643-7126-4a57-bd82-ca8f1fb676fc.
Problemi noti e limitazioni
Questa integrazione è disponibile solo nel client Unified Interface, nei Web browser e nei dispositivi mobili supportati.
L'apertura di questo modulo nella progettazione moduli di Power Apps non visualizzerà il controllo in modo significativo. Questo perché il controllo viene personalizzato al di fuori della progettazione moduli.
Gli utenti saranno automaticamente autenticati in Power BI con il nome utente e la password di Power Apps. Se un account Power BI con le credenziali corrispondenti non esiste, viene visualizzato un prompt di accesso come illustrato di seguito.
Nessun dato verrà visualizzato se un account non corretto viene utilizzato per l'accesso a Power BI. Per eseguire l'accesso con le credenziali corrette, disconnettiti e quindi accedi nuovamente.
La visualizzazione dei dati del report in Power Apps è la stessa di Power BI e i ruoli di sicurezza e i privilegi di Power Apps non modificano i dati visualizzati. Di conseguenza, i dati sono essenzialmente uguali a ciò che il creatore del set di dati Power BI vedrebbe. Per applicare restrizioni di accesso ai dati simili ai team e ai ruoli di sicurezza di Power Apps, utilizza Protezione a livello di riga (RLS) con Power BI.
Se il modulo non indica il report Power BI dopo l'importazione della soluzione e la pubblicazione delle personalizzazioni, aprilo nell'editor di moduli basato su modello e salvalo, di modo che il JSON del modulo venga rigenerato.
L'ncorporamento di un riquadro Power BI in un modulo è supportato solo senza il filtro contestuale.
L'integrazione di un report Power BI non supporta i riferimenti tra tenant. Ad esempio, il tentativo di integrare un report Power BI appartenente al tenant Contoso in un'app basata su modello appartenente al tenant Fabrikam non è attualmente supportato, anche se il report integrato è stato condiviso con gli utenti nel tenant di Fabrikam via Power BI.
I report aggiunti come parte di dashboard Power BI non sono pensati per essere interattivi. Se desideri avere report Power BI interattivi, integrali direttamente invece di aggiungerli a una dashboard.
Problemi comuni
- L'ID del gruppo non è specificato nel nodo
TileUrl
dei parametri di controllo quando potrebbe essere necessario. Questo esempio include un ID gruppo.
<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>
- I campi hanno tipi di dati diversi in Power BI e Dataverse. Devono essere dello stesso tipo, ad esempio stringa in Power BI e stringa in Dataverse.
- I campi stringa non hanno virgolette di escape nel filtro di Power BI. Nota che per
values
è presente[\"$a\"]
anziché[$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",
}
}
Vedi anche
Incorporare un dashboard Power BI in un dashboard personale Power Apps basato su modello
Utilizzare Power BI con le app Dynamics 365
Nota
Puoi indicarci le tue preferenze di lingua per la documentazione? Partecipa a un breve sondaggio. (il sondaggio è in inglese)
Il sondaggio richiederà circa sette minuti. Non viene raccolto alcun dato personale (Informativa sulla privacy).