Pracuj z Power BI Matrix, pobierając dane z instrukcji języka DAX
Mam następujące wymagania:
- Użytkownik zobaczy Power BI Matrix na stronie internetowej (w przeciwieństwie do Power BI Desktop).
- Strona internetowa powinna mieć trzy elementy: pole tekstowe, przycisk i macierz Power BI (potencjalnie zawarte w raporcie usługi Power BI).
- Użytkownik wprowadzi instrukcję DAX w polu tekstowym i kliknie przycisk, aby skierować Matrix do pobrania instrukcji DAX, wykonania jej i wypełnienia danych.
- Użytkownik powinien mieć możliwość drążenia w dół w Matrycy.
- Użytkownik może ponownie wprowadzić nową instrukcję języka DAX, odświeżając macierz.
Teraz cała dokumentacja, jaką mogłem znaleźć, na przykład tutaj , mówi o Matrycy w Power BI Desktop (tj. Nie o stronie internetowej) i danych pobranych poprzez ręczne wybranie tabel / kolumn / miar (po prawej stronie ekranu).
W Power BI Studio wiem, że mogę wprowadzić instrukcję języka DAX, tworząc tabelę na górnym pasku, na przykład jeśli mam język DAX:
EVALUATE TOPN (3, branches)
Mogę utworzyć tabelę, aby zapełnić Matrix:
BranchesTable = TOPN (3, branches)
Ale jak dynamicznie połączyć statystykę języka DAX zdefiniowaną w czasie wykonywania z macierzą na stronie internetowej?
Odpowiedzi
Obecnie nie jest możliwe zrobienie dokładnie tego, co chcesz. Możesz dynamicznie zmieniać źródło danych i aktualizować zapytanie używane w określonym raporcie, ale nie ma dostępnego interfejsu API (PowerBI REST lub PowerBI JavaScript), aby zaktualizować kolumny w wizualizacji w raporcie. Możesz zbliżyć się do tego, co chcesz, ale raportu nie można wyświetlić w View
trybie i będzie musiał być wyświetlany w Edit
trybie, aby użytkownik miał możliwość ręcznego przeciągania pól wygenerowanych z ich zaktualizowanych wyników zapytania DAX do wizualizacji Matrix, jeśli zgłaszają zmianę.
Zakładając, że masz już wymagane wstępne ustawienia i konfigurację rejestracji aplikacji i jesteś gotowy do osadzenia, oto kilka kroków, aby zbliżyć się do tego, czego szukasz. Jeśli nie jesteś gotowy do osadzenia, poniżej 8 kroków, które podałem, aby ukończyć wstępną konfigurację, aby móc osadzić, znajduje się dokumentacja.
- Korzystanie z programu PowerBI Desktop Utwórz szablon raportu zawierający wizualizację macierzy i połączenie ze źródłem danych, którego chcesz użyć. Pamiętaj, aby skonfigurować ten raport przy użyciu określonego zapytania, a NIE wszystkich tabel w źródle danych, niezależnie od tego, czy jest to SQL, czy SSAS. (Kwerendę określa się w opcjach zaawansowanych podczas początkowej konfiguracji źródła danych w raporcie)
- Skonfiguruj bramę danych usługi Power BI do źródła danych używanego w raporcie
- Utwórz obszar roboczy w witrynie PowerBI.com, do którego chcesz przesłać raport
- Korzystanie z programu PowerBI desktop Opublikuj raport utworzony w kroku 1 w obszarze roboczym utworzonym w kroku 3
- W aplikacji sieci Web, gdy użytkownik wyświetla stronę przeglądarki raportów, potrzebujesz sposobu na identyfikację każdego użytkownika. Załóżmy, że masz
UserId
pole, które jest unikalnym identyfikatorem dla każdego użytkownika. Wywołaj GetReports w grupiehttps://docs.microsoft.com/en-us/rest/api/power-bi/reports/getreportsingroup. Musisz mieć znaną nazwę raportu oraz identyfikator użytkownika. Załóżmy, że jego DynamicReport. Wywołaj GetReports i sprawdź, czyDynamicReport_UserId
istnieje dla użytkownika próbującego wyświetlić stronę przeglądarki raportów w Twojej aplikacji internetowej. - W tych wywołaniach API wynikają z kroku 5, jeśli raport nie istnieje dla użytkownika, użyj https://docs.microsoft.com/en-us/rest/api/power-bi/reports/clonereport sklonować raport szablonu opublikowany w kroku 4.
- Osadź i wyświetl raport szablonu specyficzny dla użytkownika (DynamicReport_UserId) dla użytkownika.
- Umieść logikę na stronie przeglądarki raportów, aby użytkownik mógł przesyłać i
POST
zapytania DAX. Kiedy wykonują zgłoszenie, mają logikę do użyciahttps://docs.microsoft.com/en-us/rest/api/power-bi/datasets/updatedatasources w zapleczu, aby zaktualizować źródło danych w swoim raporcie, a następnie ponownie osadzić raport z instrukcją języka DAX i zmienionymi danymi.
Wizualizacja nie zostanie automatycznie zaktualizowana do nowych pól z nowego zapytania przesłanego przez użytkownika, ale zmienią się dostępne pola danych, które mają w trybie edytora. Użytkownik będzie musiał przeciągnąć i upuścić pola ze swojego zapytania DAX do wizualizacji Matrix lub dowolnego typu wizualizacji, którego chce użyć. Nie będzie można po prostu wyświetlić raportu w View
trybie, ponieważ nie ma możliwości programowego aktualizowania pól, które są widoczne w trybie wizualnym. Użytkownik może nawet początkowo zobaczyć zepsutą wizualizację z powodu zmienionego zapytania i pól odwołań wizualnych z poprzednio używanego zapytania. Możesz użyć PowerBI Javascript API, aby ukryć istniejącą wizualizację, aby poprawić wrażenia użytkownika, że użytkownik nie widzi czegoś zepsutego.
Daj mi znać, jeśli masz jakieś szczegółowe pytania dotyczące tych wywołań interfejsu API lub sposobu ich używania.
Oto miejsce, w którym szukałem funkcji JavaScript usługi Power BI https://github.com/Microsoft/powerbi-javascript/wiki (Nie można znaleźć niczego specyficznego dla wizualizacji macierzy. Funkcjonalność JavaScript dla wizualizacji ogólnych dla wizualizacji, a nie typu wizualnego, takiego jak macierz lub karta)
Oto dokumentacja firmy Microsoft dotycząca dostępnych interfejsów API REST i https://docs.microsoft.com/en-us/rest/api/power-bi/
Oto kilka przydatnych zasobów, aby dowiedzieć się więcej o osadzaniu
https://docs.microsoft.com/en-us/power-bi/developer/embedded/register-app https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedding
Jeśli potrzebujesz możliwości drążenia w dół Hierarchie są świetną opcją
https://spreadsheeto.com/power-bi-hierarchy/