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:

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.

Näyttökuva 2019-10-23 kello 19.10.19.png

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).

Näyttökuva 2019-10-23 kello 20.49.12.png

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äyttökuva 2019-10-23 kello 20.52.35.png

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..)

Näyttökuva 2019-10-23 kello 20.56.38.png

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ä.

Näyttökuva 2019-10-23 kello 20.58.56.png

Haluamme roolille täydet oikeudet luomaamme entiteettiin. Valitaan Custom Entities -välilehti ja ruksitaan oikeudet MyOwnStuff-entiteetille.

Näyttökuva 2019-10-23 kello 21.01.51.png

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).

Näyttökuva 2019-10-23 kello 21.07.34.png

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.

Näyttökuva 2019-10-23 kello 21.08.55.png

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.

Näyttökuva 2019-10-23 kello 21.20.03.png

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.

Näyttökuva 2019-10-24 kello 19.29.35.png

Mahdollisten tietolähteiden joukko on laaja.

Näyttökuva 2019-10-24 kello 19.32.07

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).

Näyttökuva 2019-10-24 kello 19.35.34.png

Tiedot tuodaan Excel-mallipohjan (kyllä, luit oikein) avulla CDS:ään.

Ensin luodaan sellainen (Create Excel Template).

Näyttökuva 2019-10-24 kello 19.37.24.png

Jolloin päästään valitsemaan mihin entiteettiin tietoja ollaan tuomassa.

Näyttökuva 2019-10-24 kello 19.38.07.png

Tämän jälkeen Edit Columns -linkistä käydään valitsemassa, mitkä entiteetin sarakkeet mallipohjaan otetaan mukaan.

Näyttökuva 2019-10-24 kello 19.40.48.png

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.