Omogućavanje dosljednog doživljaja tijekom sesija pomoću funkcija LoadData i SaveData

Microsoft Dataverse za Microsoft Teams isporučuje ugrađenu podatkovnu platformu s malo koda za Teams. Pruža relacijsku pohranu podataka, bogate vrste podataka, upravljanje na razini poduzeća i implementaciju rješenja jednim klikom. Dataverse for Teams omogućuje svima jednostavnu izgradnju i uvođenje aplikacije.

Iako postoje brojne prednosti korištenja Power Apps u Teams, jedno od najvećih razmatranja dizajna jest mogućnost održavanja dosljednog iskustva tijekom sesija.

Tijekom upotrebe aplikacije, ako prebacimo karticu u Teams da bismo pogledali Wiki ili Planer ili čak čavrljali s nekim, podaci o sesiji aplikacije se gube i morali bismo započeti sesiju od početka. Na primjer, ako smo usred inspekcije pomoću aplikacije Inspections, pa čak i na trenutak promijenimo kartice, svi podaci koji su snimljeni pregledom bili bi izgubljeni i sve bismo te podatke morati ponovno prikupiti.

U ovom ćemo članku naučiti kako koristiti Funkcije LoadData() i SaveData() za pohranu podataka o sesiji unutar aplikacije kako biste izbjegli gubitak posla zbog prebacivanja kartica u Teams.

Pogledajte ovaj videozapis da biste saznali kako omogućiti dosljedno iskustvo u svim sesijama:

Preduvjeti

Da bismo dovršili ovu lekciju, potrebna nam je mogućnost stvaranja aplikacija unutar Teams koja je dostupna kao dio odabranih pretplata na Microsoft 365.

Prijavite se u Teams

Prijavite se u Teams pomoću radne površine za Teams.

Stvorite novi tim

Da biste stvorili novi tim:

  1. Odaberite karticu Teams.
  2. Odaberite Pridruži ili stvorite tim u donjem lijevom kutu zaslona.
  3. Odaberite Stvori tim od nule.
  4. Odaberite Javno i dajte timu naziv. U ovom bismo primjeru koristili „MSFT partneri”.
  5. Kliknite Stvori.

Stvara se novi tim i nalazi se na popisu na kartici Teams.

Stvorite novi tim

Stvorite Power App u Teams

Da bismo stvorili aplikaciju Power Apps u Teams, moramo otvoriti Power Apps Studio u Teams kao što je prikazano u nastavku.

Stvorite Power App u Teams

  1. Odaberite Power Apps s popisa aplikacija i prikačite ga u lijevo okno, a zatim ga odaberite.

    Prikvačite Power Apps u Teams

  2. Odaberite Započni sada za stvaranje prve aplikacije.

  3. Odaberite tim za koji će se ova aplikacija stvoriti—okruženje Power Apps stvoreno je za taj tim (postoji jedno okruženje Power Apps po timu).

  4. Dok se stvara okruženje, zatvorite dijaloški okvir koji kaže Pripremanje.

  5. Odaberite karticu Izgradnja na vrhu i za nekoliko bi se sekundi stvorena aplikacija trebala pojaviti na popisu.

  6. Otvorite aplikaciju i primijetite da se prema zadanim postavkama stvara u rasporedu za tablet/format hardvera.

    Raspored za tablet

  7. Unesite naziv aplikacije, aplikacija Primjer neprekidne sesije, a odaberite Spremi.

    Spremite Power App u Teams

    Aplikacija se stvara s galerijom.

    Aplikacija se stvara s galerijom

  8. Odaberite Stvori novu tablicu da biste stvorili novu tablicu.

  9. Unesite Računi i odaberite Stvori.

    Dodajte naziv tablice

  10. Dodajte dva stupca—Telefon s vrstom podataka Telefon i Grad s vrstom podataka Tekst.

    Dodajte stupce

    Dodajte stupce telefon i grad

  11. Dodajte uzorke podataka u tri stupca.

  12. Ponovite za dodavanje najmanje pet zapisa.

  13. Odaberite Zatvori.

    Odaberite zatvori

    Tablica računa dodaje se kao tablica podataka

  14. Odaberite Prikaz stabla > Odaberite BrowseGallery1 > Odaberite Računi kao izvor podataka.

    Odaberite Računi kao izvor podataka

