Każda aplikacja PowerApps oprócz interfejsu potrzebuje przede wszystkim źródła danych. W wielu przypadkach będziemy zmuszeni do wykorzystania już istniejących danych. Jeśli jednak projektujemy rozwiązanie od zera, to wybór źródła staje się jedną z ważniejszych, jeśli nie najważniejszą decyzją w całym procesie. Dlaczego? Odpowiedzi może być wiele. Wydajność, łatwość konfiguracji i funkcje samego źródła, cena i koszty utrzymania, zakres obsługi delegacji. W każdym przypadku priorytetem może być coś innego. Dzisiaj opiszę Ci jedną z ciekawszych źródeł danych, jakie można wykorzystać w PowerApps, Flow czy PowerBI.
Jak działa Common Data Service?
Usługa CDS, nie jest niczym nowy. Od lat była wykorzystywana w produktach z rodziny Dynamics. W zasadzie to nic innego jak relacyjna baza danych umieszczona gdzieś w czeluściach Azure. Czym zatem różni się od zwykłego SQL? Przede wszystkim nie musisz się przejmować administracją samego silnika. CDS udostępnia prosty interfejs webowy. Przy jego pomocy możesz:
- Tworzyć nowe encje (tebele, jednostki)
- Przeglądać dane
- Importować dane (to bardzo ważna cecha)
- Eksportować dane
- Definiować relacje
- Tworzyć reguły biznesowe (o tym więcej w następnym odcinku tej serii)
- Zarządzać widokami, formularzami, dashboardami i innymi obiektami wykorzystywanymi w aplikacjach Model-Driven
Aplikacje Model-Driven?
To dedykowany typ aplikacji, które mogą być wykorzystane w Dynamics. Jeśli nie korzystasz z tego rozwiązania, to możesz je po prostu zignorować. Na pewno trudno je przeoczyć, bo PowerApps traktuje je równorzędnie z tradycyjnymi aplikacjami Canvas (kanwy w wersji PL). Na razie w ogóle ich nie omawiałem. To bardziej niszowe rozwiązanie. Daj znać w komentarzach, jeśli chcesz obejrzeć prezentację procesu tworzenia i wykorzystania aplikacji Model-Driven. Niezależnie od tego, czy posiadasz subskrypcję Dynamics, to sam CDS możesz oczywiście wykorzystać jako źródło w „zwykłych” aplikacjach.
Zalety CDS w stosunku do SharePoint
Od początku tego kursu wykorzystywałem jako źródło danych listy SharePoint. Są proste w obsłudze i dostępne w każdym planie Office365. W stosunku do CDS brakuje im jednak kilku ważnych rzeczy. Najważniejsze to:
- Pełna obsługa relacji. SharePoint tylko je „symuluje”
- Wbudowanego mechanizmu zabezpieczania pojedynczych wierszy w tabelach. CDS ma to w „pudełku”
- Wydajności
- Lepsza obsługa delegowanych funkcji. Tutaj sytuacja zmienia się dynamicznie, ale nawet w ostatnich miesiącach pojawiły się zapowiedzi, albo wręcz działające nowe rozwiązania. To duża zaleta, którą łatwo przeoczyć
- Możliwość pracy z danymi bezpośrednio w Excel. CDS wykorzystuje w tym celu specjalny dodatek. Nie lubisz interfejsu webowego? Nie ma problemu.
- Obsługa środowisk, dzięki czemu można wygodnie i bezpiecznie obsłużyć scenariusze rozwiązań testowych vs produkcyjnych
Koszty
Nie ma róży bez kolcy. CDS kosztuje. Na szczęście w tej dziedzinie zmieniło się sporo na lepsze. Usługa jest już dostępna w planie P1 PowerApps. To bardzo ważny argument za rozważeniem tej dodatkowej opłaty, szczególnie że dostajemy także inne gażdżety (konektory premium w PowerApps i Flow, możliwość skorzystania z Gateway do lokalnych źródeł i wiele innych, które znajdziesz tutaj: https://powerapps.microsoft.com/pl-pl/pricing/#compare-plans)
Przykład
Na początek pokażę Ci jak zbudować własne źródło w oparciu o CDS. W przykładzie wykorzystam te same arkusze Excel, co na początku tego kursu.
Podsumowanie
Wiesz już jak zaimportować dane do CDS. W kolejnym odcinku pokażę ci kilka dodatkowych funkcji tego rozwiązania. Zobaczysz, jak działają reguły biznesowe i wyliczane kolumny i dlaczego warto z nich korzystać. Do następnego razu!
Dzięki !
Temat na prawdę ciekawy. Czekam na kolejne odcinki!
Mówisz w odcinku, że CDS lepiej obsługuje delegowanie. Co masz na myśli? Czy oznacza to, że można przekroczyć maksymalny limit (2 000 rek)?
Kwestia delegowania jest dużym problem (szczególnie dla takiego laika jak ja:)
Zerknij na te dwa linki
== SharePoint: https://docs.microsoft.com/en-us/connectors/sharepointonline/
== CDS: https://docs.microsoft.com/en-us/connectors/commondataservice/
Dokładnie chodzi o delegowane funkcje. Tych w CDS jest po prostu więcej i są już zapowiedziane kolejne. Można też delegować funkcje agregujące: https://powerapps.microsoft.com/en-us/blog/delegation-of-aggregate-functions-for-cds/ Generalnie opcji jest więcej, a większy wybór to zawsze dobra rzecz. Limit 2000 ciągle jest taki sam. Dotyczy aplikacji, które korzystają z NIEDELEGOWANYCH funkcji danego konektora. Jeśli więc korzystasz z CDS to nie tyle się go pozbędziesz, co masz większe możliwości jego uniknięcia.
Pytanie o synchronizacje danych.
Tworząc Encję wybrałem opcję ręcznej synchronizacji danych (źródłem danych jest lista SharePoint). Do CDS dodałem dane (przez edycję w Excelu). Dane pojawiły się w CDS. Pytanie jak odświeżyć dane żeby były zaktualizowane w liście Share Point ?
Z góry dzięki 🙂
Bezpośrednio zrobić się tego nie da. Synchronizacja pozwala na import danych do CDS. Odwrotną ścieżkę można próbować zrealizować przez Flow, ale nie wiem czy to ma wielki sens. Właściwie po co to robić? Łatwiej utrzymać jedno źródło niż dwa 😉
Tak jak się nad tym zastanowić to nie ma sensu 🙂