W poprzednim odcinku pokazałem ci czym jest i jak działa usługa Common Data Service. Wspominałem też, że jest to coś więcej niż proste źródło danych. Dzisiaj pokażę Ci jak można wykorzystać pełnię potencjału CDS i PowerApps.
Relacje
CDS pozwala w banalny wręcz sposób definiować relacje między encjami. Dodatkowo automatycznie zajmie się utworzeniem odpowiednich pól, pozwalających na zdefiniowanie ich wartości. W filmie zobaczysz jak łączę zawodników i zespoły relacją 1-do-wielu, tzn. wielu zawodników może grać w jednej drużynie. CDS automatycznie utworzy nowe pole w encji zawodnika, które z listy rozwijanej pozwoli wskazać właściwą.
Edycja w Excel
To kolejna ciekawa funkcja CDS. Każdą z encji można edytować bezpośrednio w Excel. Jedynym, oczywistym wymaganiem jest posiadanie samego Excel (min. w wersji 2016). Przy jego pomocy możesz nie tylko podejrzeć, ale i edytować oraz dodawać nowe rekordy w encji. Pamiętaj tylko o publikacji zmian!
Nowe kolumny
Na początek warto wspomnień o możliwości tworzenia nowych kolumn. Samo w sobie nie jest to niczym niezwykłym. Praktycznie każde z popularnych źródeł (np. SharePoint) także udostępnia taką opcję. W CDS możesz jednak tworzyć specyficzne kolumny wyliczane (dynamicznie wyliczają wartość na podstawie dostępnych formuł i wartości w innych kolumnach encji) oraz tzw. kolumny rollup (pozwalają na wyliczanie wartości na podstawie zależnych encji). Szczególnie te drugie pozwalają na osiągnięcie ciekawych efektów. W moim przykładzie wykorzystam je do pokazania informacji o ilości zawodników w drużynie oraz średniej pensji. W obu przypadkach w encji drużyny będę wykorzystywał dane z encji zawodników.
Pamiętaj tylko, że wartości kolumn rollup są odświeżane domyślnie co 12 godzin.
Przykład
W poniższym filmie zobaczysz opisane przeze mnie funkcje. Pokazuję w nim także, jak wykorzystać przygotowane źródło w PowerApps. Ta część na szczęście nie różni się praktycznie w ogóle od tego co już znasz.
Podsumowanie
CDS to bardzo ciekawa technologia. Warto wspomnieć jeszcze o tym, że w najbliższym czasie pojawią się kolejne funkcje PowerPlatform (PowerApps + Flow + PowerBI) wykorzystujące CDS. Osobiście czekam na PowerApps Portal, który ma pozwalać na tworzenie responsywnych stron WWW dostępnych dla zewnętrznych, a nawet anonimowych użytkowników. Wszystko napędzane przez PowerApps i CDS. Brzmi ciekawie, nieprawdaż? Tematów na kolejne nagrania na pewno nie zabraknie. Do następnego razu!
Witam,
Podczas wgrywania danych do CDS, zaciąga się tylko klika pierwszych wierszy. Jeżeli nie wykorzystuję opcji „użyj pierwszego wiersza jako tytuły kolumn” dane wgrywają się normalnie. Czy spotkał się Pan z czymś takim?
Przyznam, że nigdy nie spotkałem się z takim problemem. Importujesz przykładowe dane z mojego artykułu, czy inne?
Nie, to moje dane. Nie wiem z czego to wynika. W innych Excelach nie ma problemu. Próbowałem też te dane przekleić do innego pliku- ale problem ten sam. Najdziwniejsza jest to, że jak dane są wgrywane bez opcji „użyj pierwszego wiersza jako ….” problemu nie ma. Trochę się obawiam że jak zacznę przerzucać firmowe dane do CDS to zaczną się takie problemy ;/. Tak wiec muszę znaleźć rozwiązanie… Pozdrowienia G.
Zatrzymuje się zawsze na tym samym wierszu, czy różnie to bywa? Może coś jest nie tak z samymi danymi, albo tytułami kolumn… Strzelam tylko 😉
Mam jeszcze jedno pytanie do tego odcinaka.
Po połączeniu dwóch baz funkcją „relacje” mogę wybrać rekord „ręcznie” np: edytując w Excelu.
Pytanie w jak sposób połączyć dwie bazy za pomocą wspólnego klucza (np W jednej bazie jest numer klienta i adres a w drugiej numer klienta i telefon). Czy mogę stworzyć bazę w CDS (tak żeby nie łączyć tych baz w PowerApps funkcją look up) tak, żeby w jednej bazie mieć przykładowy numer i adres klienta ?
CDS to baza relacyjna więc musisz budować relacje 🙂 To co opisujesz to coś w stylu widoków z „tradycyjnego” SQL. Wprost takiej funkcji nie ma. To właśnie PowerApps w jakimś stopniu ma go spełniać z wykorzystaniem funkcji lookup. Niestety tutaj trzeba uważać na „głębokość” takich relacji, bo szybko przy zbyt dużej ich ilości mocno cierpi wydajność.
Rozumiem. Generalnie wszystkie mojej bazy są skonstruowane w ten sposób, że jest baza główna (dane klienta) i pozostałe bazy które operują numerem klienta. W praktyce do każdej bazy trzeba „dociągnąć” (połączyć) numer telefonu, itp z bazy głównej. Lookup w PowerApps sprawdza się doskonale. Problem z tym że zbliżam się do 2 000 rekordów i będzie problem z delegacją. Wiem ze wysyłałem w komentarzu materiały dotyczące problemu delegacji ale po angielski nie za bardzo potrafię się z tym zmierzyć (jak za pewne zauważyłeś materiały po polski są dla mnie wyzwaniem:)
Dzięki za informację 🙂 i czekam z kolejne odcinki.
Pozdrowienia G.
Lookup jest delegowaną funkcją dla CDS. Nie ma się raczej czym przejmować, jeśli nie robisz w tych zapytaniach innych zdrożnych rzeczy. Pamiętaj tylko, że delegacja działa na określonych rodzajach pól. Zerknij na tabelkę na tej stronie: https://docs.microsoft.com/en-us/connectors/commondataservice/
Dzień dobry
Czy w przykładowym modelu połączonych baz klubów NBA i zawodników NBA jest jakieś rozwiązanie, aby przy zakładaniu nowego rekordu w bazie zawodników pole łączące obie bazy (NBA_Teams) było wypełniane domyślnie np. „Bulls”?
Pozdrawiam,
Krzysiek
Tak, oczywiście. To można skonfigurować na poziomie samego źródła danych (tak byłoby najprościej), można też w samych Power Apps. Zdecydowanie do zrobienia
Gdzie szukać jakiś przykładów?
wypełniłem pole „DefaultSelectedItems” i działa
Pozdrawiam
Super 😉