Încorporați un raport Power BI într-un formular principal într-o aplicație proiectată pe bază de model

Important

Există o modalitate mai bună de a adăuga un raport Power BI la un formular de aplicație proiectată pe bază de model. Mai multe informații: Folosiți controlul pentru rapoarte Power BI pentru a adăuga un raport

Puteți utiliza rapoarte Power BI în aplicațiile Power Apps proiectate pe bază de model, pentru a aduce în formularele principale o raportare și o analiză bogată și pentru a vă susține utilizatorii să realizeze mai mult. Aceasta fapt deblochează puterea de agregare a datelor între sisteme și de adaptare la contextul unei singure înregistrări.  

Cerințe preliminare

Încorporarea conținutului Power BI este o caracteristică opțională și în mod implicit este dezactivată pe toate mediile. Trebuie să o activați mai întâi, pentru a putea să încorporați conținutul Power BI. Mai multe informații: Activați vizualizările Power BI în organizație.

Această caracteristică necesită exportul unei soluții, modificarea ei pentru a adăuga fragmentul xml și apoi importul înapoi în mediu. Nu uitați să importați modificările pe mediul țintă numai printr-o soluție gestionată. Consultați Soluții pentru import, actualizare și export pentru indicații privind instalarea unei actualizări la o soluție gestionată existentă.

Încorporarea fără filtrare contextuală

Puteți utiliza rapoartele Power BI încorporându-le și obțineți exact același raport. Acest lucru nu implică contextualizarea acestora în formularul proiectat pe bază de model actual și, prin urmare, veți obține același raport pentru toate înregistrările tabelului. De exemplu, următorul raport prezintă simultan locația geografică a tuturor conturilor și este util pentru a afișa informații sintetizate.

Raport încorporat Power BI fără filtrare contextuală.

Puteți particulariza un nod de formular principal XML sections astfel încât să poată găzdui un raport și o dală încorporată Power BI urmând acești pași:

  1. În mediul dvs. de dezvoltare, creați o soluție și adăugați tabelul care conține formularul principal unde doriți să fie afișat raportul Power BI încorporat.

    • Dacă tabelul există deja în mediul țintă în care importați soluția, alegeți opțiunea Select components când adăugați tabelul la soluție. Apoi, adăugați doar formularul principal al tabelului.
    • Dacă tabelul nu există în mediul țintă în care importați soluția, alegeți Include toate componentele când adăugați tabelul la soluție.
  2. Exportați soluția ca gestionată.

  3. Extrageți toate fișierele din fișierul zip al pachetului de soluții. Apoi, editați fișierul customizations.xml și adăugați codul XML furnizat mai jos în interiorul blocului <sections> care se află în interiorul nodului <forms type="main"> în fișierul customisations.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>

Important

Asigurați-vă că utilizați controlul classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" după cum este indicat în eșantionul XML.

  1. Efectuați următoarele modificări la formularul XML pe care l-ați copiat în fișierul customisations.xml pentru raportul dvs. Power BI. Acest tabel descrie valorile pe care trebuie să le modificați la elementele din eșantionul XML anterior.
Proprietate Descriere
PowerBIGroupId ID-ul spațiului de lucru Power BI. Dacă raportul dvs. se află în Spațiul meu de lucru,** este ID-ul spațiului de lucru 00000000-0000-0000-0000-000000000000. În caz contrar, adăugați ID-ul spațiului de lucru. Puteți găsi ID-ul spațiului de lucru în URL-ul serviciului Power BI. Mai multe informații:Găsiți ID-urile spațiului de lucru și ale raportului Power BI.
PowerBIReportId ID-ul raportului Power BI. Înlocuiți-l cu raportul pe care doriți să-l încorporați. Puteți găsi ID-ul raportului dvs. în URL-ul serviciului Power BI. Mai multe informații: Găsiți ID-urile spațiului de lucru și ale raportului Power BI
TileUrl Adresa URL pentru raportul Power BI pe care doriți să îl încorporați. Asigurați-vă că utilizați numele corect al subdomeniului Power BI (este posibil să trebuiască să înlocuiți app.powerbi.com cu cel propriu) și ID-ul pentru raport (înlocuiți reportId=544c4162-6773-4944-900c-abfd075f6081 cu cel propriu). De exemplu, https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081.
solutionaction="Added" Dacă tabelul există deja în mediul țintă, părăsiți parametrul solutionaction=Added pentru elementul celulei, așa cum este furnizat în eșantionul XML. Dacă tabelul nu există în mediul țintă, eliminați parametrul solutionaction=Added.
  1. Creați un fișier zip din toate fișierele soluției extrase anterior. Apoi, importați soluția în mediul țintă (de destinație).

Încorporarea cu filtrare contextuală

Puteți face rapoartele Power BI mai semnificative, aplicând filtre contextuale la formularul actual proiectat pe bază de model, astfel că raportul este filtrat pe baza atributelor rândului curent. De exemplu, următorul raport prezintă locația geografică a unui cont, prin filtrarea raportului Power BI utilizând numele contului. Acest lucru permite ca un singur raport să prezinte informații contextualizate pentru toate rândurile tabelului.

Raport încorporat Power BI cu filtrare contextuală.

Filtrarea se face prin adăugarea unui element <PowerBIFilter> în blocul <parameter> după cum se arată aici. Puteți utiliza orice atribut al tabelului din formular pentru a construi expresia filtrului. Mai multe informații: Construirea filtrelor pentru a înțelege cum să vă creați propriile filtre.

<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>

