แชร์ผ่าน


ฝังรายงาน Power BI ในฟอร์มหลักของแอปแบบจำลอง

คุณสามารถใช้รายงาน Power BI ในแอปแบบจำลองของ Power Apps เพื่อนำการรายงานและการวิเคราะห์แบบสมบูรณ์ไปยังฟอร์มหลักของคุณ และเพิ่มศักยภาพให้กับผู้ใช้ของคุณเพื่อให้บรรลุผลลัพธ์เพิ่มมากขึ้น นี่ปลดล็อกความสามารถในการรวมข้อมูลข้ามระบบ และปรับแต่งลงไปในบริบทของเรกคอร์ดเดียว  

ข้อกำหนดเบื้องต้น

การฝังเนื้อหา Power BI เป็นคุณลักษณะเพิ่มเติม และถูกปิดใช้งานในสภาพแวดล้อมทั้งหมด โดยค่าเริ่มต้น คุณต้องเปิดใช้งานก่อนที่คุณจะสามารถฝังเนื้อหา Power BI ได้ ข้อมูลเพิ่มเติม: เปิดใช้งานการจัดรูปแบบการแสดง Power BI ในองค์กร

คุณลักษณะนี้ต้องการส่งออกโซลูชัน การปรับเปลี่ยนเพื่อเพิ่มส่วนย่อย xml แล้วจากนั้น นำเข้ากลับไปยังสภาพแวดล้อม ตรวจสอบให้แน่ใจว่า นำเข้าการเปลี่ยนแปลงบนสภาพแวดล้อมเป้าหมายของคุณผ่านโซลูชันที่มีการจัดการเท่านั้น ดู นำเข้า ปรับปรุง และส่งออกโซลูชัน สำหรับคำแนะนำเกี่ยวกับการติดตั้งการปรับปรุงลงในโซลูชันที่มีการจัดการที่มีอยู่

ฝังโดยไม่มีการกรองข้อมูลตามบริบท

คุณสามารถใช้รายงาน Power BI โดการฝังรายการเหล่านั้น และรับรายงานที่เหมือนกันทุกประการ ซึ่งไม่เกี่ยวข้องกับการทำให้เป็นไปตามบริบทกับฟอร์มของแอปแบบจำลองปัจจุบัน และดังนั้น คุณสามารถเรียกดูรายงานที่เหมือนกันบนเรกคอร์ดทั้งหมดของตารางได้ ตัวอย่างเช่น รายงานต่อไปนี้แสดงตำแหน่งที่ตั้งทางภูมิศาสตร์ของบัญชีทั้งหมดในครั้งเดียว และมีประโยชน์ในการแสดงข้อมูลสรุป

รายงาน  Power BI ที่ฝังโดยไม่มีการกรองข้อมูลตามบริบท

คุณสามารถกำหนดโหนด sections ของ XML ฟอร์มหลักเพื่อให้สามารถโฮสต์รายงาน Power BI แบบฝังและไทล์โดยทำตามขั้นตอนเหล่านี้:

  1. ในสภาพแวดล้อมการพัฒนาของคุณ สร้างโซลูชันและเพิ่มตารางที่มีฟอร์มที่คุณต้องการให้รายงาน Power BI แบบฝังแสดง

    • หากตารางมีอยู่แล้วในสภาพแวดล้อมเป้าหมายที่คุณนำเข้าโซลูชัน ให้เลือกตัวเลือก เลือกส่วนประกอบ เมื่อคุณเพิ่มตารางลงในโซลูชัน จากนั้น เพิ่มเฉพาะฟอร์มหลักของตาราง
    • หากตารางไม่มีอยู่ในสภาพแวดล้อมเป้าหมายที่คุณนำเข้าโซลูชัน ให้เลือก รวมส่วนประกอบทั้งหมด เมื่อคุณเพิ่มตารางลงในโซลูชัน
  2. ส่งออกโซลูชันเป็นแบบมีการจัดการ

  3. แตกไฟล์ทั้งหมดในไฟล์ zip แพ็คเกจโซลูชัน จากนั้น แก้ไขไฟล์ customs.xml และเพิ่มโค้ด XML ที่ให้ไว้ด้านล่างภายในบล็อก <sections> ที่อยู่ภายในโหนด <forms type="main"> ในไฟล์ customs.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

  1. ทำการเปลี่ยนแปลงต่อไปนี้กับฟอร์ม XML ที่คุณคัดลอกไปยังไฟล์ customs.xml สำหรับรายงาน Power BI ของคุณ ตารางนี้อธิบายค่าที่คุณต้องเปลี่ยนเป็นองค์ประกอบในตัวอย่าง XML ก่อนหน้า
