Trudna sztuka wyboru, czyli Power BI vs Reporting Services

Power BI jest usługą sieciową przeznaczoną do analizy oraz wizualizacji danych biznesowych stworzoną przez firmę Microsoft. Jej podstawowym atutem jest bogaty zestaw narzędzi umożliwiających tworzenie raportów oraz efektownych wizualizacji przeznaczonych dla użytkowników, którzy nie posiadają głębokiej wiedzy technicznej (czyli dla przysłowiowej Pani Halinki z działu marketingu ;)). Ponieważ raporty są dostępne za pomocą przeglądarki internetowej – usługa w założeniu powinna integrować się w łatwy sposób z innymi produktami Microsoft, które są dostępne w chmurze wspominanej firmy (Azure, Office 365 oraz Dynamics 365).

W poniższym tekście postaram się przedstawić sposoby integracji usługi Power BI z platformą Dynamics 365 Customer Engagement oraz zwrócić uwagę na to, jakie „pułapki” i niespodzianki czekają na nas w przypadku, w którym zdecydujemy się zbudować nasze raporty i wizualizacje danych, wykorzystując do tego wspomnianą aplikację. Postaram się dodatkowo zwrócić uwagę na to, w jakich przypadkach usługa Power BI daje nam dodatkowe korzyści, a kiedy lepiej będzie skorzystać z „tradycyjnego” SQL Server Reporting Services, stanowiącego od dawna podstawową platformę do tworzenia raportów dla systemu Dynamics 355 CE. 

3…2…1… Zaczynajmy!

Poproszę o dane

Do pobierania danych z systemu Dynamics 365 Customer Engagement PowerBI wykorzystuje końcówkę Web API. Usługa radzi sobie ze stronicowaniem zapytań, tak więc nie występują problemy z pobieraniem większej ilości rekordów niż liczba standardowo zwracana w ramach pojedynczego zapytania do serwisu (5000 rekordów). Drobną niedogodnością może być w tym przypadku dłuższy czas oczekiwania na dane niż w przypadku systemów wykorzystujących bezpośredni dostępu do bazy danych. W przeprowadzonych przeze mnie testach pobranie 22 tysięcy rekordów i odświeżenie danych w oknie przeglądarki zajmowało zazwyczaj usłudze kilka sekund.

Kwestia dostępu do danych za pomocą Reporting Services wygląda podobnie. W przypadku systemu w wersji on-line pobieranie danych odbywa się za pomocą zapytań FetchXML. Tak jak w przypadku usługi PowerBI – nie miałem problemów z pobraniem i wyświetleniem 22 tysięcy rekordów zwróconych poprzez pojedynczą kwerendę FetchXML. Podobnie jak w przypadku zapytań do Web API – mechanizm dostępu do danych wykorzystuje stronicowanie i omija w ten sposób domyślne ograniczenie pobieranej jednorazowo z systemu liczby rekordów.

Dużym plusem usługi PowerBI jest możliwość dostępu do danych udostępnianych przez rozmaite, dostępne w sieci usługi. W przypadku Reporting Services – dane pozyskujemy zazwyczaj, korzystając z bezpośredniego połączenia do rozmaitych baz danych (SQL Server, Oracle, ODBC, itp.).

W przypadku platformy SQL Reporting Services dane pobierane są z systemu w momencie uruchomienia raportu. W tym przypadku zawsze mamy pewność, że raport będzie oparty na najbardziej aktualnych danych dostępnych w źródłowym repozytorium. W przypadku platformy Power BI kwestia ta wygląda nieco inaczej.

