แชร์ผ่าน


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

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

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

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

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

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

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

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

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

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

  2. แก้ไขฟอร์มหลักของตารางในโซลูชันของคุณ และเพิ่ม Sub-grid ตัวยึดที่คุณต้องการฝังรายงานของ Power BI ของคุณ

    • อัปเดตป้ายชื่อและชื่อของ Sub-grid ในตัวออกแบบฟอร์ม

    ตัวยึดการฝัง Power BI

  3. ส่งออกโซลูชันเป็นไม่มีการจัดการและแตกไฟล์ทั้งหมดในไฟล์ zip ของแพ็คเกจโซลูชัน จากนั้นแก้ไขไฟล์ customizations.xml และค้นหาชื่อ Sub-grid ของคุณ แทนที่โค้ด XML ที่ให้ไว้ภายในบล็อก <control> ในไฟล์ customizations.xml rowspan ในโหนด 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
  4. สร้างไฟล์ 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 ถูกสร้างขึ้นอย่างถูกต้อง

ค้นหาพื้นที่ทำงานและรหัสรายงาน 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 และทีม ใช้ การรักษาความปลอดภัยในระดับแถว (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