ฝังรายงาน Power BI ในฟอร์มหลักของแอปแบบจำลอง
คุณสามารถใช้รายงาน Power BI ในแอปแบบจำลองของ Power Apps เพื่อนำการรายงานและการวิเคราะห์แบบสมบูรณ์ไปยังฟอร์มหลักของคุณ และเพิ่มศักยภาพให้กับผู้ใช้ของคุณเพื่อให้บรรลุผลลัพธ์เพิ่มมากขึ้น นี่ปลดล็อกความสามารถในการรวมข้อมูลข้ามระบบ และปรับแต่งลงไปในบริบทของเรกคอร์ดเดียว
ข้อกำหนดเบื้องต้น
การฝังเนื้อหา Power BI เป็นคุณลักษณะเพิ่มเติม และถูกปิดใช้งานในสภาพแวดล้อมทั้งหมด โดยค่าเริ่มต้น คุณต้องเปิดใช้งานก่อนที่คุณจะสามารถฝังเนื้อหา Power BI ได้ ข้อมูลเพิ่มเติม: เปิดใช้งานการจัดรูปแบบการแสดง Power BI ในองค์กร
คุณลักษณะนี้ต้องการส่งออกโซลูชัน การปรับเปลี่ยนเพื่อเพิ่มส่วนย่อย xml แล้วจากนั้น นำเข้ากลับไปยังสภาพแวดล้อม ตรวจสอบให้แน่ใจว่า นำเข้าการเปลี่ยนแปลงบนสภาพแวดล้อมเป้าหมายของคุณผ่านโซลูชันที่มีการจัดการเท่านั้น ดู นำเข้า ปรับปรุง และส่งออกโซลูชัน สำหรับคำแนะนำเกี่ยวกับการติดตั้งการปรับปรุงลงในโซลูชันที่มีการจัดการที่มีอยู่
ฝังโดยไม่มีการกรองข้อมูลตามบริบท
คุณสามารถใช้รายงาน Power BI โดการฝังรายการเหล่านั้น และรับรายงานที่เหมือนกันทุกประการ ซึ่งไม่เกี่ยวข้องกับการทำให้เป็นไปตามบริบทกับฟอร์มของแอปแบบจำลองปัจจุบัน และดังนั้น คุณสามารถเรียกดูรายงานที่เหมือนกันบนเรกคอร์ดทั้งหมดของตารางได้ ตัวอย่างเช่น รายงานต่อไปนี้แสดงตำแหน่งที่ตั้งทางภูมิศาสตร์ของบัญชีทั้งหมดในครั้งเดียว และมีประโยชน์ในการแสดงข้อมูลสรุป
คุณสามารถกำหนดโหนด sections
ของ XML ฟอร์มหลักเพื่อให้สามารถโฮสต์รายงาน Power BI แบบฝังและไทล์โดยทำตามขั้นตอนเหล่านี้:
ในสภาพแวดล้อมการพัฒนาของคุณ สร้างโซลูชันและเพิ่มตารางที่มีฟอร์มที่คุณต้องการให้รายงาน Power BI แบบฝังแสดง
- หากตารางมีอยู่แล้วในสภาพแวดล้อมเป้าหมายที่คุณนำเข้าโซลูชัน ให้เลือกตัวเลือก เลือกส่วนประกอบ เมื่อคุณเพิ่มตารางลงในโซลูชัน จากนั้น เพิ่มเฉพาะฟอร์มหลักของตาราง
- หากตารางไม่มีอยู่ในสภาพแวดล้อมเป้าหมายที่คุณนำเข้าโซลูชัน ให้เลือก รวมส่วนประกอบทั้งหมด เมื่อคุณเพิ่มตารางลงในโซลูชัน
ส่งออกโซลูชันเป็นแบบมีการจัดการ
แตกไฟล์ทั้งหมดในไฟล์ 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
- ทำการเปลี่ยนแปลงต่อไปนี้กับฟอร์ม 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 |
- สร้างไฟล์ 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 ถูกสร้างขึ้นอย่างถูกต้อง
ลบแอตทริบิวต์ที่ไม่ได้แก้ไขก่อนนำเข้า
ก่อนที่คุณจะอิมพอร์ตโซลูชันไปยังสภาวะแวดล้อมเป้าหมาย ตรวจสอบให้แน่ใจว่าไม่มีการแก้ไขแอ็ตทริบิวต์ที่ไม่ได้แก้ไขในส่วน formXml ของไฟล์ customizations.xml หากแอตทริบิวต์ที่ไม่ได้แก้ไขมีอยู่ใน XML ที่รวม XML ที่ควบคุม Power BI ลบแอตทริบิวต์ก่อนที่คุณจะอิมพอร์ตโซลูชันลงในสภาวะแวดล้อมเป้าหมาย ตัวอย่างเช่น แทนที่ <systemform unmodified="1">
ด้วย <systemform>
ค้นหาพื้นที่ทำงานและรหัสรายงาน 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 จะเห็น เพื่อที่จะใช้ข้อจำกัดการเข้าถึงข้อมูลที่คล้ายกับ 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&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
หมายเหตุ
บอกให้เราทราบเกี่ยวกับภาษาที่คุณต้องการในคู่มือ ทำแบบสำรวจสั้นๆ (โปรดทราบว่าแบบสำรวจนี้เป็นภาษาอังกฤษ)
แบบสำรวจนี้ใช้เวลาทำประมาณเจ็ดนาที ไม่มีการเก็บข้อมูลส่วนบุคคล (คำชี้แจงสิทธิ์ส่วนบุคคล)