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.
Mikäli tämä on ensimmäinen tietokantasi, pitää luoda myös tietokantapalvelin (server). Muutoin voit käyttää aiemmin luomaasi mikäli haluat.
Kokeiluja varten kannattaa vaihtamaa tietokannan tyypiksi Basic (Pricing tier – Basic). Oletuksena oleva Standard generoi aivan eritavalla kulua.
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.
PowerAppsin toteuttaminen
Siirrytään PowerAppsin etusivulle ja luodaan uusi sovellus (Create an app).
Yhteyden määrittäminen
Tällä kertaa ei valitakkaan mitään oletusvaihtoehdoista vaan siirrytään nuolen avulla valitsemaan jotain muuta.
Näin pääsemme luomaan uuden yhteyden (New connection).
Valitaan lukuisten vaihtoehtojen joukosta SQL Server.
Valitaan Cloud services ja syötetään pyydetyt tiedot (siitä äsken luomastamme tietokannasta)-
PowerApps muuodostaa yhteyden tietokantaan ja päästään valitsemaan tarjolla olevista tietokantatauluista se haluttu. Tällä kertaa se on erinomaisesti nimetty query$.
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.
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).
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.
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.
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).
Tietokannassa tehdyt muutokset eivät automaattisesti päivity PowerAppsiimme. Valitaan käyttämämme tietolähde ja painetaan Refresh.
Lopuksi poistetaan koodista tietotyyppimuunnokset, jolloin lopputulos näyttää tältä.
Toimiihan se lopulta. Eikä näy sinistä kolmiota. Pienen siistimisen jälkeen sovellus näyttää puhelimessa tältä.
Mikä parasta sovellus toimii huomattavasti nopeammin, kuin alkuperäinen SharePoint -listaan nojautuva PowerApps.