Objavite aplikaciju u Teams

  1. Odaberite Objavi u aplikaciji Teams.

    Odaberite Power App u Teams

  2. Odaberite Dalje.

    Odaberite gumb Sljedeće

  3. Odaberite + za dodavanje aplikacije u kanal „Općenito”.

    Dodajte aplikaciju u kanal

    Odaberite kanal

  4. Idite na tim Primjer neprekidne sesije i primijetite da se aplikacija Primjer neprekidne sesije prikazuje na vrhu kao kartica.

    Idite na tim

Testiranje problema

  1. Otvorite aplikaciju Primjer neprekidne sesije iz tima Primjer neprekidne sesije.

    Otvori aplikaciju

  2. Odaberite Novi zapis da biste stvorili novi račun u aplikaciji.

  3. Unesite ime i telefonski broj

  4. Prije nego što unesete Grad i spremite zapis, prebacite se na drugu karticu (poput Datoteke ili Wiki na vrhu ili u drugi tim), a zatim se vratite u aplikaciju.

  5. Primijetite da podaci uneseni u dva stupca više nisu dostupni na zaslonu i da su izgubljeni

    Testiranje problema

Rješenje: Koristite funkcije SaveData() i LoadData()

Za rješavanje gornjeg problema koristite ćemo Funkcije LoadData() i SaveData(). Stvorit ćemo zbirku za podatke unesene u obrazac kao i kada se podaci unesu i nastavit ćemo spremati podatke u zbirku sve dok se zapis ne pošalje ili spremi. Na ovaj će način, ako zapis nije spremljen i iz nekog razloga moramo otići s kartice, zbirka imala spremljene podatke koji bi se učitali kada se vratimo u aplikaciju. Također ćemo izbrisati zbirku nakon što je zapis spremljen kako bi zbirka bila spremna za snimanje novih podataka prilikom stvaranja sljedećeg novog zapisa.

  1. Započnite tako da provjerite jesu li promjene koje primjenjujemo primjenjive samo u slučaju novog zapisa. Dakle, ažuriramo varijablu newMode koja će se koristiti kao uvjet na obrascu za uređivanje kako bi se utvrdilo koji se podaci trebaju prikazati. Odaberite Novi zapis i dodajte sljedeću formulu u svojstvo gumba OnSelect:

    NewForm(EditForm1);
    UpdateContext({newMode: true})
    

    Formula OnSelect

  2. Nadalje ćemo dodati podatke iz pojedinih kontrola unosa u zbirku, a zatim ćemo spremiti podatke u lokalnu datoteku iz te zbirke. Odaberite okvir za unos teksta—u našem primjeru to je „DataCardValue1” iz „Name_DataCard1” na „EditForm1” za polje Naziv —unesite sljedeću formulu u svojstvo polja za unos OnChange:

    Collect(
        colAccount,    
        { Column:"Name",Value:Self.Value}
    );
    SaveData(colAccount,"colAccount").
    

    Ovom promjenom dodajemo podatke u lokalnu predmemoriju kako se podaci ne bi izgubili ako korisnik napusti aplikaciju.

    Stvorite zbirku

    Slično tome, unesite sljedeći kod u svojstvo OnChange za Telefon (DataCardValue2):

    Collect(colAccount, {Column:"Phone",Value:Self.Value});
    SaveData(colAccount,"colAccount");
    

    I unesite sljedeći kod u svojstvo OnChange za Grad (DataCardValue3):

    Collect(colAccount {Column:"City", Value:Self.Value});
    SaveData(colAccount, "colAccount");
    
  3. Sada ćemo ažurirati aplikaciju OnStart tako da se, ako ima podataka spremljenih u zbirci, učitavaju na početku aplikacije.

    Idite na Aplikacija svojstvo > OnStart i dodajte sljedeću formulu:

    LoadData(colAccount,"colAccount", true)
    

    App OnStart

  4. Zatim moramo ažurirati svojstvo polja podataka Zadano, tako da kada se stranica učita nakon što se vratimo u aplikaciju, ako postoje podaci u zbirci, prema zadanim bi postavkama trebala prikazati podatke iz zbirke.

    Odaberite polje DataCard i ažurirajte svojstva kartice podataka Zadano prema sljedećoj formuli za navedena polja.

    Za polje Ime unesite Name_DataCard1:

    If(
        newMode && !IsBlank(
            Last(
                Filter(colAccount, Column = "Name")
            ).Value
        ),
        Last(
            Filter(colAccount, Column = "Name")
        ).Value,
        If(newMode, Blank(), ThisItem.Name)
    )
    

    Ažurirajte zadano svojstvo

    Slično tome, unesite sljedeću formulu u formulu svojstva Zadano za Telefon (Phone_DataCard1):

    If(
        newMode && !IsBlank(
            Last(
                Filter(colAccount, Column ="Phone")
            ).Value
        ),
        Last(
            Filter(colAccount, Column = "Phone")
        ).Value,
        If(newMode, Blank(), ThisItem.Phone)
    )
    

    I koristite sljedeću formulu za Grad (City_DataCard1):

    If(
        newMode && !IsBlank(
            Last(
                Filter(colAccount, Column = "City")
            ).Value
        ),
        Last(
            Filter(colAccount, Column = "City")
        ).Value,
        If(newMode,Blank(), ThisItem.City)
    )
    
  5. Sada moramo očistiti zbirku u dva scenarija:

    1. Kada korisnik pošalje obrazac, a promjene se spremaju.
    2. Kada korisnik odabere gumb za otkazivanje da bi poništio promjene.

    Koristite sljedeću formulu u svojstvu OnSelect gumba Pošalji.

    SubmitForm(EditForm1);
    UpdateContext({editMode: false, newMode: false});
    Clear(colAccount);
    SaveData(colAccount, "colAccount");
    

    Pošaljite OnSelect

    Odaberite gumb Otkaži i unesite sljedeću formulu:

    ResetForm(EditForm1);
    UpdateContext({editMode: false, newMode: false});
    Clear(colAccount);
    SaveData(colAccount, "colAccount");
    

    Formula za otkazivanje

  6. Objavite aplikacije nakon što izvršite sve gore navedene promjene odabirom Objavi u aplikaciji Teams.