W usłudze Power BI dane są pobierane i odświeżane są na żądanie lub zgodnie z określonym harmonogramem. Niestety jego możliwości konfiguracyjne są mocno ograniczone w wersji Professional usługi (dostępna jest jedynie opcja dziennej lub tygodniowej aktualizacji). Oczywiście istnieją sztuczki, polegające na wymuszaniu odświeżania raportu w momencie modyfikacji danych, na których się on opiera (przykładowe rozwiązanie wykorzystujące Microsoft Flow znajdziecie tutaj: https://medium.com/@Konstantinos_Ioannou/refresh-powerbi-dataset-with-microsoft-flow-73836c727c33), ale wielka szkoda, że nie otrzymujemy w tym przypadku takiej opcji w przysłowiowym „pudełku”. Ponoć w wersji Premium usługi możliwości konfiguracji harmonogramu odświeżania danych są bardziej rozbudowane, niestety w momencie pisania artykułu nie miałem możliwości przetestowania tej funkcjonalności.

Uwierzytelnianie

Dane wyświetlane w ramach raportu Power BI pobierane są w ramach konkretnego zdefiniowanego konta. Nie mamy w tym przypadku możliwości dynamicznego uruchomienia raportu w kontekście konta użytkownika zalogowanego do usługi Dynamics 365. Może to doprowadzić do sytuacji, w której użytkownik systemu zobaczy w raporcie dane, do których nie powinien mieć dostępu w ramach określonej roli bezpieczeństwa. Przykładowo, osoba posiadająca rolę bezpieczeństwa „Sales Person” w systemie Dynamics 365 nie posiada dostępu do encji X. Tymczasem, jeżeli otrzyma ona dostęp do raportu Power BI, w którym będą prezentowane dane pochodzące z ww. encji – uzyska dostęp do wszystkich rekordów, do których nie powinna mieć wglądu.

Brak zintegrowanego uwierzytelniania może być w tym przypadku problematyczny i w przypadku wielu organizacji stanowić przysłowiową „dziurę” w module bezpieczeństwa systemu uniemożliwiającą wykorzystywanie wspomnianej platformy (mowa o Microsoft Power BI, z CRM-em wszystko jest dalszym ciągu ok 😊).

W przypadku raportów Reporting Services dostępny jest mechanizm zintegrowanego uwierzytelniania użytkowników. Osoba wyświetlająca raport nie zobaczy więc w nim nigdy danych, do których nie ma dostępu w systemie Dynamics 365.

No to wdrażamy!

Integracja Reporting Services z Platformą Dynamics 365 jest dostępna w systemie od wielu lat. Raporty instalujemy za pomocą narzędzi dostępnych w interfejsie użytkownika systemu. Ogromnym plusem dostępnej integracji jest możliwość dodawania raportów RS do solucji CRM, co z kolei umożliwia przenoszenie ich w prosty sposób między organizacjami.

W przypadku usługi Power BI rzecz jest nieco bardziej skomplikowana, ponieważ mamy do czynienia z osobną usługą sieciową. Pierwszą czynnością, którą musimy tym przypadku wykonać, jest uruchomienie integracji w panelu administracyjnym.



Włączenie powyższej opcji daje użytkownikom możliwość tworzenia nowych paneli (dashboardów) zawierających wizualizacje Power BI. Opcja ta jest dostępna jedynie z poziomu zunifikowanego interfejsu użytkownika (Unified Interface). Użytkownicy „klasycznej”, webowej wersji systemu będą niestety musieli obejść się smakiem.

Niestety nie jest możliwe dodanie paneli zawierających raporty w technologii Power BI bezpośrednio do solucji Dynamics 365, co czyni proces ich wdrożenia oraz przenoszenia między instancjami usługi znacznie bardziej skomplikowanym.

Zarządzanie raportami

Jak już wspominałem powyżej – nie jest możliwe dołączenie raportu stworzonego za pomocą platformy Power BI bezpośrednio do solucji Dynamics 365. Podobnie wygląda kwestia paneli (dashboardów) prezentujących wizualizację. Jedynym sensownym sposobem udostępnienia raportu dla większej ilości użytkowników jest więc utworzenie panelu zawierającego ten raport z poziomu konta z uprawnieniami do udostępnienia go wszystkim zainteresowanym użytkownikom (wymagane jest również udostępnienie panelu bezpośrednio w usłudze Power BI, do czego wymagana jest licencja Power BI Professional). Jest to mocno niewygodny sposób, który na dodatek bardzo utrudnia automatyzacje przenoszenia raportów między środowiskami.

Summa summarum

W ciągu ostatnich kilku lat Microsoft przeznaczył ogromne nakłady pieniężne na rozwój oraz promocję usługi Power BI. Z drugiej strony – „klasyczne” Reporting Services pozostały nieco zapomniane (nie są one już nawet częścią najnowszych instalacji SQL Servera, do ich wdrożenia wymagany jest osobny plik instalacyjny). Pierwsza ze wspomnianych platform wygrywa z całą pewnością w tematach takich jak wizualizacje, pobieranie danych z zewnętrznych źródeł lub usług dostępnych on-line oraz generalnie, szeroko pojmowana łatwość użycia dla użytkowników nieposiadających głębokiej wiedzy technicznej. Jeżeli jednak podstawowymi czynnikami decydującymi o wyborze platformy do wizualizacji danych są możliwości integracji z systemem Dynamics 365 CE, łatwość wdrożenia oraz możliwość jego automatyzacji, czy też bezpieczeństwo dostępu do danych – SQL Server Reporting Services mają we wspomnianych obszarach zdecydowaną przewagę.

W tekście skupiłem się na porównaniu technicznych możliwości (w kontekście integracji z platformą Dynamics 365 CE) obu systemów. Warto również wspomnieć o przyświecającej obu z nich filozofii. Jeżeli więc Waszym celem jest stworzenie nowoczesnego, interaktywnego panelu, dostępnego na wielu urządzeniach oraz także poza aplikacją Dynamics 365 Customer Engagement, a w Waszym biurze papierowy obieg dokumentów praktycznie nie funkcjonuje – platforma Power BI może okazać się rozsądnym wyborem. Jeżeli jednak chcecie po prostu utworzyć raport, który będziemy mogli wydrukować na papierze oraz wyeksportować do najbardziej popularnych formatów plików – SQL Server Reporting Services są w dalszym ciągu świetnym rozwiązaniem.

Total Views: 72 ,
Be the first to comment

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *