共用方式為


將 Power BI 報表內嵌於模型導向應用程式主要表單

您可以在 Power Apps 模型導向應用程式中使用 Power BI 報表,為主要表單提供豐富的報表與分析,讓使用者可以完成更多工作。 這可發揮強大功能,以彙總不同系統之間的資料,並依需要調整至單一記錄的內容。  

先決條件

內嵌 Power BI 內容是選用功能,預設會在所有環境上停用。 您必須先啟用此功能,才能內嵌 Power BI 內容。 其他資訊:在組織中啟用 Power BI 視覺效果

此功能需要匯出解決方案、進行修改以加入 xml 程式碼片段,然後重新匯入環境中。 請務必僅透過受管理的解決方案匯入目標環境上的變更。 請參閱匯入、更新和匯出解決方案,以取得有關將更新安裝到現有受管理的解決方案的指引。

內嵌但不使用關聯式篩選

內嵌 Power BI 報表後即可使用它們,而且取得完全相同的報表。 這並不需要將其內容關聯至目前的模型導向表單,因此您會在資料表的所有記錄上取得相同的報表。 例如,下列報表一次顯示所有客戶的地理位置,這在顯示摘要資訊時非常實用。

內嵌 Power BI 報表但不使用關聯式篩選。

您可以透過以下步驟自訂主要表單 XML sections 節點,以便其裝載內嵌 Power BI 報表和圖格:

  1. 在您的開發環境中建立解決方案,並新增包含您要顯示內嵌 Power BI 報表之主要表單的資料表。

    • 如果該表格已存在於您要匯入解決方案的目標環境中,請在將該表格新增至解決方案時,選擇選取元件選項。 然後,只新增資料表的主要表單。
    • 如果該表格不存在於您要匯入解決方案的目標環境中,請在將該表格新增至解決方案時,選擇包含所有元件
  2. 將解決方案匯出為受管理的解決方案。

  3. 解壓縮解決方案套件 zip 檔案中的所有檔案。 然後,編輯 customizations.xml 檔案,並將下方提供的 XML 程式碼新增至 customizations.xml 檔案<forms type="main"> 節點內的 <sections> 區塊中。

<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 範例中所示。

  1. 對複製到 Power BI 報表 customizations.xml 檔案中的 XML 表單進行以下變更。 此資料表說明您需要變更為先前 XML 範例中之元素的值。
屬性 名描述
PowerBIGroupId Power BI 工作區識別碼。 如果您的報表位於我的工作區,**則工作區識別碼為 00000000-0000-0000-0000-000000000000。 否則,請新增工作區識別碼。 您可以在 Power BI 服務 URL 中找到工作區識別碼。 其他資訊:尋找 Power BI 工作區和報表識別碼
PowerBIReportId Power BI 報表識別碼。 將此屬性取代為您想要嵌入的報表。 您可以在 Power BI 服務 URL 中找到報表識別碼。 其他資訊:尋找 Power BI 工作區和報表識別碼
TileUrl 您要內嵌的 Power BI 報表 URL。 請務必使用正確的 Power BI 子網域名稱 (您可能需要將 app.powerbi.com 取代為您自己的名稱) 和報告識別碼 (將 reportId=544c4162-6773-4944-900c-abfd075f6081 取代為您自己的識別碼)。 例如:https://app.powerbi.com/reportEmbed?reportId=544c4162-6773-4944-900c-abfd075f6081
solutionaction="Added" 如果目標環境中已有該資料表,則保留 XML 範例中提供的儲存格元素的 solutionaction=Added 參數。 如果目標環境中不存在該資料表,請移除此 solutionaction=Added 參數。
  1. 從先前解壓縮的所有解決方案檔案中建立 zip 檔案。 然後,在目標環境中匯入解決方案。

內嵌而且使用關聯式篩選

