Edellisessä jutussa tutustuimme pikaisesti offline-käyttöä tukevan canvas appsin toteutukseen. Jatketaan teemaa ja keskitytään tällä kertaa offline-sovelluksen optimointiin.

Offline-profiili (mobile offline profile)

Offline-käyttöä tukeva canvas Power Apps hyödyntää laitteelle asennettua paikallista tietokantaa. Sovellus kommunikoi aina paikallisen tietokannan kanssa. Tämän sisältö synkronoidaan aina sopivin väliajoin Dataversen kanssa.

Puhelimen Power Appsille varaama tallennustila on kuitenkin rajallinen. Onkin keskeistä määritellä, mitä Dataversen tietoja laitteen omaan tietokantaan siirretään. Tämä tehdään offline-profiilin avulla.

Esimerkkitoteutuksessa käytimme automaattisesti luotua offline-profiilia (Auto-generated). Se osaa poimia sovelluksen tarvitsemat taulut profiiliin, mutta mitään rajauksia se ei tee. Taulujen kaikki rivit siirtyvät laitteelle (3 miljoonaan riviin asti).

Esimerkissämme tehtäviä (tp_inspection) on Dataversessä yli 3000. Niitä voi hyvin olla satoja tuhansia. Mobiilikäyttäjät tuskin tarvitsevat käyttöönsä niitä kaikkia.

Oman profiilin luominen

Haluamme kontrolloida laitteisiin siirrettävää tietomäärää. Tätä varten tulee luoda oma offline-profiili sovelluksen käyttöön. Valitaan Power Platform hallintakeskuksesta oikea ympäristö ja sen asetuksista mobile configuration.

Luodaan uusi profiili (New profile).

Nimetään se.

Näin meillä on tyhjä profiili.

Offline-profiilin konfigurointi

Siirrytään muokkaamaan profiilia klikkaamalla sen otsikkoa. Lisätään siihen yksi kerrallaan sovelluksen käyttämät taulut (Account, Task, Categrory).

Seuraavassa dialogissa on koko profiilin pihvi. Ensimmäisessä kohdassa määritellään, mitkä rivit ylipäänsä siirtyvät laitteelle.

  • Rivit niiden omistuksen perusteella (käyttäjä, tiimi tai organisaatio)
  • Kaikki rivit
  • Toiseen synkronoituun riviin liittyvät rivit. Esimerkiksi jos laitteelle siirtyy osajoukko asiakkaista (account), voimme määritellä myös kyseisten asiakkaiden ensisijaisten yhteystietojen (primary contact) siirtyvän
  • Itse määrittelemämme rivit (custom)

Lisäksi voimme määritellä, miten usein synkronointi tehdään. Oletus on 10min. Lyhin väli on 5min ja pisin taas 24h.

Käyttäjät kirjaavat sovelluksella uusia havaintoja, jotka voivat liittyä mihin tahansa kategoriaan ja asiakkaaseen. Näistä tauluista (account, category) poimimme mukaan kaikki rivit (All rows). Todellisuudessa rajaisimme pois inaktivoidut rivit, mutta oikaistaan nyt hieman.

Tehtävät haluamme kuitenkin rajata. Määritellään valinnaksi oma (custom) ja klikataan suppilo-kuvaketta.

Pääsemme määrittelemään suodatusehtoa tehtäville. Haluamme laitteelle ainoastaan tehtävät, jotka ovat

  • Käyttäjän itsensä luomia tai
  • Tilassa uusi tai työnalla tai
  • Luotu edeltävien 30 päivän aikana

Suodatusehto näyttää seuraavalta.

Valmista! Julkaistaan lopuksi profiili.

Huomaa, että profiilin käyttäjäosuus (Users with offline access) on canvas appsin osalta turha.

Lopuksi käydään asettamassa canvas app käyttämään uutta profiilia.

Ja julkaistaan sovellus uudelleen.

Kas, puhelimen tietokantaan tallentuneiden tehtävien määrä on pudonnut viiteen.

Offline-profiilin lisääminen ratkaisuun (solution)

Haluamme offline-profiilimme mukaan ratkaisupakettiin. Helpoiten se onnistuu lisäämällä mukaan canvas Power Appsiin liittyvät objectit (Advanced -> Add required objects).

Ja siellä se on.

Yhteenveto

Offline-profiilin konfigurointi on tärkeä vaihe offline-käyttöisen Power Appsin toteutuksessa. Sen avulla varmistetaan, ettei mobiililaite täyty turhasta datasta. Myös ensimmäisen käyttökerran alustava synkronointi on nopeampi kun rivejä siirretään vain 500 eikä 500 000.

Monimutkaiset profilin suodatusehdot voivat hidastaa synkronointia huomattavasti. Vältä

  • Merkkijonovertailua Contains, Begins with ja Ends with -operaattoreilla
  • Suodatuksia relaatioiden takana olevilla ehdoilla. Mitä syvempi relaatiopolku, sitä huonompi. Esim ”Mukaan vain asiakkaat, joiden ensisijaisen yhteyshenkilön etunimi on Timo”.

Mikäli sovelluksen käyttöön liittyy valokuvaia, on liikuteltavan tiedon rajaaminen entistäkin tärkeämpää. Muutoin vain tukimme koko puhelimen. Mutta valokuvista enemmän seuraavassa jutussa.