ฝังรายงาน Power BI ในฟอร์มหลักของแอปแบบจำลอง
คุณสามารถใช้รายงาน Power BI ในแอปแบบจำลองของ Power Apps เพื่อนำการรายงานและการวิเคราะห์แบบสมบูรณ์ไปยังฟอร์มหลักของคุณ และเพิ่มศักยภาพให้กับผู้ใช้ของคุณเพื่อให้บรรลุผลลัพธ์เพิ่มมากขึ้น นี่ปลดล็อกความสามารถในการรวมข้อมูลข้ามระบบ และปรับแต่งลงไปในบริบทของเรกคอร์ดเดียว
ข้อกำหนดเบื้องต้น
การฝังเนื้อหา Power BI เป็นคุณลักษณะเพิ่มเติม และถูกปิดใช้งานในสภาพแวดล้อมทั้งหมด โดยค่าเริ่มต้น คุณต้องเปิดใช้งานก่อนที่คุณจะสามารถฝังเนื้อหา Power BI ได้ ข้อมูลเพิ่มเติม: เปิดใช้งานการจัดรูปแบบการแสดง Power BI ในองค์กร
คุณลักษณะนี้ต้องมีการส่งออกโซลูชัน ปรับเปลี่ยนเพื่อแทนที่ส่วนย่อย XML จากนั้น นำเข้ากลับไปยังสภาพแวดล้อม ตรวจสอบให้แน่ใจว่านำเข้าการเปลี่ยนแปลงบนสภาพแวดล้อมการพัฒนาของคุณผ่านโซลูชันที่ไม่มีการจัดการเท่านั้น ไปที่ นำเข้า อัปเดต และส่งออกโซลูชัน สำหรับคำแนะนำเกี่ยวกับการติดตั้งการอัปเดตลงในโซลูชันที่ไม่มีการจัดการที่มีอยู่
ฝังโดยไม่มีการกรองข้อมูลตามบริบท
คุณสามารถใช้รายงาน Power BI โดการฝังรายการเหล่านั้น และรับรายงานที่เหมือนกันทุกประการ ซึ่งไม่เกี่ยวข้องกับการทำให้เป็นไปตามบริบทกับฟอร์มของแอปแบบจำลองปัจจุบัน และดังนั้น คุณสามารถเรียกดูรายงานที่เหมือนกันบนเรกคอร์ดทั้งหมดของตารางได้ ตัวอย่างเช่น รายงานต่อไปนี้แสดงตำแหน่งที่ตั้งทางภูมิศาสตร์ของบัญชีทั้งหมดในครั้งเดียว และมีประโยชน์ในการแสดงข้อมูลสรุป
คุณสามารถกำหนดโหนด controls
ของ XML ฟอร์มหลักเพื่อให้สามารถโฮสต์รายงาน Power BI แบบฝังและไทล์โดยทำตามขั้นตอนเหล่านี้:
ในสภาพแวดล้อมการพัฒนาของคุณ สร้างโซลูชันและเพิ่มตารางที่มีฟอร์มที่คุณต้องการให้รายงาน Power BI แบบฝังแสดง เลือกตัวเลือก เลือกส่วนประกอบ เมื่อคุณเพิ่มตารางลงในโซลูชัน จากนั้น เพิ่มเฉพาะฟอร์มหลักของตาราง
แก้ไขฟอร์มหลักของตารางในโซลูชันของคุณ และเพิ่ม Sub-grid ตัวยึดที่คุณต้องการฝังรายงานของ Power BI ของคุณ
- อัปเดตป้ายชื่อและชื่อของ Sub-grid ในตัวออกแบบฟอร์ม
ส่งออกโซลูชันเป็นไม่มีการจัดการและแตกไฟล์ทั้งหมดในไฟล์ zip ของแพ็คเกจโซลูชัน จากนั้นแก้ไขไฟล์ customizations.xml และค้นหาชื่อ Sub-grid ของคุณ แทนที่โค้ด XML ที่ให้ไว้ภายในบล็อก
<control>
ในไฟล์ customizations.xmlrowspan
ในโหนดcell
หลักสามารถปรับเพื่อเปลี่ยนขนาดของรายงานของ Power BI แบบฝังได้<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>
สำคัญ
ให้แน่ใจว่าใช้ตัวควบคุม
classid="{8C54228C-1B25-4909-A12A-F2B968BB0D62}"
เป็นตัวบ่งชี้ในตัวอย่าง XML- ทำการเปลี่ยนแปลงต่อไปนี้กับฟอร์ม 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
- ทำการเปลี่ยนแปลงต่อไปนี้กับฟอร์ม XML ที่คุณคัดลอกไปยังไฟล์ customs.xml สำหรับรายงาน Power BI ของคุณ ตารางนี้อธิบายค่าที่คุณต้องเปลี่ยนเป็นองค์ประกอบในตัวอย่าง XML ก่อนหน้า
สร้างไฟล์ zip จากไฟล์โซลูชันทั้งหมดที่แยกออกมาก่อนหน้านี้ แล้วนำเข้าโซลูชันในสภาพแวดล้อมการพัฒนา
ฝังโดยมีการกรองข้อมูลตามบริบท
คุณสามารถทำให้รายงาน 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 ถูกสร้างขึ้นอย่างถูกต้อง
ค้นหาพื้นที่ทำงานและรหัสรายงาน Power BI
- รหัสพื้นที่ทำงานสำหรับตัวอย่างนี้คือ efc85277-2bdb-47bc-9762-363f64335108
- รหัสรายงานสำหรับตัวอย่างนี้คือ 643ab643-7126-4a57-bd82-ca8f1fb676fc
ปัญหาและข้อจำกัดที่ทราบ
การรวมนี้จะใช้ได้เฉพาะในไคลเอนต์ส่วนติดต่อแบบรวม บนเว็บเบราว์เซอร์และอุปกรณ์เคลื่อนที่ที่สนับสนุน
การเปิดฟอร์มนี้ในตัวออกแบบฟอร์ม Power Apps จะไม่แสดงตัวควบคุมในวิธีที่มีความหมาย เป็นเช่นนี้เพราะมีการกำหนดตัวควบคุมภายนอกตัวออกแบบฟอร์ม
ผู้ใช้จะได้รับการรับรองความถูกต้องใน Power BI โดยอัตโนมัติด้วยชื่อผู้ใช้และรหัสผ่าน Power Apps ของพวกเขา ถ้าไม่มีบัญชี Power BI ที่มีข้อมูลประจำตัวที่ตรงกันอยู่ การลงชื่อเข้าใช้ในพรอมต์นั้นจะแสดงขึ้นดังที่แสดงที่นี่
ไม่มีข้อมูลแสดงหากมีการใช้บัญชีผู้ใช้ที่ไม่ถูกต้องในการเข้าสู่ระบบไปยัง Power BI ในการเข้าสู่ระบบด้วยข้อมูลประจำตัวที่ถูกต้อง ลงชื่อออก และจากนั้น เข้าสู่ระบบอีกครั้ง
มุมมองของข้อมูลรายงานที่แสดงอยู่ภายใน Power Apps จะเหมือนกับ Power BI และบทบาทความปลอดภัยของ Power Apps และสิทธิ์การใช้งานไม่มีผลกระทบต่อข้อมูลที่จะแสดงขึ้น ดังนั้น ข้อมูลจำเป็นอย่างยิ่งที่จะต้องเหมือนกับสิ่งที่ผู้สร้างชุดข้อมูล Power BI จะเห็น เพื่อที่จะใช้ข้อจำกัดการเข้าถึงข้อมูลที่คล้ายกับบทบาทความปลอดภัยของ 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&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 แดชบอร์ดส่วนบุคคลแบบจำลอง