Osadź raport usługi Power BI w formularzu aplikacje opartej na modelu

Ważne

Istnieje lepszy sposób dodania raportu usługi Power BI do formularza aplikacji opartej na modelu. Więcej informacji: Użyj kontrolki raportu usługi Power BI, aby dodać raport

Możesz użyć raportów Power BI w aplikacjach Power Apps opartych na modelu, aby wprowadzić do formularzy bogate raportowanie i analizy oraz umożliwić użytkownikom realizację większej ilości celów. Otwiera to możliwość agregowania danych między systemami i dostosowania ich do kontekstu pojedynczego rekordu.  

Wymagania wstępne

Osadzanie treści Power BI jest funkcją opcjonalną i jest domyślnie wyłączone dla wszystkich środowisk. Należy ją włączyć zanim będzie można osadzić zawartość Power BI. Więcej informacji: Włącz wizualizacje Power BI w organizacji.

Ta funkcja wymaga wyeksportowania rozwiązania, zmodyfikowania go, aby dodać fragment xml, a następnie zaimportowania z powrotem do środowiska. Pamiętaj, aby importować zmiany do środowiska docelowego wyłącznie za pośrednictwem rozwiązania zarządzanego. Zobacz Importowanie, aktualizowanie i eksportowanie rozwiązań, aby uzyskać wskazówki dotyczące instalowania i aktualizacji do istniejącego rozwiązania zarządzanego.

Osadź bez filtrowania kontekstowego

Możesz użyć raportów Power BI osadzając je, i uzyskać dokładnie ten sam raport. Nie obejmuje to nadawania im kontekstu do bieżącego formularza korzystającego z modelu, więc uzyskujesz ten sam raport dla wszystkich rekordów tabeli. Na przykład poniższy raport zawiera jednocześnie lokalizacje geograficzne wszystkich kont, i przydaje się do ukazywania podsumowań.

Osadzony raport Power BI bez filtrowania kontekstowego.

Możesz dostosować węzeł XML sections formularza głównego tak, aby mógł być hostem osadzonego raportu i kafelka Power BI wykonując poniższe kroki:

  1. W środowisku programistycznym utwórz rozwiązanie i dodaj tabelę zawierającą formularz główny, w którym ma być wyświetlany osadzony raport Power BI.

    • Jeśli tabela już istnieje w środowisku docelowym, w którym jest importowane rozwiązanie, podczas dodawania tabeli do rozwiązania należy wybrać opcję Wybierz składniki. Następnie dodaj tylko główny formularz tabeli.
    • Jeśli tabela nie istnieje w środowisku docelowym, w którym jest importowane rozwiązanie, podczas dodawania tabeli do rozwiązania należy wybrać opcję Dołącz wszystkie składniki.
  2. Wyeksportuj rozwiązanie jako zarządzane.

  3. Wyodrębnij wszystkie pliki w pliku zip pakietu rozwiązania. Następnie edytuj plik customizations.xml i dodaj kod XML podany poniżej wewnątrz <sections>, który znajduje się wewnątrz węzła <forms type="main"> w pliku 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>

Ważne

Należy pamiętać o użyciu formantu classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}" zgodnie z przykładowym plikiem XML.

  1. Dokonaj następujących zmian w formularzu XML, który został skopiowany do pliku customizations.xml dla raportu Power BI. W tej tabeli opisano wartości, które należy zmienić w elementach z poprzedniej próbki xml.
