Edellisessä kirjoituksessa rakennettiin CDS for Appsia hyödyntäen uusi versio mobiilisovelluksesta, jonka avulla tehdään myymälöiden tarkastuksia. Skenario lyhyesti:

  • 499 myymälää
  • Myymälät tarkastetaan kuukausittain (arvioidaan tuotteiden näkyvyys ja yleinen siisteys)
  • Usea tarkastaja, joille kullekin määrätään etukäteen x myymälää tarkastettavaksi

Sovellus on tehty, mutta raportointi puuttuu. Rakennetaan tällä kertaa sellainen. Power BI:llä tietenkin.

Älä ihmettele mikäli aihe kuulostaa tutulta. Olemme tehneet lähes saman aiemminkin. Silloin tietolähteenä oli yksi SharePoint lista. Tällä kertaa tiedot ovat kolmessa CDS for Appsin entiteetissä.

Paljon jännempää!

Tietojen lataaminen

Aivan ensimmäiseksi lataamme tiedot. Normaaliin tapaan Get Data -toiminnolla. Haetaan tuettujen datalähteiden joukosta Common Data Serviceä. Kaikkien yllätykseksi ei löydy yhtä, vaan peräti kaksi osumaa.

Kumman valitsen?

power bi cds 1.png

Common Data Service for Appsin tietenkin. Alempi liittyy CDS:n edelliseen version. Vanhaa kamaa vaikka vielä Betassa. Näin nopeaa on nykyään kehitys. Myös Microsoftilla.

Seuraavaksi tulee tietää, mikä on käyttämämme CDS for Apps -palvelun Server Url.

power-bi-cds-2.png

Ennen kuin sanot mitään, muista tämä on Beta. Preview. Ei vielä valmis.

Ei se urlin selvittäminen hankalaa ole. Mennän http://web.powerapps.com -osoitteeseen, valitaan oikea ympäristö (environment) ja sieltä mikä tahansa entiteetti. Entiteetistä siirrytään Business rules -osioon ja painetaan Add business rule.

cds server url 0

Selaimeen avautuu Business rules -editori. Poimitaan selaimesta kovasti kaipaamamme server url.

cds server url.png

Kopioidaan Server Url lomakkeelle ja painetaan OK. Avautuu tuttu navigaattori, jolla voimme selata koko CDS:n sisältöä. Itse tehdyt entiteetit löytyvät Custom Entities kohdasta.

Valitaan meitä kiinnostavat Store Audit Events, Store Audit Periods ja Stores.

power bi cds 3.pngEdit-painike avaa Power query editorin, jolla voimme muokata kyselyä.

cds edit query.png

CDS for Appsin entiteeteillä ja niiden kentillä on kaikilla etuliite nimen edessä. Tällä kertaa crd01_. Jos kenttiä on paljon, on prefixien siivoaminen ärsyttävää hommaa. Onneksi se tehdään vain kerran.

Kun turhat kentät on poistettu, kenttien nimet siistitty ja tietotyypit korjattu, voidaan siirtyä relaatioiden kimppuun.

Tietomalli

Vaikka CDS for Apps pitää sisällään tiedon entiteettien välisistä relaatioista, ei tämä tieto siirry Power BI:hin.

Muodostotetaan relaatiot perinteiseen tapaan manuaalisesti. Valmis tietomallimme näyttää tältä.

cds for apps bi relations

Voimme vihdoin aloittaa visualisointien tekemisen.

Visualisoinnit

Ensimmäinen visualisointi on yhteenveto parhaillaan käynnissä olevasta auditoinnista. Meitä kiinnostaa ainakin

  • Miten suuri osa myymälöistä on auditoitu?
  • Miten arvosanat ovat jakaantuneet?
  • Mitkä myymälät ovat vielä tarkastamatta?

5 minuutin miettimisen jälkeen päädyin seuraavaan

  • Suppilokuvaaja kertoo tarkastettujen ja tarkastamattomien myymälöiden suhteen
  • Mittarit kertovat tarkastettujen myyymälöiden siisteyden ja tuotteiden näkyvyyden keskimääräiset arvosanat versus tavoitetaso (4)
  • Käyrältä näkee montako myymälää on minäkin päivänä tarkastettu
  • Kartalta näkee missä tarkastamattomat ja tarkastetut myymälät fyysisesti sijaitsevat
  • Palkit kertovat arvosanojen jakautumisen

Lisäksi suodattimet kaupungin ja tarkastajan mukaan.

cds power bi current period.png

Toinen visualistointi keskittyy auditointhistoriaan.

  • Miten arvosanat kehittyneet?
  • Kuka tarkastaja on tarkastanut eniten?
  • Miten arvosanat jakautuvat tarkastajien kesken?

