Praca z Power BI jest stosunkowo szybka, prosta i przyjemna. Niestety jak każdy produkt Power BI posiada również wady. Według mnie jedną z największych bolączek pracy developera z raportami Power BI oraz platformą powerbi.com jest administracja. Im większy projekt i liczba raportów, tym trudniej zapanować nad publikowaniem raportów oraz zapewnieniu ciągłości ich działania. W tym poście chciałbym opisać jeden konkretny problem oraz pokazać w jaki sposób można ten problem obejść.
Pewnie nie jeden z nas spotkał się z następującym widokiem:
Źródło problemu jest raczej oczywiste i najprawdopodobniej model danych, z którego korzystał raport uległ zmianie. Zmiany w modelu są rzeczą naturalną i niekiedy zwyczajnie nie można ich uniknąć. Problem pojawia się wówczas, gdy w danej organizacji jest duża ilość raportów, dashboardów i aplikacji. Wówczas jedynym, według mojej wiedzy, rozwiązaniem jest sprawdzenie manualnie ich wszystkich oraz weryfikacja, który element powinien zostać zaktualizowany. W przypadku dużego projektu z całą pewnością zajmie to dobrą chwilę oraz nie będzie najciekawszym zadaniem… Warto również dodać, że takie sprawdzenie powinno odbywać się przynajmniej raz po publikacji zmian w modelu danych, a dobrym pomysłem wydawałoby się przeprowadzać taki test nawet częściej. Aby przyspieszyć i ułatwić ten proces postanowiłem napisać skrypt.
Skrypt został napisany w Python z wykorzystaniem (między innymi) Selenium. Zasada działania jest stosunkowo prosta i polega na automatyzacji poruszania się po portalu powerbi.com oraz pobieraniu i parsowaniu kodu html. Wynikiem skryptu jest po pierwsze lista poszczególnych elementów takich jak aplikacje, raporty, dashboard, jak i również lista tych elementów, które zawierają błędy (dashboard, strona raportu). Przykładowo:
app > <app_name> > <app_url> workspace > <workspace_name> > <workspace_url> workspace report > <workspace_name> > <workspace_report_name> > <workspace_report_url> workspace dashboard > <workspace_name> > <dashboard_name> > <workspace_dashboard_url> workspace report tabs > > <workspace_name> > <workspace_report_name> > <workspace_report_url> > <workspace_report_tab_name> > <workspace_report_tab_url> workspace report tabs visual error > > <workspace_name> > <workspace_report_name> > <workspace_report_url> > <workspace_report_tab_name> > <workspace_report_tab_url> workspace dashboard visual error > <workspace_name> > <dashboard_name> > <workspace_dashboard_url>
W chwili znalezienia błędu dodatkowo wykonywany oraz zapisywany jest zrzut ekranu z widocznym błędem.
Skrypt został przetestowany i powinien działać, natomiast proszę o informację w razie jakichkolwiek problemów. Jest to wersja pierwsza i wkrótce postaram się poprawić błędy, które napotkałem. Więcej informacji oraz cały skrypt można pobrać z githuba: https://github.com/seequality/seequality_powerbi_python_toolkit Jeżeli będzie zainteresowanie postaram się również przepisać ten skrypt na .NET
Na końcu chciałbym również dodać, że mam nadzieję, że niedawno zapowiedziane zmiany w API Power BI zapewnią jeszcze lepsze wparcie dla developerów i ułatwią pracę w większych projektach. Vide: https://powerbi.microsoft.com/en-us/blog/announcing-apis-and-powershell-cmdlets-for-power-bi-administrators/
- Docker dla amatora danych – Tworzenie środowiska (VM) w Azure i VirtualBox (skrypt) - April 20, 2020
- Power-up your BI project with PowerApps – materiały - February 5, 2020
- Docker dla “amatora” danych – kod źródłowy do prezentacji - November 18, 2019
Last comments