ทำงานกับ Power BI Matrix โดยรับข้อมูลจากคำสั่ง DAX

Aug 15 2020

ฉันมีข้อกำหนดดังต่อไปนี้:

  • ผู้ใช้จะเห็น Power BI Matrix บนเว็บเพจ (ตรงข้ามกับ Power BI Desktop)
  • หน้าเว็บควรมีองค์ประกอบสามอย่าง: ฟิลด์ข้อความปุ่มและเมทริกซ์ Power BI (อาจรวมอยู่ในรายงาน Power BI)
  • ผู้ใช้จะป้อนคำสั่ง DAX ในช่องข้อความและคลิกที่ปุ่มเพื่อสั่งให้เมทริกซ์ใช้คำสั่ง DAX ดำเนินการและเติมข้อมูล
  • ผู้ใช้ควรจะสามารถเจาะลึกในเมทริกซ์ได้
  • ผู้ใช้อาจป้อนคำสั่ง DAX ใหม่อีกครั้งโดยรีเฟรชเมทริกซ์

ตอนนี้เอกสารทั้งหมดที่ฉันสามารถหาได้ตัวอย่างเช่นที่นี่พูดคุยเกี่ยวกับ Matrix ใน Power BI Desktop (เช่นไม่ใช่หน้าเว็บ) และข้อมูลที่นำมาจากการเลือกตาราง / คอลัมน์ / การวัดด้วยตนเอง (ทางด้านขวาของหน้าจอ)

ใน Power BI Studio ฉันรู้ว่าฉันสามารถป้อนคำสั่ง DAX ได้โดยการสร้างตารางในแถบด้านบนตัวอย่างเช่นถ้าฉันมี DAX:

 EVALUATE TOPN (3, branches)

ฉันสามารถสร้างตารางเพื่อเติมข้อมูลเมทริกซ์ด้วย:

BranchesTable = TOPN (3, branches)

แต่จะเชื่อมโยงสถิติ DAX แบบไดนามิกที่กำหนดในขณะทำงานกับเมทริกซ์บนหน้าเว็บแบบไดนามิกได้อย่างไร

คำตอบ

1 vvvv4d Aug 15 2020 at 21:20

ขณะนี้ยังไม่สามารถทำสิ่งที่คุณต้องการได้อย่างแน่นอน คุณสามารถเปลี่ยนแหล่งข้อมูลแบบไดนามิกและอัปเดตแบบสอบถามที่ใช้ในรายงานเฉพาะได้ แต่ไม่มี API ที่พร้อมใช้งาน (PowerBI REST หรือ PowerBI JavaScript) เพื่ออัปเดตคอลัมน์ที่อยู่ในภาพในรายงาน คุณสามารถเข้าใกล้สิ่งที่คุณต้องการได้ แต่รายงานไม่สามารถแสดงในViewโหมดได้และจะต้องแสดงในEditโหมดดังนั้นผู้ใช้จะมีความสามารถในการลากเขตข้อมูลที่สร้างจากผลลัพธ์แบบสอบถาม DAX ที่อัปเดตไปยังภาพเมทริกซ์ด้วยตนเอง พวกเขาส่งการเปลี่ยนแปลง

