Bekerja dengan Matriks Power BI mengambil data dari pernyataan DAX
Saya memiliki persyaratan berikut:
- Pengguna akan melihat Matriks Power BI di halaman web (sebagai lawan dari Power BI Desktop).
- Halaman web harus memiliki tiga elemen: bidang teks, tombol dan Matriks Power BI (berpotensi disertakan dalam Laporan Power BI).
- Pengguna akan memasukkan pernyataan DAX di bidang teks dan mengklik tombol untuk mengarahkan Matriks untuk mengambil pernyataan DAX, mengeksekusinya, dan mengisi data.
- Pengguna harus dapat menelusuri Matriks.
- Pengguna dapat memasukkan kembali pernyataan DAX baru, menyegarkan Matriks.
Sekarang, semua dokumentasi yang dapat saya temukan, misalnya di sini , berbicara tentang Matrix di Power BI Desktop (bukan halaman web) dan data diambil dengan memilih tabel / kolom / ukuran secara manual (di sisi kanan layar).
Di Power BI Studio, saya tahu bahwa saya bisa memasukkan pernyataan DAX dengan membuat tabel di bilah atas, misalnya jika saya memiliki DAX:
EVALUATE TOPN (3, branches)
Saya bisa membuat tabel untuk mengisi Matrix dengan:
BranchesTable = TOPN (3, branches)
Tapi bagaimana cara menautkan pernyataan DAX secara dinamis yang ditentukan pada waktu proses ke Matriks di halaman web?
Jawaban
Saat ini hal ini tidak memungkinkan untuk melakukan apa yang Anda inginkan. Anda dapat secara dinamis mengubah sumber data dan memperbarui kueri yang digunakan dalam laporan tertentu tetapi tidak ada API yang tersedia (PowerBI REST atau PowerBI JavaScript) untuk memperbarui kolom apa yang ada di visual dalam laporan. Anda bisa mendapatkan cukup dekat dengan apa yang Anda inginkan tetapi laporan tidak dapat ditampilkan dalam View
mode dan itu harus ditampilkan dalam Edit
mode sehingga pengguna akan memiliki kemampuan untuk menyeret bidang yang dihasilkan dari hasil kueri DAX mereka yang diperbarui ke visual Matrix secara manual jika mereka mengajukan perubahan.
Dengan asumsi Anda telah menyelesaikan pengaturan dan konfigurasi Pendaftaran Aplikasi prasyarat dan Anda siap untuk menyematkan, berikut adalah beberapa langkah untuk mendekati apa yang Anda cari. Jika Anda belum siap untuk menyematkan, ada beberapa dokumentasi di bawah 8 langkah yang saya sediakan untuk menyelesaikan penyiapan prasyarat agar dapat menyematkan.
- Menggunakan PowerBI Desktop Buat laporan templat yang memiliki visual matriks dan koneksi ke sumber data yang ingin Anda gunakan. Pastikan untuk menyiapkan laporan ini menggunakan kueri tertentu dan BUKAN semua tabel di sumber data baik itu SQL atau SSAS. (Anda menentukan kueri di bawah opsi lanjutan saat Anda pertama kali menyiapkan sumber data dalam laporan)
- Siapkan Power BI Data Gateway ke Sumber Data yang digunakan laporan Anda
- Buat ruang kerja di PowerBI.com untuk mengunggah laporan
- Menggunakan desktop PowerBI Terbitkan laporan yang Anda buat di langkah 1 ke ruang kerja yang Anda buat di langkah 3
- Di Aplikasi Web Anda, saat pengguna melihat halaman penampil laporan, Anda memerlukan cara untuk mengidentifikasi setiap pengguna. Mari kita asumsikan Anda memiliki
UserId
bidang yang merupakan ID unik untuk setiap pengguna. Panggil GetReports dalam gruphttps://docs.microsoft.com/en-us/rest/api/power-bi/reports/getreportsingroup. Anda harus memiliki nama laporan yang diketahui ditambah UserId. Mari kita asumsikan DynamicReport-nya. Jadi panggil GetReports dan periksa apakahDynamicReport_UserId
ada untuk pengguna yang mencoba melihat halaman penampil laporan di aplikasi web Anda. - Dalam panggilan API tersebut dihasilkan dari langkah 5, jika laporan tidak ada untuk pengguna, gunakan https://docs.microsoft.com/en-us/rest/api/power-bi/reports/clonereport untuk menggandakan laporan template yang Anda terbitkan pada langkah 4.
- Sematkan dan tampilkan laporan template khusus pengguna (DynamicReport_UserId) untuk pengguna.
- Memiliki logika di halaman penampil laporan sehingga pengguna bisa mengirimkan dan
POST
kueri DAX. Ketika mereka mengirimkan, memiliki logika untuk digunakanhttps://docs.microsoft.com/en-us/rest/api/power-bi/datasets/updatedatasources di bagian belakang untuk memperbarui sumber data dalam laporan mereka dan lalu menyematkan laporan lagi dengan pernyataan DAX mereka dan mengubah data.
Visual tidak akan secara otomatis memperbarui ke bidang baru dari kueri baru yang dikirimkan oleh pengguna tetapi bidang data yang tersedia yang mereka miliki dalam mode editor akan berubah. Pengguna harus menyeret dan menjatuhkan bidang dari kueri DAX mereka ke visual Matrix atau tipe visual apa pun yang akan mereka pilih untuk digunakan. Anda tidak akan dapat hanya menampilkan laporan dalam View
mode karena Anda tidak memiliki cara untuk memperbarui secara terprogram bidang apa yang ada di visual. Pengguna bahkan mungkin akhirnya melihat visual yang rusak pada awalnya karena kueri yang diubah dan bidang referensi visual dari kueri yang digunakan sebelumnya. Anda dapat menggunakan PowerBI Javascript API untuk menyembunyikan visual yang ada untuk meningkatkan pengalaman pengguna dari pengguna yang tidak melihat sesuatu yang rusak.
Beri tahu saya jika Anda memiliki pertanyaan khusus tentang panggilan API ini atau cara menggunakannya.
Di sinilah saya mencari fungsionalitas Power BI JavaScript https://github.com/Microsoft/powerbi-javascript/wiki (Tidak dapat menemukan sesuatu yang spesifik untuk Visual matriks. Fungsi JavaScript untuk visual yang umum untuk Visual dan bukan Jenis Visual seperti Matriks atau Kartu)
Berikut adalah dokumentasi Microsoft tentang REST API yang tersedia dan https://docs.microsoft.com/en-us/rest/api/power-bi/
Berikut beberapa sumber daya yang bagus untuk mempelajari lebih lanjut tentang penyematan
https://docs.microsoft.com/en-us/power-bi/developer/embedded/register-app https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedding
Jika Anda membutuhkan kemampuan penelusuran, Hierarki adalah pilihan yang bagus
https://spreadsheeto.com/power-bi-hierarchy/