Power Apps offline režim

Power Apps offline režim
Power Apps mobilné aplikácie pre tablety alebo telefóny musia fungovať aj vtedy, keď nemáte internetové pripojenie. Pre vývojárov je tvorba v režime offline jednou z najväčších výziev, ktoré musia zvládnuť.
Offline režim si vyžaduje starostlivé plánovanie. Je potrebné zaistiť načítanie údajov v online režime, bezpečne ich uložiť v mobilnom zariadení a pri prepnutí do režimu offline veľmi rýchlo načítať a zlúčiť veľké množstvo lokálnych dát. V tomto článku vám ukážeme konkrétny príklad vytvorenia mobilnej aplikácie Power Apps v režime offline.

Power Apps aplikácia Jasoň

Appka Jasoň bola navrhnutá pre potreby ornitológov a ochrancov prírody. Je preto logické, že od začiatku bolo potrebné navrhnúť logiku načítania online údajov zo zoznamu SharePoint, ich bezpečné uloženie do lokálnych kolekcií v mobilnom zariadení pre prácu v prírode, väčšinou v režime offline.

Načítanie a uloženie online údajov sme si vysvetlili v príspevku Vytvárajte kolekcie v Power Apps s viac ako 2000 riadkami v zozname SharePoint. Teraz sa pozrieme na zápis nových údajov a ich hromadné odoslanie po pripojení na internet.

Najskôr uložíme pozorovanie do kolekcie PozorovaniaLocal, kde každý záznam má vygenerovaný vlastný identifikátor id (zvýšenie maximálnej hodnoty o 1). Samotné pozorovanie užívateľ nadefinoval z rozbaľovacích ponúk ComboBox, preto pri niektorých poliach ukladáme iba vybrané ID z ponuky, niekde aj vybranú hodnotu. Aktuálny dátum a čas vytvorenia záznamu generujeme pomocou funkcie Now() a pridávame vlastný jedinečný identifikátor naformátovaný do tvaru RRRRMMDDHHMMSS. Pri práci v prírode je nevyhnutné načítať GPS súradnice a na záver kolekciu uložíme príkazom SaveData:
Collect( PozorovaniaLocal;
   { id: Max( PozorovaniaLocal; id) + 1;
     VedeckeMeno: ComboBox3.Selected.ID;
     VedeckeMenoSlovom: ComboBox3.Selected.Title;
     Pocet: Počet_DataCard3.Update;
     Kategoria: ComboBox3_1.Selected.ID;
     KategoriaSlovom: ComboBox3_1.Selected.Názov;
     DatumCas: Now();
     Lokalita: ComboBox3_8.Selected.ID;
     LokalitaSlovom: ComboBox3_8.Selected.'Meno+Kod';
     Vek: ComboBox3_2.Selected.ID;
     Pohlavie: ComboBox3_3.Selected.ID;
     Pozorovatel1: ComboBox3_4.Selected.ID;
     Pozorovatel2: ComboBox3_5.Selected.ID;
     Projekt: ComboBox3_6.Selected.ID;
     ProjektSlovom: ComboBox3_6.Selected.Projekt;
     ID_zAPP: Year(Now()) & Text( Month(Now()); "[$-sk-SK]00")
     & Text( Day(Now());"[$-sk-SK]00") & Text( Hour(Now()); "[$-sk-SK]00")
     & Text( Minute(Now());"[$-sk-SK]00") & Text( Second(Now()); "[$-sk-SK]00");
     Mimo: MimoN_1.Value;
     'GPS-N-Latitude_2': Location.Latitude;
     'GPS-E-Longitude_2': Location.Longitude;
     Poznamka: TextInput3.Text;
     Pomoc: If(ComboBox3_6.Selected.ID = 9; 6000; "")});;
SaveData( PozorovaniaLocal; "PozorovaniaLocal")

Uloženie záznamu offline

Uloženie záznamu offline

Zobrazenie offline záznamov

Zobrazenie offline záznamov

Zobrazenie online záznamov

Zobrazenie online záznamov