สมมติว่าคุณมีการตั้งค่าและการกำหนดค่าการลงทะเบียนแอปที่จำเป็นล่วงหน้าแล้วและคุณพร้อมที่จะฝังต่อไปนี้เป็นขั้นตอนบางส่วนเพื่อเข้าใกล้สิ่งที่คุณกำลังมองหา หากคุณยังไม่พร้อมที่จะฝังมีเอกสารบางส่วนด้านล่าง 8 ขั้นตอนที่ฉันให้ไว้เพื่อดำเนินการตั้งค่าข้อกำหนดเบื้องต้นให้เสร็จสมบูรณ์เพื่อให้สามารถฝังได้

  1. การใช้ PowerBI Desktop สร้างรายงานเทมเพลตที่มีเมทริกซ์วิชวลและการเชื่อมต่อกับแหล่งข้อมูลที่คุณต้องการใช้ อย่าลืมตั้งค่ารายงานนี้โดยใช้แบบสอบถามเฉพาะและไม่ใช่ตารางทั้งหมดในแหล่งข้อมูลไม่ว่าจะเป็น SQL หรือ SSAS (คุณระบุข้อความค้นหาภายใต้ตัวเลือกขั้นสูงเมื่อคุณตั้งค่าแหล่งข้อมูลในรายงานครั้งแรก)
  2. ตั้งค่าเกตเวย์ข้อมูล Power BI ไปยังแหล่งข้อมูลที่รายงานของคุณใช้
  3. สร้างพื้นที่ทำงานบน PowerBI.com เพื่ออัปโหลดรายงานไปที่
  4. การใช้ PowerBI desktop เผยแพร่รายงานที่คุณสร้างในขั้นตอนที่ 1 ไปยังพื้นที่ทำงานที่คุณสร้างในขั้นตอนที่ 3
  5. บนเว็บแอปพลิเคชันของคุณเมื่อผู้ใช้ดูหน้าโปรแกรมดูรายงานคุณต้องมีวิธีระบุผู้ใช้แต่ละคน สมมติว่าคุณมีUserIdฟิลด์ที่เป็น ID เฉพาะสำหรับผู้ใช้แต่ละคน โทรหา GetReports ในกลุ่มhttps://docs.microsoft.com/en-us/rest/api/power-bi/reports/getreportsingroup. คุณต้องมีชื่อรายงานที่ทราบพร้อม UserId สมมติว่าเป็น DynamicReport ดังนั้นโทรหา GetReports และตรวจสอบว่าDynamicReport_UserIdมีอยู่สำหรับผู้ใช้ที่พยายามดูหน้าโปรแกรมดูรายงานในเว็บแอปพลิเคชันของคุณหรือไม่
  6. ในการเรียก API นั้นเป็นผลมาจากขั้นตอนที่ 5 หากไม่มีรายงานสำหรับผู้ใช้ให้ใช้ https://docs.microsoft.com/en-us/rest/api/power-bi/reports/clonereport เพื่อโคลนรายงานเทมเพลตที่คุณเผยแพร่ในขั้นตอนที่ 4
  7. ฝังและแสดงรายงานเทมเพลตเฉพาะผู้ใช้ (DynamicReport_UserId) สำหรับผู้ใช้
  8. มีตรรกะในหน้าโปรแกรมดูรายงานเพื่อให้ผู้ใช้สามารถส่งและPOSTแบบสอบถาม DAX เมื่อพวกเขาส่งมีตรรกะที่จะใช้https://docs.microsoft.com/en-us/rest/api/power-bi/datasets/updatedatasources ที่ส่วนหลังเพื่ออัปเดตแหล่งข้อมูลในรายงานจากนั้นฝังรายงานอีกครั้งด้วยคำสั่ง DAX และข้อมูลที่เปลี่ยนแปลง

วิชวลจะไม่อัปเดตเป็นฟิลด์ใหม่โดยอัตโนมัติจากคิวรีใหม่ที่ผู้ใช้ส่งมา แต่ฟิลด์ข้อมูลที่มีอยู่ในโหมดตัวแก้ไขจะเปลี่ยนไป ผู้ใช้จะต้องลากและวางเขตข้อมูลจากแบบสอบถาม DAX ของพวกเขาไปยังเมทริกซ์วิชวลหรือประเภทวิชวลที่พวกเขาจะเลือกใช้ คุณจะไม่สามารถเพียงแค่แสดงรายงานในViewโหมดเนื่องจากคุณไม่มีวิธีอัปเดตฟิลด์ที่อยู่ในภาพโดยใช้โปรแกรม ผู้ใช้อาจเห็นภาพที่ไม่สมบูรณ์ในตอนแรกเนื่องจากแบบสอบถามที่เปลี่ยนแปลงและฟิลด์การอ้างอิงภาพจากแบบสอบถามที่ใช้ก่อนหน้านี้ คุณสามารถใช้ PowerBI Javascript API เพื่อซ่อนวิชวลที่มีอยู่เพื่อปรับปรุงประสบการณ์การใช้งานของผู้ใช้ที่ไม่เห็นสิ่งที่เสียหาย

โปรดแจ้งให้เราทราบหากคุณมีคำถามเฉพาะเกี่ยวกับการเรียก API เหล่านี้หรือวิธีการใช้งาน

นี่คือที่ที่ฉันกำลังมองหาฟังก์ชันการทำงานของ Power BI JavaScript https://github.com/Microsoft/powerbi-javascript/wiki (ไม่พบสิ่งใดที่เฉพาะเจาะจงสำหรับ matrix Visuals ฟังก์ชัน JavaScript สำหรับวิชวลทั่วไปสำหรับ Visuals ไม่ใช่ Visual Type เช่น Matrix หรือ Card)

นี่คือเอกสารของ Microsoft เกี่ยวกับ REST API ที่มีอยู่และ https://docs.microsoft.com/en-us/rest/api/power-bi/

ต่อไปนี้เป็นแหล่งข้อมูลที่ดีในการเรียนรู้เพิ่มเติมเกี่ยวกับการฝัง

https://docs.microsoft.com/en-us/power-bi/developer/embedded/register-app https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedding

หากคุณต้องการความสามารถในการเจาะลึกลำดับชั้นเป็นตัวเลือกที่ยอดเยี่ยม

https://spreadsheeto.com/power-bi-hierarchy/