您可將關聯式篩選套用至目前的模型導向表單,以便根據目前資料列的屬性篩選報表,讓 Power BI 報表變得更有意義。 例如,下列報表會使用客戶名稱篩選 Power BI 報表,以顯示客戶的地理位置。 這可讓單一報表針對資料表的所有資料列顯示有內容關聯的資訊。

內嵌 Power BI 報表並使用關聯式篩選。

篩選是透過在 <parameter> 區塊中加入 <PowerBIFilter> 元素來完成,如下所示。 您可以使用表單資料表的任何屬性來建構篩選運算式。 其他資訊:建構篩選以了解如何建立自己的篩選。

<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 模型導向應用程式所傳遞的資料。 為了以一般方式參數化,值是透過建立別名的方式來建構。 在先前的運算式中,傳遞了客戶的 firstnamelastname 值,並在 Power BI 報表的客戶名稱欄中搜尋其中任一值。 請注意,firstnamelastname 是客戶資料表之屬性的唯一名稱,這裡會傳遞該資料表的值。

您可查看建構篩選中的範例,並為 $schema 和 filterType 提供適當的值,以建立更複雜的篩選運算式。 請務必使用 " 逸出篩選部分中的每個常值,以便正確產生 JSON。

匯入前移除未修改的屬性

將解決方案匯入目標環境之前,請確定未修改的屬性不包含在 customizations.xml 檔案的 formXml 區段中。 如果包含 Power BI 控制項 XML 的 XML 中有未修改的屬性 ,請在將該解決方案匯入目標環境之前,先移除該屬性。 例如,將 <systemform unmodified="1"> 取代為 <systemform>

尋找 Power BI 工作區和報表識別碼

  1. 此範例的工作區識別碼為 efc85277-2bdb-47bc-9762-363f64335108。
  2. 此範例的報表識別碼為 643ab643-7126-4a57-bd82-ca8f1fb676fc。 Power BI 工作區識別碼與報表識別碼範例

已知問題與限制

  • 只有在整合介面用戶端、支援的網頁瀏覽器和行動裝置上,才能使用這項整合。

  • 在 Power Apps 表單設計師中開啟此表單,將無法以有意義的方式顯示控制項。 這是因為控制項是在表單設計師之外進行自訂。

  • 登入 Power BI 時,系統會自動使用 Power Apps 使用者名稱和密碼來驗證使用者。 如果認證相符的 Power BI 帳戶不存在,將會出現登入提示,如下所示。

    Power BI 登入提示。

    如果使用不正確的帳戶登入 Power BI,則不顯示任何資料。 若要使用正確的認證登入,請登出然後再次登入。

    登入 Power BI 服務。

    登入的使用者不具備適當的權限。

  • Power Apps 中顯示的報表資料檢視與 Power BI 的相同,而且 Power Apps 資訊安全角色和權限不會影響所顯示的資料。 因此,資料基本上會與 Power BI 資料集建立者所看到的相同。 若要套用類似於 Power Apps 資訊安全角色及團隊的資料存取限制,請使用 Power BI 的資料列層級安全性 (RLS)

  • 如果匯入解決方案並發行自訂之後,表單未顯示 Power BI 報表,請在模型導向表單編輯器中開啟並儲存該表單,以便重新產生表單 JSON。

  • 只有在沒有內容篩選的情況下,才支援在表單上內嵌 Power BI 圖格。

  • 內嵌 Power BI 報表不支援跨租用戶引用。 例如,目前不支援嘗試在屬於 Fabrikam 租用戶的模型導向應用程式中內嵌屬於 Contoso 租用戶的 Power BI 報表,即使內嵌的報表已透過 Power BI 與 Fabrikam 租用戶中的使用者共用也一樣 。

  • 作為 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&amp;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 模型導向個人儀表板中

與 Dynamics 365 應用程式搭配使用 Power BI

注意

是否能請您告知您偏好的慣用文件語言? 請填寫問卷。 (請注意,本問卷為英文版)

完成問卷大約需要七分鐘。 本問卷將不會收集個人資料 (隱私權聲明)。