Ponovno testirajte aplikaciju

  1. Idite u tim i pokrenite aplikaciju.

  2. Odaberite zapis + Novo i dodajte ime i pojedinosti o telefonu za novi zapis.

  3. Odaberite drugu karticu za izlazak iz aplikacije.

  4. Vratite se na aplikaciju—prikazuje pojedinosti o prvom računu.

  5. Sada kad ponovno odaberemo + Novo vidjet ćemo pojedinosti o imenu i telefonu već popunjene u tim poljima za unos teksta. I možemo nastaviti dodavati račun koji smo dodavali prije nego što smo morali izaći iz kartice aplikacije.

    Ponovno testirajte aplikaciju

Kako koristimo SaveData i LoadData u aplikaciji Inspection

U uzorku aplikacije Inspection koristimo load data i save data u obrascu za pregled—ako je korisnik usred pregleda i prebaci se s aplikacija u Teams (želi nekome poslati poruku), ne želimo da izgubi svoje mjesto gdje je stao pregledu. Kada se vrate na karticu aplikacije u Teams, aplikacija im daje mogućnost da nastave pregled u tijeku.

Napomene

U Dataverse for Teams postoje neka ograničenja za mogućnosti SaveData() i LoadData().

  • Ograničenje od 1 MB na radnoj površini za Teams.
  • Ne radi u pregledniku.
  • Aplikacije na mobilnom uređaju ograničene su količinom lokalne pohrane koja je dostupna aplikaciji.

Pogledajte također