Yksi canvas Power Appsin ärsyttävistä ominaisuuksista on, että sovelluksen voi avata muokkaustilaan ainoastaan yksi käyttäjä. Harvemmin haluan muokata sovellusta samanaikaisesti toisen tekijän kanssa. Aika usein haluaisin kuitenkin tarkistaa toteutuksesta jonkun yksityiskohdan samaan aikaan, kun se on toisella tekijällä muokattavana.

Toinen ärsyttävä ominaisuus on, ettei Power Appsin sisältöä kokonaisuudessaan näe mistään selkokielisenä koodina. Tämä nopeuttaisi esimerkiksi muuttujen uudelleennimeämistä, fontin vaihtamista koko sovelluksessa tai sen selvittämistä missä mitäkin muuttujaa käytetään.

Toki jo vuoden päivät canvas Power Appsin on voinut purkaa selkokieliseksi ja viedä versionhallintaan. Mutta se on ollut enemmän tai vähemmän käsityötä. Harvassa ovat tekijät, jotka ovat tätä ominaisuutta aktiivisesti käyttäneet.

Mutta nyt tämä kaikki muuttuu. Canvas Power Appsin saa kiinni versionhallintaan (lähes) nappia painamalla. Muutokset viedään sinne automaattisesti jokaisen tallennuksen yhteydessä. Ja samaa sovellusta voi muokata usea tekijä samanaikaisesti!

Huikeaa. Katsotaan miten tämä toimii.

Versionhallinta – Git (GitHub)

Versionhallintana toimii Git. Käytän esimerkissä GitHub:ia. Voit toki käyttää esim Azure DevOps:ia.

Olen luonut sovellusta varten oman säilön (repository, MySecondPowerAppsInGitHub).

Yhteys versionhallinnan ja Power Appsin välille tehdään personal access tokenin avulla. Ei siis gitin käyttäjätunnuksella ja salasanalla.

Luodaan asetuksista (Settings -> Developer settings) löytyvästä Personal access tokens -osiosta uusi token.

Nyt meillä on GitHub:ssa paikka sovelluksellemme.

Yhteyden luominen Git:iin

Luodaan uusi Power Apps ja siirrytään sen asetuksiin. Git-versionhallinta löytyy kokeellisista (experimental) ominaisuuksista.

Kytkemällä ominaisuuden päälle, ilmestyy asetuksiin uusi osio: Git version control.

Luodaan Connect-painikkeella yhteys versionhallintaan. Syötetään seuraavat tiedot

  • Git Repository URL: Säilön osoite
  • Branch: Käytettävän haaran nimi
  • Directory: Käytettävä hakemisto

Annettu säilö tulee olla olemassa. Haara ja hakemisto luodaan, mikäli niitä ei löydy.

Lopuksi kirjaudutaan. Huom! Salasanana käytetään Gitissä luotua personal access tokenia.

Power Apps ei tallenna Gitin salasanaa. Token kannattaa siis tallentaa salasananhallintaohjelmaan (tai selaimen muistiin). Muutoin saat luoda uuden tokenin aina kun avaat Power Appsin muokattavaksi…

Nyt yhteys on luotu.

Gitiin luotiin samalla puuttunut main haara ja MyApp-hakemisto.

Muutosten tekeminen (Power Apps)

Lisätään sovellukseen muutama kontrolli.

Tallennetaan ja lisätään samalla kommentti (Version notes).

Tallennetut muutokset näkyvät samantien Gitissä. Samoin tallennuksen yhteydessä annettu kommentti.

Enkä tehnyt yhtään Git-komentoa komentoriviltä. Minun ei tarvitse edes tietää mitä ne ovat.

Muiden tekemät muutokset

Tallennuksen yhteydessä Power Apps studio tarkistaa, onko joku muu muokannut sovellusta. Muutokset ilmestyvät automaattisesti näkyviin.

Kuvassa tekstikentän alle ilmestyi toisen käyttäjän lisäämä ”Added by BigBoss” otsikko.

Tehdyt muutokset voi vahvistaa (commit) myös oikean yläreunan synkronointi-painikkeella.

Nyt tekemäni muutokset on vahvistettu.

Lyhyen testaamisen ja dokumentaation lukemisen perusteella on hieman epäselvää, mikä ero tallentamisella ja synkronoinnilla lopulta on. Molemmat päätyvät muutosten vahvistamiseen. Eikä kumpikaan näytä lisäävän säännönmukaisesti uutta versiota Power Appsin omaan versiohistoriaan.

"Each save or synchronize that includes changes will result in a commit in Git."

Molempien toimintojen jälkeen muiden tekemät muutokset myös ilmestyvät editoriin.

Samanaikainen muokkaaminen

Power Appsin samanaikainen muokkaaminen toimii yllättävän hyvin. Jopa samaa kontrollia voi muokata yhtä aikaa. Mikäli käyttäjät kuitenkin muokkaavat saman kontrollin samaa ominaisuutta (esim korkeutta), jää voimaan viimeinen muokkaus.

Mahdollisia muutosten välisiä konflikteja ei ole mahdollista ratkoa itse. Power Apps studio tekee sen puolestasi. Aina se ei siinä välttämättä onnistu. Mikäli jälki ei tyydytä, voi tilannetta korjata Gitistä käsin. Kaikki muokkaajien tekemät muutokset ovat siellä tallessa.

Muokkaaminen versionhallinnassa

Siirrytään GitHubissa näytön (Screen1) koodiin. Nimetään kontrollit uudellen (btnButton ja inpSearch). Lopuksi tehdään commit asianmukaisella kommentilla.

Synkronoidaan tämän jälkeen Power Apps. Kyllä, kontrollien nimet ovat vaihtuneet!

Yhteenveto

Canvas Power Appsin Git-integraatio on vasta kokeellinen ominaisuus. En suosittele käyttämän sitä vielä tuotantosovelluksissa. Yllättävän hyvin se silti jo toimii.

Ominaisuutena tämä on juuri sitä mitä olen kaivannut. Yksinkertainen tapa saada sovellukset GitHubiin, jolloin tietynlaisten muutosten tekeminen sekä ongelmanselvitys on nykyistä helpompaa.

Lisäbonuksena tulee sitten sovelluksen samanaikainen muokkaus.

Seuraavana toivelistallani on yhtä yksinkertainen toteutus sovelluksen julkaisemiseksi Gitistä haluttuun Power Platform -ympäristöön. Sitten olisin tyytyväinen. Taas hetken.