Rețineți că aici se utilizează același control ca la încorporarea rapoartelor nefiltrate și, prin urmare, ID-ul clasei controlului rămâne neschimbat.

Acest tabel descrie toate proprietățile suplimentare utilizate în eșantionul XML anterior.

Proprietate Descriere
PowerBIFilter Expresia filtrului care pune în context raportul Power BI prin transmiterea atributelor formularului ca parametri. Pentru a-l face mai ușor de citit, filtrul este construit după cum se arată aici. Expresia filtrului nu poate fi o listă de valori separate prin virgulă.
    {
            "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"
            }
    }

Partea țintă din expresia anterioară identifică tabelul și coloana la care se aplică filtrele. Operatorul identifică logica și valorile identifică datele transferate din aplicația Power Apps pe bază de model. Pentru parametrizare într-un mod generic, valorile sunt construite prin atribuirea de pseudonime. În expresia anterioară, valorile pentru firstname și lastname ale unui cont sunt transferate și oricare dintre ele este cautată în coloana Nume cont din raportul Power BI. Rețineți că Prenume și Nume de familie sunt numele unice pentru atributele tabelului de cont, a cărui valoare va fi transferată aici.

Aveți posibilitatea să creați expresii de filtrare mai complexe, examinând exemplele din Construirea filtrelor și furnizarea valorilor corespunzătoare pentru $schema și filterType. Asigurați-vă că aveți o secvență de Escape pentru fiecare literal din partea de filtru utilizând ", astfel încât obiectul JSON să fie generat în mod corect.

Eliminați atributul nemodificat înainte de import

Înainte de a importa soluția în mediul țintă, asigurați-vă că atributul nemodificat nu este inclus în secțiunea formXml din fișierul customifications.xml. Dacă atributul nemodificat este prezent în XML care include controlul Power BI XML, eliminați atributul înainte de a importa soluția în mediul țintă. De exemplu, înlocuiți <systemform unmodified="1"> cu <systemform>.

Găsiți ID-urile spațiului de lucru și ale raportului Power BI

  1. ID-ul spațiului de lucru pentru acest exemplu este efc85277-2bdb-47bc-9762-363f64335108.
  2. ID-ul raportului pentru acest exemplu este 643ab643-7126-4a57-bd82-ca8f1fb676fc. Power BI ID-ul spațiului de lucru și exemplul ID-ului raportului

Probleme și limitări cunoscute

  • Această integrare este disponibilă numai în clientul de Interfață unificată, la browserele de web și dispozitivele mobile acceptate.

  • Deschiderea acestui formular în proiectantul de formulare Power Apps nu va afișa controlul într-un mod semnificativ. Acest lucru se întâmplă deoarece controlul este particularizat în afara proiectantului de formulare.

  • Utilizatorii vor fi autentificați automat în Power BI cu numele de utilizator și parola din Power Apps. În cazul în care nu există un cont Power BI cu acreditări corespondente, este afișat un îndemn de conectare după cum este ilustrat aici.

    Power BI prompt de conectare.

    Dacă este utilizat un cont incorect pentru conectarea la Power BI, nu se vor afișa niciun fel de date. Pentru conectarea cu acreditările corecte, deconectați-vă și apoi conectați-vă din nou.

    Conectați-vă la serviciul Power BI.

    Utilizatorul conectat nu are permisiunea corespunzătoare.

  • Vizualizarea datelor din raport afișate în interiorul Power Apps este aceeași ca Power BI, iar Power Apps rolurile și privilegiile de securitate nu afectează datele afișate. Prin urmare, datele sunt în esență aceleași cu ceea ce vede creatorul setului de date Power BI. Pentru a aplica restricțiile de acces la date similare cu rolurile de securitate și echipele Power Apps, utilizați Securitate la nivel de rând (RLS) cu Power BI.

  • În cazul în care formularul nu afișează raportul Power BI după importul soluției și publicarea particularizărilor, deschideți-l în editorul de formulare pe bază de model și salvați-l, pentru ca formularul JSON să fie regenerat.

  • Încorporarea unei dale Power BI într-un formular este acceptată numai fără filtrare contextuală.

  • Încorporarea unui Power BI raport nu acceptă referințe între locatari. De exemplu, încercarea de a încorpora un Power BI raport aparținând chiriașului Contoso într-o aplicație bazată pe model aparținând chiriașului Fabrikam nu este acceptată în prezent, chiar dacă raportul care este încorporat a fost partajat utilizatorilor din Chiriaș Fabrikam prin Power BI.

Probleme comune

  • ID-ul grupului nu este specificat în TileUrl nodul parametrilor de control atunci când ar putea fi necesar. Acest exemplu include un ID de grup.
<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&amp;groupId=fd266a4c-9a02-4553-9310-80e05ee844f3</TileUrl>
</parameters>
  • Câmpurile au diferite tipuri de date în Power BI și Dataverse. Trebuie să fie de același tip, cum ar fi șirul din Power BI și șirul în Dataverse.
  • Câmpurile de șiruri nu rămân fără ghilimele în filtrul Power BI. Notă values are [\"$a\"] mai degrabă decât [$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",
            }
    }

Consultați și

Încorporați un tablou de bord Power BI într-un tabliu de bord personal Power Apps pe bază de model

Utilizați Power BI cu aplicații Dynamics 365

Notă

Ne puteți spune care preferințele dvs. lingvistice pentru documentație? Răspundeți la un chestionar scurt. (rețineți că acest chestionar este în limba engleză)

Chestionarul va dura aproximativ șapte minute. Nu sunt colectate date personale (angajament de respectare a confidențialității).