Hromadné odoslanie dát po pripojení na internet

Začíname overením internetového pripojenia v aplikácii Power Apps. Ak sme online, funkciou Patch - Defaults pre všetky záznamy v kolekcii PozorovaniaLocal (ForAll) odošleme lokálne uložené pozorovania do zoznamu SharePoint. Ak celá dávka odišla bezchybne, vyčistíme lokálnu kolekciu funkciou Clear, uložíme prázdnu kolekciu (aby neinformovala užívateľa, že existujú neodoslané offline záznamy) a odosielame notifikáciu cez Power Automate. Kód vyzerá nasledovne:
If( Connection.Connected;
     ForAll( PozorovaniaLocal;
          Patch( Pozorovania;
               Defaults(Pozorovania);
               { Druh: { Id: VedeckeMeno; Value: VedeckeMeno};
               Počet: Pocet;
               Kategória: { Id: Kategoria; Value: Kategoria};
               'Dátum a čas': DatumCas;
               Lokalita: { Id: Lokalita; Value: Lokalita};
               Vek: { Id: Vek; Value: Vek};
               Pohlavie: { Id: Pohlavie; Value: Pohlavie};
               'Pozorovateľ 1': { Id: Pozorovatel1; Value: Pozorovatel1};
               'Pozorovateľ 2': { Id: Pozorovatel2; Value: Pozorovatel2};
               Projekt: { Id: Projekt; Value: Projekt};
               Mimo: Mimo; ID_zAPP: ID_zAPP;
               'GPS-N-Latitude_2': 'GPS-N-Latitude_2';
               'GPS-E-Longitude_2': 'GPS-E-Longitude_2';
               Poznámka: Poznamka; Pomoc: Pomoc}));;
If( IsEmpty(Errors(Pozorovania));
     Clear(PozorovaniaLocal));;
SaveData( PozorovaniaLocal; "PozorovaniaLocal");; Notify_PowerApps_Jasoň_CountPozorovania.Run();
Notify( "Nie je internetové pripojenie."; NotificationType.Error))

_Power Apps | najlepší online kurz:

Power Apps - moja prvá appka

Power Apps je úžasná cloudová služba v prostredí Microsoft 365, kde vás veľmi rýchlo naučíme vytvárať jednoducho skvelé, moderné firemné aplikácie bez nutnosti programovania, iba klikaním myškou a/alebo písaním vzorcov podobným spôsobom ako v Exceli. Vaše mobilné aplikácie budú rovnako fungovať na počítačoch, tabletoch aj smartfónoch a na operačných systémoch Windows, iOS alebo Android.

Najlepší online kurz Power Apps - moja prvá appka je zameraný priamo na tvorbu mobilných aplikácií v cloudovom prostredí Microsoft 365. Dozviete sa, ako rýchlo appku vytvoriť, ako všetko potrebné nastaviť a čo znamenajú jednotlivé možnosti vrátane ich použitia.

najlepší online kurz
  • doživotný prístup
  • bez obmedzení
  • konzultácia s lektorom

Páčil sa vám tento článok alebo máte otázku?

Ak sa vám článok páčil, ohodnoťte ho v úvodnej (hornej) časti. Ak máte nejaké otázky k offline režimu v Power Apps, napíšte nám.
#PowerAppsSK   #SoftverNaMieru   #PowerApps

Máte pre nás nový projekt?

Power Apps najlepší online kurz:

moja prvá appka

Power Apps je úžasná cloudová služba v prostredí Microsoft 365, kde vás veľmi rýchlo naučíme vytvárať jednoducho skvelé, moderné firemné aplikácie bez nutnosti programovania, iba klikaním myškou a/alebo písaním vzorcov podobným spôsobom ako v Exceli. Vaše mobilné aplikácie budú rovnako fungovať na počítačoch, tabletoch aj smartfónoch a na operačných systémoch Windows, iOS alebo Android.

Žiadne zbytočné akademické koncepty a poučky, len praktické lekcie zo skutočnej praxe a tvorby mobilných aplikácií pre klientov.