PowerApps on erinomainen työkalu pienten liiketoimintasovellusten rakentamiseen. Moni aloittaa siihen tutustumisen SharePoint -listojen avulla. Se kun on niin älyttömän helppoa. Tämä on käypä lähestymien, kunhan rivimäärät pysyvät säädyllisinä. Oikeissa sovelluksissa harvoin pysyy, jolloin pitää keksiä jotain muuta.

Onneksi apu on nurkan takana Azuren SQL -tietokantojen muodossa. Tehdään tällä kertaa yksinkertainen PowerApps, joka käyttää tietovarastonaan SQL -kantaa. PowerAppsia tullaan käyttämään aiemmin tekemässämme myymälöiden tarkastus -ratkaisussa.

Tietokannan luonti Azureen

Tarvitsemme tietokannan. Siirryään Azureen ja luodaan sellainen. Tuttuun tapaan plussaa vasemmasta yläkulmasta, haetaan ”SQL” ja valitaan SQL Database.

create sql database 1

Mikäli tämä on ensimmäinen tietokantasi, pitää luoda myös tietokantapalvelin (server). Muutoin voit käyttää aiemmin luomaasi mikäli haluat.create sql database 2

Kokeiluja varten kannattaa vaihtamaa tietokannan tyypiksi Basic (Pricing tier – Basic). Oletuksena oleva Standard generoi aivan eritavalla kulua.

create sql database 3

PowerAppsilla päivitettävät myymälätiedot meillä on jo valmiina aikaisemmasta esimerkistämme. Imuroidaan myymälärivit Excelistä tietokantaan käyttäen Import and Export wizardia.

Ja näin meillä on myymälätiedot SQl tietokannassa.

imported sql.png

PowerAppsin toteuttaminen

Siirrytään PowerAppsin etusivulle ja luodaan uusi sovellus (Create an app).new powerapps

Yhteyden määrittäminen

Tällä kertaa ei valitakkaan mitään oletusvaihtoehdoista vaan siirrytään nuolen avulla valitsemaan jotain muuta.

create new app.png

Näin pääsemme luomaan uuden yhteyden (New connection).

create new app step2

Valitaan lukuisten vaihtoehtojen joukosta SQL Server.

create new app step3

Valitaan Cloud services ja syötetään pyydetyt tiedot (siitä äsken luomastamme tietokannasta)-create new app step4

PowerApps muuodostaa yhteyden tietokantaan ja päästään valitsemaan tarjolla olevista tietokantatauluista se haluttu. Tällä kertaa se on erinomaisesti nimetty query$.create new app step5

PowerApps on valmis – vai onko?

Pienen odottamisen jälkeen eteemme tulee valmis mallisovellus query$ -taulun rivien selaamiseen ja päivittämiseen. Mutta hetkinen…

Eihän tällä voi päivittää tietoja!

PowerAppsin luomasta sovelluksesta puuttuu kokonaan EditScreen, jolla päivitetään/lisätään tietoja.

create new app step6 no edit

Vaikka sellaisen tekisi itse, ei PowerApps suostu tallentamaan tietoja kantaan. Syy on yksinkertainen. Tietokantataulussa täytyy olla ensisijainen avain (primary key) määriteltynä, jotta PowerApps pystyy sinne kirjoittamaan.

Luodaan puuttuva avain SQL management studiossa (tietokannan kohdalta Design ja FID-sarakkeen kohdalta Set Primary Key).create new app step6a set primary key

Heitetään äsken tekemämme PowerApps roskiin ja tehdään uusi. Tällä kertaa PowerAppsiin luodaan automaattisesti myös EditScreen. Kokeilemalla todetaan että päivitykset tallentuvat oikeasti tietokantaamme.create new app step7 with edit

Delegointi

Siistitään lomaketta ja muutetaan myymälälista näyttämään ainoastaan käyttäjää lähellä olevat myymälät.

Sininen kolmio kertoo kohteliaasti, ettei delegointi onnistu. Mieleni valtaa synkkyys. Delegoinnin piti onnistua SQL:n kanssa aina.

create new app step9 still blue note

Syy on kuitenkin ilmeinen. Pituus- ja leveysasteet on tallennettu tietokantaan tekstimuodossa. Tämän vuoksi ne joudutaan muuttamaan numeromuotoon PowerAppsissa. Muunnos estää delegoinnin (= vertailua ei voida suorittaa SQL -palvelussa).

Käydään muuttamassa pituus- ja leveysasteet tietokannassamme liukuluvuiksi (float).create new app step10 change columns to float

Tietokannassa tehdyt muutokset eivät automaattisesti päivity PowerAppsiimme. Valitaan käyttämämme tietolähde ja painetaan Refresh.

create new app step11 refresh after change

Lopuksi poistetaan koodista tietotyyppimuunnokset, jolloin lopputulos näyttää tältä.

create new app step12 ready

Toimiihan se lopulta. Eikä näy sinistä kolmiota. Pienen siistimisen jälkeen sovellus näyttää puhelimessa tältä.

powerapps in phone.png

Mikä parasta sovellus toimii huomattavasti nopeammin, kuin alkuperäinen SharePoint -listaan nojautuva PowerApps.