Pracuj z Power BI Matrix, pobierając dane z instrukcji języka DAX

Aug 15 2020

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

1 vvvv4d Aug 15 2020 at 21:20

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 Viewtrybie i będzie musiał być wyświetlany w Edittrybie, 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.

  1. 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)
  2. Skonfiguruj bramę danych usługi Power BI do źródła danych używanego w raporcie
  3. Utwórz obszar roboczy w witrynie PowerBI.com, do którego chcesz przesłać raport
  4. Korzystanie z programu PowerBI desktop Opublikuj raport utworzony w kroku 1 w obszarze roboczym utworzonym w kroku 3
  5. 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 UserIdpole, 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ź, czy DynamicReport_UserIdistnieje dla użytkownika próbującego wyświetlić stronę przeglądarki raportów w Twojej aplikacji internetowej.
  6. 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.
  7. Osadź i wyświetl raport szablonu specyficzny dla użytkownika (DynamicReport_UserId) dla użytkownika.
  8. Umieść logikę na stronie przeglądarki raportów, aby użytkownik mógł przesyłać i POSTzapytania 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 Viewtrybie, 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/