Làm việc với Ma trận Power BI lấy dữ liệu từ câu lệnh DAX
Tôi có các yêu cầu sau:
- Người dùng sẽ thấy Ma trận Power BI trên một trang web (trái ngược với Power BI Desktop).
- Trang web phải có ba phần tử: trường văn bản, nút và Ma trận Power BI (có thể được đưa vào Báo cáo Power BI).
- Người dùng sẽ nhập câu lệnh DAX vào trường văn bản và nhấp vào nút để hướng Ma trận lấy câu lệnh DAX, thực thi nó và điền dữ liệu.
- Người dùng sẽ có thể đi sâu vào Ma trận.
- Người dùng có thể nhập lại một câu lệnh DAX mới, làm mới Ma trận.
Bây giờ, tất cả tài liệu tôi có thể tìm thấy, ví dụ ở đây , nói về Ma trận trong Power BI Desktop (tức là không phải trang web) và dữ liệu được lấy bằng cách chọn các bảng / cột / thước đo theo cách thủ công (ở bên phải màn hình).
Trong Power BI Studio, tôi biết rằng tôi có thể nhập câu lệnh DAX bằng cách tạo một bảng ở thanh trên cùng, ví dụ: nếu tôi có DAX:
EVALUATE TOPN (3, branches)
Tôi có thể tạo một bảng để điền Ma trận với:
BranchesTable = TOPN (3, branches)
Nhưng làm cách nào để liên kết động một trạng thái DAX được xác định tại thời điểm chạy với Ma trận trên một trang web?
Trả lời
Điều này hiện không thể thực hiện chính xác những gì bạn muốn. Bạn có thể tự động thay đổi nguồn dữ liệu và cập nhật truy vấn được sử dụng trong một báo cáo cụ thể nhưng không có sẵn API (PowerBI REST hoặc PowerBI JavaScript) để cập nhật các cột hiển thị trong báo cáo. Bạn có thể đến khá gần với những gì bạn muốn nhưng báo cáo không thể được hiển thị ở View
chế độ và nó sẽ phải được hiển thị ở Edit
chế độ để người dùng có thể kéo các trường được tạo từ kết quả truy vấn DAX cập nhật của họ vào trực quan Ma trận theo cách thủ công nếu họ gửi một thay đổi.
Giả sử bạn đã hoàn thành thiết lập và cấu hình Đăng ký ứng dụng cần thiết trước và bạn đã sẵn sàng nhúng thì đây là một số bước để đến gần những gì bạn đang tìm kiếm. Nếu bạn chưa sẵn sàng nhúng, có một số tài liệu bên dưới 8 bước tôi đã cung cấp để hoàn thành thiết lập điều kiện tiên quyết để có thể nhúng.
- Sử dụng PowerBI Desktop Tạo báo cáo mẫu có hình ảnh ma trận và kết nối với nguồn dữ liệu bạn muốn sử dụng. Đảm bảo thiết lập báo cáo này bằng cách sử dụng một truy vấn cụ thể chứ KHÔNG phải tất cả các bảng trong nguồn dữ liệu dù là SQL hay SSAS. (Bạn chỉ định truy vấn trong các tùy chọn nâng cao khi bạn thiết lập nguồn dữ liệu ban đầu trong báo cáo)
- Thiết lập Cổng dữ liệu Power BI cho Nguồn dữ liệu mà báo cáo của bạn sử dụng
- Tạo không gian làm việc trên PowerBI.com để tải báo cáo lên
- Sử dụng máy tính để bàn PowerBI Xuất bản báo cáo bạn đã tạo ở bước 1 lên không gian làm việc mà bạn đã tạo ở bước 3
- Trên Ứng dụng Web của bạn, khi người dùng xem trang trình xem báo cáo, bạn cần có cách xác định từng người dùng. Giả sử bạn có
UserId
trường là ID duy nhất cho mỗi người dùng. Gọi GetReports trong nhómhttps://docs.microsoft.com/en-us/rest/api/power-bi/reports/getreportsingroup. Bạn cần có tên báo cáo đã biết cùng với UserId. Hãy giả sử DynamicReport của nó. Vì vậy, hãy gọi GetReports và kiểm tra xem cóDynamicReport_UserId
tồn tại người dùng đang cố gắng xem trang trình xem báo cáo trong ứng dụng web của bạn hay không. - Trong các lệnh gọi API đó là kết quả từ bước 5, nếu báo cáo không tồn tại cho người dùng, hãy sử dụng https://docs.microsoft.com/en-us/rest/api/power-bi/reports/clonereport để sao chép báo cáo mẫu mà bạn đã xuất bản ở bước 4.
- Nhúng và hiển thị báo cáo mẫu cụ thể của người dùng (DynamicReport_UserId) cho người dùng.
- Có logic trên trang trình xem báo cáo để người dùng có thể gửi và
POST
truy vấn DAX. Khi họ gửi, có logic để sử dụnghttps://docs.microsoft.com/en-us/rest/api/power-bi/datasets/updatedatasources ở mặt sau để cập nhật nguồn dữ liệu trong báo cáo của họ và sau đó nhúng lại báo cáo với câu lệnh DAX và dữ liệu đã thay đổi của họ.
Trực quan sẽ không tự động cập nhật các trường mới từ truy vấn mới do người dùng gửi nhưng các trường dữ liệu có sẵn mà họ có trong chế độ chỉnh sửa sẽ thay đổi. Người dùng sẽ phải kéo và thả các trường từ truy vấn DAX của họ vào trực quan Ma trận hoặc bất kỳ loại trực quan nào mà họ sẽ chọn sử dụng. Bạn sẽ không thể chỉ hiển thị báo cáo ở View
chế độ vì bạn không có cách nào để cập nhật theo chương trình những trường có trên hình ảnh. Người dùng thậm chí có thể nhìn thấy hình ảnh bị hỏng ban đầu do truy vấn đã thay đổi và các trường tham chiếu trực quan từ truy vấn được sử dụng trước đó. Bạn có thể sử dụng PowerBI Javascript API để ẩn hình ảnh hiện có để cải thiện trải nghiệm người dùng của người dùng không nhìn thấy thứ gì đó bị hỏng.
Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi cụ thể nào về các lệnh gọi API này hoặc cách sử dụng chúng.
Đây là nơi tôi đã tìm kiếm chức năng Power BI JavaScript https://github.com/Microsoft/powerbi-javascript/wiki (Không thể tìm thấy bất kỳ thứ gì cụ thể cho Hình ảnh ma trận. Chức năng JavaScript dành cho hình ảnh chung cho Hình ảnh chứ không phải Loại trực quan như Ma trận hoặc Thẻ)
Đây là tài liệu của Microsoft về các API REST có sẵn và https://docs.microsoft.com/en-us/rest/api/power-bi/
Dưới đây là một số tài nguyên tốt để tìm hiểu thêm về nhúng
https://docs.microsoft.com/en-us/power-bi/developer/embedded/register-app https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedding
Nếu bạn cần khả năng đi sâu vào Cấu trúc phân cấp là một lựa chọn tuyệt vời
https://spreadsheeto.com/power-bi-hierarchy/