Lopputuloksena

  • Samat mittarit kuin edellisessä
  • Kartalla myymälät, joiden väri kertoo tällä kertaa myymälän arvosanan (score), joka on käytännössä siisteyden ja tuotteiden näkyvyyden arvosanojen summa.
  • Palkit kertovat arvosanojen jakautumisen per tarkastusjakso. Viiva on arvosanojen keskiarvo.

Lisäksi suodattimet tarkastusjakson, kaupungin ja tarkastajan mukaan.

cds power bi all periods

Viimeisen visualisoinnin avulla jaetaan seuraavan audintointijakson tarkastuskohteet tarkastajille.

Esimerkiksi

  • Aseta henkilölle x samat myymälät tarkastettavaksi kuin viime kuussa
  • Aseta henkilölle x kaikki tarkastettavaksi kaikki henkilön y viime kuussa tarkastettavat myymäläy
  • Aseta henkilölle x tarkastettavaksi kaikki viime kuussa huonot arviot saaneet myymälät

Lopputulos näyttää tältä. Eiköhän tästä saa halutuilla kriteereillä poimittua myymälät, jotka voi sitten nakittaa tarkastajalle seuraavaan auditointiin.

cds power bi resourcing.png

PowerApps Custom Visual

Lisätään seuraavaksi Power BI raportillemme PowerApps visualisointi. Mikäli et ole käyttänyt sitä aiemmin, käy hakemassa se Marketplacesta.

Ja nyt tarkkana!

Käyttämämme entiteetit on luotu DI Staging Sandbox -ympäristöön (environment). Koska haluamme päivittää samaisia entiteettejä PowerApps visualisoinnilla, tulee kyseinen PowerApps luoda samaan ympäristöön. Valinta tehdään ennen luontia visualisoinnin yläosasta.

Näyttökuva 2018-9-19 kello 19.22.32.png

Painetaan Create New, jolloin meille avautuu PowerApps varustettuna PowerBIIntegration-tietolähteellä.

Tuunataan valmiiksi luotua galleriaa hieman (lisätään sopivat kentät ja poistetaan turha nuoli). Lisätään näytön alareunaan tarkastusjakson valinta CDS tietolähdettä (datasource) käyttäen jahenkilön valinta (kts esimerkki).

Tämä alkaa näyttämään jo joltain.

Vielä loppuun painike, joka kertoo listalla olevien myymälöiden lukumäärän.

Näyttökuva 2018-9-19 kello 19.41.28

CDS for Apps entiteettien päivittäminen

Lopuksi päivitetään Power BI raportilta valituille myymälöille haluttu tarkastaja valitulle tarkastusjaksolle. Tehdään tämä tylsästi Flow:lla.

Assign-painikkeesta käynnistyy Flow, jolle parsitaan mukaan tarvittavat parametrit

  • Store Audit Eventtien tunnisteet (Primary Name) pilkulla erotettuna
  • Tarkastajan sähköpostiosoite

Primary Name on parsittu valmiiksi gallerian kenttään (periodNameAndStoreName).

assign button.png

Työnkulun alussa asetamme PowerAppsilta saadut parametrit omiin muuttujiinsa. Tämä on teknisen suorituksen kannalta turhaa. Näin saamme kuitenkin nimettyä PowerAppsista saapuvat parametrit haluamallamme tavalla.

Muutetaan samalla Compose-komennolla StoreAuditEvent-lista taulukoksi.

assign flow1.png

Seuraavaksi päivitämme jokaisen tarkastustapahtuman.

Tarvitsemme päivitettävän tapahtuman id:n. Haetaan se List records -toiminnolla ODATA filtteriä hyödyntäen.

assign flow2.png

Jonka jälkeen voimmekin päivittää oikean tietueen. Muut arvot pysyvät entisellään, päivitetään ainoastaan tarkastaja.

assign flow3.png

Valmista!

assign ready.png

Kuvassa on valittu elokuun tarkastusjaksolta kaikki myymälät jotka ovat saaneet sekä tuotteiden näkyvyydestä, että siisteydestä arvosanaksi ykkösen. Seuraavalla tarkastusjaksolla kyseiset myymälät laitetaan tarkastettavaksi jollekin ansioituneelle tarkastajalle.

Yhteenveto

CDS for Apps on Power BI:lle vain yksi tietolähde muiden joukossa. Visualisointien tekeminen sen päälle ei näinollen poikkea mitenkään muusta Power BI tekemisestä.

Huomaa kuitenkin ettei CDS for Apps tue direct queryä. Esimerkissämme tämä näkyy ikävällä tavalla. Kun myymälöitä nakitetaan tarkastajille PowerApps visualisoinnin avulla, eivät muutokset näy raporteilla ennen kuin Power BI:n tietojoukko (dataset) on päivitetty. Tämä tehdään tyypillisesti ajastetusti kerran vuorokaudessa.