Power Platform on todella mielenkiintoinen kokonaisuus. Ei ainoastaan sen siistien työkalujen takia, vaan koska sitä hyödyntävät tekijät tulevat kahdesta eri leiristä. Ja nämä leirit ovat perinteisesti olleet varsin etäällä toisistaan.
Leireillä tarkoitan SharePoint Online ja Dynamics 365 -asiantuntijoita.
Hyvin karkeasti yleistäen:
- Moni SharePoint-asiantuntija on pyöritellyt Flow:ta ja canvas PowerAppseja, mutta Common Data Service ja model-driven apps on heille musta aukko.
- Dynamics 365-asiantuntijalle model-driven appsit ja Common Data Service ovat tuttuja, kun taas Flow ja erityisesti canvas PowerApps saattavat olla hyvinkin vieraita.
Mikäli haluaa rakentaa Power Platformilla erinomaisia ratkaisuja, ei voi jäädä omalle mukavuusalueelleen.
Power Platformiin on syytä perehtyä kokonaisuutena.
Kaikkien ei tietenkään tarvitse osata kaikkea. Yleistason ymmärrys työkalujen mahdollisuuksista on kuitenkin hyvä omata.
Dynamics-asiantuntijoille blogistani löytyy kohtuullisesti luettavaa PowerAppseista ja Flow:sta. Tällä kertaa keskitytään SharePoint-asiantuntijoille niin kovin mystiseen Dataverseen (jatkossa käytetään vanhaa termiä CDS).
Mikä CDS on?
Yksinkertaistetaan rajusti. CDS:n on helppokäyttöinen ja erittäin skaalautuva tietovarasto.
- Entiteetit vastaavat tietokannan tauluja (SharePointin listoja)
- Tietueet (record) vastaavat tietokannan (tai SharePointin listan) rivejä
Mutta CDS on myös paljon muuta.
- Voit tallentaa tietueiden mukana liitetiedostoja
- CDS voi sisältää erilaista logiikkaa. Esimerkiksi laskettavia kenttiä ja prosesseja (Business Process Flows).
- CDS:ssä on erittäin monipuolinen käyttöoikeusmalli
- CDS:n entiteettejä voi käyttää API:en avulla
Mikä hienointa, CDS:n pohjalta voi luoda niitä mystisiä model-driven appseja.
Mikäli aihepiiri on täysin uusi, suosittelen lukemaan kaksi aikaisempaa kirjoitustani:
- Miten tehdään (Canvas) PowerApps, joka käyttää tietovarastona CDS:ää. Jutussa käydään läpi kevyesti myös entiteettien luominen.
- Miten tehdään model-driven app (edellisessä jutussa luoduista entiteeteistä).
Käydään seuraavaksi läpi muutamia perusasioita, jotka SharePoint-konsultille tulee eteen ensimmäistä CDS:ää hyödyntävää ratkaisua rakentaessa.
CDS vaatii tilaa
Aivan ensimmäiseksi tarvitaan CDS-tietokanta. Sen luominen vie 1GB Common Data Service Database Storagea. Mikäli tenantissa ei ole Dynamics 365, PowerApps tai Flow planeja, ei siellä myöskään ole tätä tarvittavaa tallennustilaa.
Heti pitää kaivaa kuvetta.
Ensimmäisen ostetun (PowerApps/Flow) planin mukana tulee 1GB tätä kaivattua tallennustilaa ja jokaisesta ostetusta lisenssistä 50 MB lisää. Mutta jos ja kun haluat perustaa tuotannon lisäksi testiympristön, saatat joutua ostamaan lisää tätä kapasiteettia (40$/kk/1GB).
Voit myös aloittaa ilman kapasiteettia luomalla 30 päivän trial-ympäristön ja sinne CDS tietokannan.
CDS:n käyttäjä-entiteetti
Monen asian ymmärtämistä helpottaa, kun pitää mielessä CDS:n olevan Office 365:sta ja Azuresta erillinen itsenäinen kokonaisuutensa. Käyttäjähallinnasta lähtien.
CDS:n käyttäjät löytyvät Users-entiteetistä. Kuvan Big project -tietueen projektipäällikkö, omistaja, luoja ja päivittäjä ovat kaikki Users-entiteetin tietueita.
Ne eivät ole Azure AD käyttäjiä, vaikka niin voisi heposti luulla.
Toki CDS:n ja Azure AD:n käyttäjillä on suhde. Azure AD:n käyttäjä luodaan automaattisesti CDS:ään käyttäjiksi (melkein) heti kun käyttäjälle annetaan CDS:n käyttöön oikeuttava lisenssi.
Kun lisenssi poistetaan, katoaa käyttäjä myös CDS:stä.
CDS ja käyttöoikeudet
CDS sisältää monipuolisen käyttöoikeusmallin, joka perustuu (CDS:n) käyttäjiin (Users), liiketoimintayksiköihin (Business Units) ja ryhmiin (Teams). Näiden avulla voi määritellä käyttöoikeudet entiteetteihin, niiden tietueisiin ja jopa tietueiden kenttiin. Esim tietue X näkyy vain ryhmälle Y.
CDS:n ryhmillä ei tietenkään ole mitään tekemistä Office 365:n tai Azure AD -ryhmien kanssa.
Voit sentään luoda CDS:ään tiimin, jonka jäsenet määräytyvät AD-ryhmän jäsenyyden perusteella.
Entiteetin käyttöoikeudet
Miten annan loppukäyttäjille oikeuden käyttää entiteettiäni?
Luodaan aluksi uusi entiteetti (MyOwnStuff).
Luotuun entiteettiin eivät käyttäjät pääse käsiksi. Heille tulee olla siihen käyttöoikeus, joka tulee käyttöoikeusroolin (security role) välityksellä. Tarvitsemme siis sellaisen.
Käyttöoikeusroolin luominen
Siirrytään admin.powerplatform.microsoft.com osoitteeseen, valitaan oikea ympäristö ja navigoidaan asetuksiin. Klikataan otsikkoa ”käyttöoikeusroolit”.
Näytölle ilmestyy lista ympäristön käyttöoikeusrooleista.
Common Data Service User -rooli kuulostaa käyttöömme soveltuvalta. Ei kuitenkaan käytetä suoraan sitä, vaan tehdään siitä itsellemme kopio (valitaan rooli -> More Actions -> Copy Role..)
Annetaan uudelle roolille nimeksi CDS User For MyOwnStuff.
Käyttöoikeusroolin oikeuksien määrittely
Roolia klikkaamalla avautuu dialogi, jossa voimme määritellä mitä kaikkea roolin omaavat käyttäjät voivat tehdä.
Haluamme roolille täydet oikeudet luomaamme entiteettiin. Valitaan Custom Entities -välilehti ja ruksitaan oikeudet MyOwnStuff-entiteetille.
Käyttöoikeusrooli on nyt valmis. Se pitäisi vielä jotenkin liittää käyttäjiiin.
Käyttöoikeusroolin lisääminen käyttäjälle
Teemme ratkaisua koko organisaation käyttöön, eli haluamme lisätä luodun käyttöoikeusroolin kaikille käyttäjille. Tämä onnistuu lisäämällä roolin käyttäjien oletustiimille.
Valitaan ympäristön asetuksista ryhmät (Teams).
Luomassamme ympäristössä on ainoastaan yksi ryhmä. Se on samanniminen kuin oletusliiketoimintayksikkö (Business Unit).
Kaikki käyttäjät kuuluvat tähän ryhmään.
Valitaan ryhmä ja klikataan yläreunan valikosta Manager Roles. Avautuvasta dialogista, määritellään mihin ryhmiin ryhmän jäsenet kuuluvat. Valitaan CDS User For MyOwnStuff.
Nyt kaikilla (CDS:n) käyttäjillä on käyttöoikeus luomaamme entiteettiin.
Helppoa?
PowerAppsin jakaminen
Kuvitellaan että olemme tehneet canvas appsin, jolla voi ylläpitää MyOwnStuff-entiteetin tietoja.
Mitä tapahtuu kun sovellus jaetaan?
Jakamisen yhteydessä voit antaa käyttäjälle CDS:n käyttöoikeusroolin. Tässä tapauksessa se olisi CDS User for MyOwnStuff. Tätä ei tarvitse esimerkissämme tehdä, sillä annoimme juuri kaikille käyttäjille kyseisen käyttöoikeusroolin.
Sovelluksen voi myös jakaa käyttäjälle, jolla ei ole PowerApps Plania ja joka ei näin ollen ole CDS:n käyttäjä. Heti jakamisen jälkeen kyseinen käyttäjä luodaan automaattisesti CDS:ään!
Käyttäjä ei kuitenkaan voi käyttää sovellusta ennen kuin hänellä on käyttöön oikeuttava lisenssi.
Tietojen tuonti CDS:ään
Olemassaolevien tietojen tuonti CDS:ään on helppoa. Entiteetiltä lötyy muokkaa tietoja (Get Data) -toiminto, jonka avulla tiedot tuodaan.
Mahdollisten tietolähteiden joukko on laaja.
Mutta…
Koko CDS:n idea on luoda relaatiotietomalli. Tällä perustyökalulla ei kuitenkaan pysty latamaan entiteettiin tietoja, joissa on viittauksia toisiin entiteetteihin. Esimerkiksi projektin perustietoja siten, että niissä viitataan projektipäällikköön, joka on käyttäjä-entiteetin tietue.
Toivottavasti tämä tulee pian mahdolliseksi.
Sitä odotellessa täytyy kaivaa Dynamicsin puolelta esiin perinteisempiä työkaluja. Selataan jälleen Power Platform Admin Centeriin ja siellä oikeaan ympäristöön. Asetuksista löytyy ”Ohjattu tietojen tuominen” (Data Import Wizard).
Tiedot tuodaan Excel-mallipohjan (kyllä, luit oikein) avulla CDS:ään.
Ensin luodaan sellainen (Create Excel Template).
Jolloin päästään valitsemaan mihin entiteettiin tietoja ollaan tuomassa.
Tämän jälkeen Edit Columns -linkistä käydään valitsemassa, mitkä entiteetin sarakkeet mallipohjaan otetaan mukaan.
Muodostuneeseen Excel:iin kopioidaan ladattavat tiedot. Mikäli Excelin solu viittaa toiseen entiteettiin, niin käyttämällä solun arvona kohde-entiteetin nimi-kenttää, osaa työkalu luoda suhteen näiden kahden entiteetin välille.
Lopuksi Excel:in tiedot ladataan entiteetille Data Import Wizard:in Import Data -toiminnolla.
Helppoa?
Yhteenveto
Asiakkaille ja asiantuntijoille CDS:ää markkinoidaan superhelppona tapana toteuttaa (tarvittaessa monimutkaiseenkin) tietomalliin pohjautuvia skaalautuvia sovelluksia.
Dynamics-asiantuntijoille asia varmasti onkin näin. Mikäli taustasi on enemmän Office 365 / SharePoint -maailmasta, on edessä jonkin verran opiskeltavaa.
Mutta perehtyminen on sen arvoista. Canvas App, Model driven App, CDS, Flow ja Power BI on työkalupaketti, jolla pärjää todella pitkälle.