Właściwości opis
PowerBIGroupId Identyfikator obszaru roboczego usługi Power BI. Jeśli raport znajduje się w Obszarze roboczym,** wtedy identyfikator obszaru roboczego to 00000000-0000-0000-0000-000000000000. W przeciwnym razie dodaj identyfikator obszaru roboczego. Identyfikator obszaru roboczego można znaleźć w adresie URL usługi Power BI. Więcej informacji: Znajdowanie obszaru roboczego Power BI i identyfikatorów raportów.
PowerBIReportId Identyfikator raportu Power BI. Zastąp to raportem, który chcesz osadzić. Identyfikator raportu można znaleźć w adresie URL usługi Power BI. Więcej informacji: Znajdowanie obszaru roboczego Power BI i identyfikatorów raportów
TileUrl Adres URL raportu usługi Power BI, który chcesz osadzić. Pamiętaj, aby użyć poprawnej nazwy subdomeny Power BI (być może trzeba będzie zamienić msit.powerbi.com na własną nazwę) i identyfikator raportu (zastąp reportId=544c4162-6773-4944-900c-abfd075f6081 własnym identyfikatorem). Na przykład https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081.
solutionaction="Added" Jeśli tabela już istnieje w środowisku docelowym, pozostaw parametr solutionaction=Added dla elementu komórki, jak podano w próbce XML. Jeśli tabela nie istnieje w środowisku docelowym, usuń parametr solutionaction=Added.
  1. Utwórz plik zip ze wszystkich wcześniej wyodrębnionych plików rozwiązania. Następnie należy zaimportować rozwiązanie do środowiska docelowego.

Osadź z filtrowaniem kontekstowym

Można tworzyć raporty Power BI bardziej znacząco stosując filtry kontekstowe do bieżącego formularza opartego na modelu tak, aby raport był filtrowany dla atrybutów bieżącego wiersza. Na przykład poniższy raport ukazuje lokalizację geograficzną konta dzięki filtrowaniu raportu Power BI przy użyciu nazwy konta. Dzięki temu pojedynczy raport ukazuje informacji skontekstualizowane dla wszystkich wierszy tabeli.

Osadzony raport Power BI z filtrowaniem kontekstowym.

Filtrowanie jest wykonywane przez dodawanie elementu <PowerBIFilter> w bloku <parameter> w sposób przedstawiony w tym miejscu. Można użyć dowolnego atrybutu tabeli formularza, aby utworzyć wyrażenie filtru. Więcej informacji: Tworzenie filtrów, aby zrozumieć, jak tworzyć własne filtry.

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

Należy zauważyć, że to korzysta z tego samego formantu, co osadzanie niefiltrowanego raportu, więc identyfikator klasy formantu pozostaje niezmieniony.

W tej tabeli opisano wszelkie dodatkowe właściwości użyte w poprzedniej próbce XML.

Właściwość Opis
PowerBIFilter Wyrażenie filtru, które kontekstualizuje raport Power BI przekazując atrybuty formularza jako parametry. Aby zwiększyć czytelność, filtr jest zbudowany w sposób przedstawiony w tym miejscu. Wyrażenie filtrowane nie może być listą wartości rozdzielanych przecinkami.
    {
            "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"
            }
    }

Docelowa część poprzedniego wyrażenia określa tabelę i kolumnę, na których filtr ma być stosowany. Operator identyfikuje logikę a wartości identyfikują dane przekazywane z aplikacji Power Apps opartej na modelu. Aby sparametryzować w ogólny sposób, wartości są wykonywane przez aliasing. W poprzednim wyrażeniu wartość imię i nazwisko są przekazywane, i każda z nich jest wyszukiwana w kolumnie Nazwa konta w kolumnie w raporcie Power BI. Należy pamiętać, że imię i nazwisko to unikatowe nazwy atrybutów tabeli konto, którego wartość będzie tu przekazywana.

Można tworzyć bardziej skomplikowane wyrażenia filtrów patrząc na przykłady z Tworzenie filtrów oraz zapewniając odpowiednie wartości dla $schema i filterType. Należy pamiętać o ucieczce z każdego literału w filtrze dzięki użyciu ", aby JSON był generowany poprawnie.

Usuń atrybut niezmodyfikowany przed zaimportowaniem

Przed zaimportowaniem rozwiązania do środowiska docelowego upewnij się, że niezmodyfikowany atrybut nie został uwzględniony w sekcji formXml pliku customizations.xml. Jeśli atrybut niezmodyfikowany znajduje się w pliku XML zawierającym kontrolkę XML Power BI, należy usunąć atrybut przed zaimportowaniem rozwiązania do środowiska docelowego. Na przykład zamień <systemform unmodified="1"> na <systemform>.