คุณสมบัติ รายละเอียด
PowerBIGroupId รหัสพื้นที่ทำงาน Power BI หากรายงานของคุณอยู่ใน พื้นที่ทำงานของฉัน** รหัสพื้นที่ทำงานคือ 00000000-0000-0000-0000-000000000000 ไม่เช่นนั้น ให้เพิ่มรหัสพื้นที่ทำงาน คุณสามารถค้นหารหัสของพื้นที่ทำงานใน 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
  1. สร้างไฟล์ zip จากไฟล์โซลูชันทั้งหมดที่แยกออกมาก่อนหน้านี้ แล้วนำเข้าโซลูชันในสภาพแวดล้อมของเป้าหมาย

ฝังโดยมีการกรองข้อมูลตามบริบท

คุณสามารถทำให้รายงาน Power BI มีความหมายมากขึ้น ด้วยการใช้ตัวกรองตามบริบทกับฟอร์มที่เป็นแบบโมเดลปัจจุบัน เพื่อให้รายงานถูกกรองตามแอตทริบิวต์ของแถวดปัจจุบัน ตัวอย่างเช่น รายงานต่อไปนี้แสดงตำแหน่งที่ตั้งทางภูมิศาสตร์ของลูกค้าองค์กร โดยการกรองรายงาน 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 ในการกำหนดพารามิเตอร์ในลักษณะทั่วไป ค่าจะถูกสร้างขึ้นโดยนามแฝง ในนิพจน์ก่อนหน้านี้ ค่าของ ชื่อจริง และ นามสกุล ของลูกค้าองค์กรจะถูกส่งผ่าน และรายการใดรายการหนึ่งจะถูกค้นหาในคอลัมน์ ชื่อลูกค้าองค์กร ในรายงาน Power BI หมายเหตุว่า firstname และ lastname เป็นชื่อที่ไม่ซ้ำกันของแอตทริบิวต์ของตารางลูกค้าองค์กร ซึ่งค่าจะถูกส่งผ่านที่นี่

คุณสามารถสร้างนิพจน์ตัวกรองที่ซับซ้อนมากขึ้นได้ด้วยการดูที่ตัวอย่างจาก การสร้างตัวกรอง และการแสดงค่าที่เหมาะสมสำหรับ $schema และ filterType ให้แน่ใจว่าได้ออกจากทุกๆ สัญพจน์ในส่วนตัวกรองโดยใช้ " เพื่อให้ JSON ถูกสร้างขึ้นอย่างถูกต้อง

ลบแอตทริบิวต์ที่ไม่ได้แก้ไขก่อนนำเข้า

ก่อนที่คุณจะอิมพอร์ตโซลูชันไปยังสภาวะแวดล้อมเป้าหมาย ตรวจสอบให้แน่ใจว่าไม่มีการแก้ไขแอ็ตทริบิวต์ที่ไม่ได้แก้ไขในส่วน formXml ของไฟล์ customizations.xml หากแอตทริบิวต์ที่ไม่ได้แก้ไขมีอยู่ใน XML ที่รวม XML ที่ควบคุม Power BI ลบแอตทริบิวต์ก่อนที่คุณจะอิมพอร์ตโซลูชันลงในสภาวะแวดล้อมเป้าหมาย ตัวอย่างเช่น แทนที่ <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 จะเห็น เพื่อที่จะใช้ข้อจำกัดการเข้าถึงข้อมูลที่คล้ายกับ Security roles ของ 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&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 แดชบอร์ดส่วนบุคคลแบบจำลอง

ใช้ Power BI ด้วยแอป Dynamics 365

หมายเหตุ

บอกให้เราทราบเกี่ยวกับภาษาที่คุณต้องการในคู่มือ ทำแบบสำรวจสั้นๆ (โปรดทราบว่าแบบสำรวจนี้เป็นภาษาอังกฤษ)

แบบสำรวจนี้ใช้เวลาทำประมาณเจ็ดนาที ไม่มีการเก็บข้อมูลส่วนบุคคล (คำชี้แจงสิทธิ์ส่วนบุคคล)