Znajdowanie obszaru roboczego Power BI i identyfikatorów raportów

  1. Identyfikator obszaru roboczego dla tego przykładu to efc85277-2bdb-47bc-9762-363f64335108.
  2. Identyfikator raportu dla tego przykładu to 643ab643-7126-4a57-bd82-ca8f1fb676fc. Przykład identyfikatora obszaru roboczego Power BI i identyfikatora raportu

Znane problemy i ograniczenia

  • Ta integracja jest dostępna tylko w przypadku klienta Ujednolicony interfejs, w obsługiwanych przeglądarkach sieci Web i urządzeniach przenośnych.

  • Otwieranie tego formularza Projektancie formularza Power Apps nie ukaże formantu w zrozumiały sposób. Jest to spowodowane tym, że formant jest dostosowywany spoza projektantem formularza.

  • Użytkownicy będą uwierzytelniani w Power BI automatycznie przy użyciu ich nazwy użytkownika i hasła Power Apps. Jeśli konto Power BI z pasującymi poświadczeniami nie istnieje, monit o zalogowanie się zostanie wyświetlony zgodnie z poniższą ilustracją.

    Monit logowania do Power BI.

    Żadne dane nie zostaną wyświetlone jeśli nieprawidłowe konto jest używane do zalogowania się do Power BI. Aby zalogować się przy użyciu poprawnych poświadczeń, wyloguj się i zaloguj się ponownie.

    Zaloguj się w usłudze Power BI.

    Zalogowany użytkownik nie ma odpowiednich uprawnień.

  • Widok danych raportu wyświetlanych w środku Power Apps Power BI jest taki sam, jak, Power Apps a role zabezpieczeń i uprawnienia nie mają wpływu na wyświetlane dane. W związku z tym dane są zasadniczo takie same, jak to, co może ujrzeć twórca zestawu danych Power BI. Aby zastosować ograniczenia dostepu do danych podobne do ról zabezpieczeń i zespołów Power Apps użyj Zabezpieczeń na poziomie wiersza (RLS) z Power BI.

  • Jeśli formularz nie wyświetla raportu Power BI po zaimportowaniu rozwiązania i opublikowaniu dostosowań, otwórz go w edytorze formularzy opartym na modelu i zapisz go, aby JSON formularza został wygenerowany.

  • Osadzenie kafelka Power BI w formularzu jest obsługiwane tylko bez filtrowania kontekstowego.

  • Osadzenie raportu Power BI nie obsługuje odwołań między dzierżawami. Power BI Na przykład próba osadzenia raportu należącego do dzierżawcy firmy Contoso w aplikacji korzystającej z modelu należącej do dzierżawcy firmy Fabrikam nie jest obecnie obsługiwana, nawet jeśli osadzony raport został udostępniony użytkownikom dzierżawcy fabrikam Power BI za pośrednictwem tej usługi.

Typowe problemy

  • Identyfikator grupy nie jest określony w TileUrl węźle parametrów kontrolki, kiedy może być potrzebny. W tym przykładzie jest również identyfikator grupy.
<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>
  • Pola mają różne typy danych w u źródłach Power BI i Dataverse. Muszą być tego samego typu, na przykład ciąg w Power BI i ciąg w Dataverse.
  • Pola ciągów nie zawierają cudzysłowów ze znakami ucieczki w filtrze usługi Power BI. Zawiadomienie values ma, [\"$a\"] a nie [$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",
            }
    }

Zobacz też

Osadź pulpit nawigacyjny Power BI na osobistym pulpicie nawigacyjnym Power Apps opartym na modelu

Użyj Power BI z aplikacjami Dynamics 365

Uwaga

Czy możesz poinformować nas o preferencjach dotyczących języka dokumentacji? Wypełnij krótką ankietę. (zauważ, że ta ankieta jest po angielsku)

Ankieta zajmie około siedmiu minut. Nie są zbierane żadne dane osobowe (oświadczenie o ochronie prywatności).