Povolení konzistentního prostředí napříč relacemi pomocí funkcí LoadData a SaveData

Microsoft Dataverse pro Microsoft Teams přináší integrovanou datovou platformu pro Teams s minimem kódu. Poskytuje úložiště relačních dat, bohaté datové typy, správu na podnikové úrovni a nasazení řešení jedním kliknutím. Dataverse for Teams umožňuje každému snadno vytvářet a nasazovat aplikace.

I když používání Power Apps v Teams přináší mnoho výhod, jednou z nejnáročnějších voleb při návrhu aplikace je schopnost udržovat konzistentní prostředí napříč relacemi.

Pokud se při používání aplikace přepneme na jinou kartu v Teams, abychom se podívali na wiki nebo do plánovače, nebo dokonce s někým chatujeme, dojde ke ztrátě dat relace aplikace a relaci musíme začít úplně od začátku. Pokud jsme například uprostřed kontroly prováděné v aplikaci Inspection a na okamžik přepneme karty, všechna data, která byla při kontrole zachycena, budou ztracena a budeme muset všechny tyto informace znovu získat.

V tomto článku se naučíme, jak používat funkce LoadData() a SaveData() k ukládání dat relace uvnitř aplikace, aby se předešlo ztrátě vykonané práce během přepínání karet v Teams.

Podívejte se na toto video a zjistěte, jak zajistit konzistentní prostředí napříč relacemi:

Předpoklady

K dokončení této lekce potřebujeme možnost vytvářet aplikace v Teams, které jsou k dispozici jako součást výběru předplatného Microsoft 365.

Přihlášení do Teams

Přihlaste se do Teams pomocí desktopové aplikace Teams.

Vytvoření nového týmu

Postup vytvoření nového týmu:

  1. Vyberte kartu Týmy.
  2. Vyberte příkaz Připojit nebo vytvořte tým v levé dolní části obrazovky.
  3. Vyberte položku Vytvořit tým od začátku.
  4. Vyberte možnost Veřejný a tým pojmenujte. V našem příkladu použijeme název „Partneři MSFT“.
  5. Vyberte Vytvořit.

Vytvoří se nový tým, který je uveden na kartě Týmy.

Vytvoření nového týmu

Vytvoření aplikace Power App v Teams

Chcete-li vytvořit aplikaci Power Apps v Teams, musíte v Teams otevřít Power Apps Studio, jak je zobrazeno níže.

Vytvoření aplikace Power App v Teams

  1. V seznamu aplikací vyberte Power Apps, připněte ji do levého podokna a poté ji vyberte.

    Připnutí Power Apps v Teams

  2. Výběrem položky Začít hned vytvořte první aplikaci.

  3. Vyberte tým, pro který má být tato aplikace vytvořena — pro tento tým se vytvoří prostředí Power Apps (existuje jedno prostředí Power Apps na každý tým).

  4. Při vytváření prostředí zavřete dialogové okno, které říká Vše se připravuje….

  5. Vyberte horní kartu Sestavit a během několika sekund by se vytvořená aplikace měla objevit v seznamu.

  6. Otevřete aplikaci a všimněte si, že se ve výchozím nastavení vytvoří v rozložení pro tablet.

    Rozložení pro tablet

  7. Zadejte název aplikace, například Ukázka trvalé relace, a vyberte Uložit.

    Uložení aplikace Power App v Teams

    Aplikace se vytvoří spolu s galerií.

    Aplikace se vytvoří spolu s galerií

  8. Chcete-li vytvořit novou tabulku, vyberte Vytvořit novou tabulku.

  9. Zadejte Účty a vyberte Vytvořit.

    Přidání názvu tabulky

  10. Přidejte dva sloupce: — Telefon s datovým typem Telefon a Město s datovým typem Text.

    Přidat sloupce

    Přidání sloupců pro telefon a město

  11. Přidejte ukázková data do tří sloupců.

  12. Opakováním přidejte alespoň pět záznamů.

  13. Vyberte Zavřít.

    Výběr možnosti Zavřít

    Tabulka účtů bude přidána jako datová tabulka

  14. Vyberte Stromové zobrazení > vyberte BrowseGallery1 > vyberte Účty jako zdroj dat.

    Vyberte Účty jako zdroj dat

Publikování aplikace v Teams

  1. Vyberte Publikovat v Teams.

    Výběr aplikace Power App v Teams

  2. Vyberte Další.

    Vyberte tlačítko Další

  3. Výběrem + přidejte aplikaci do kanálu „Obecné“.

    Přidání aplikace do kanálu

    Výběr kanálu

  4. Přejděte na tým Ukázka trvalé relace a všimněte si, že aplikace Ukázka trvalé relace se zobrazí v horní části jako karta.

    Přechod na tým

Testování problému

  1. Otevřete aplikaci Ukázka trvalé relace z týmu Ukázka trvalé relace.

    Otevření aplikace

  2. Vyberte Nový záznam a vytvořte tak nový účet v aplikaci.

  3. Zadejte jméno a telefonní číslo

  4. Než zadáte Město a uložíte záznam, přepněte se na jinou kartu (například Soubory nebo Wiki v horní části nebo do jiného týmu) a poté se vraťte do aplikace.

  5. Všimněte si, že data zadaná ve dvou sloupcích již nejsou na obrazovce k dispozici a jsou ztracena

    Testování problému

Řešení: Použijte funkce SaveData() a LoadData()

K vyřešení výše uvedeného problému použijeme funkce LoadData() a SaveData(). Vytvoříme kolekci pro data zadaná ve formuláři během zadávání dat a budeme data ukládat do této kolekce, dokud nebude záznam potvrzen nebo uložen. Pokud záznam nebyl uložen a musíme se z nějakého důvodu přesunout mimo obrazovku, budou data uložena v kolekci a načtou se, jakmile budeme zpět v aplikaci. Jakmile bude záznam uložen, kolekci vymažeme, aby byla připravena k zachycení nových dat při vytváření dalšího nového záznamu.

  1. Začněte tím, že se ujistíte, že aplikované změny jsou použitelné pouze v případě nového záznamu. Budeme tedy aktualizovat proměnnou newMode, které bude použito jako podmínka ve formuláři úprav ke zjištění, jaká data je třeba zobrazit. Vyberte Nový záznam a přidejte následující vzorec do vlastnosti OnSelect tlačítka:

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

    Vzorec OnSelect

  2. Dále přidáme data z jednotlivých vstupních ovládacích prvků do kolekce a poté data z této kolekce uložíme do místního souboru. Vyberte pole pro zadávání textu — v našem případě je to "DataCardValue1" z karty "Name_DataCard1" ve formuláři "EditForm1" pro pole Název pole — a zadejte následující vzorec do vlastnosti OnChange vstupního pole:

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

    Touto změnou přidáváme data do místní mezipaměti, takže pokud uživatel aplikaci opustí, jeho data nebudou ztracena.

    Vytvoření kolekce

    Obdobně zadejte následující kód do vlastnosti OnChange pole Telefon (DataCardValue2):

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

    A zadejte následující kód do vlastnosti OnChange pole Město (DataCardValue3):

    Collect(colAccount {Column:"City", Value:Self.Value});
    SaveData(colAccount, "colAccount");
    
  3. Nyní aktualizujeme vlastnost OnStart aplikace, takže pokud jsou v kolekci uložena nějaká data, načtou se na začátku aplikace.

    Přejděte na vlastnost Aplikace > OnStart a přidejte následující vzorec:

    LoadData(colAccount,"colAccount", true)
    

    App OnStart

  4. Dále musíme aktualizovat vlastnost Default datových polí, aby když se stránka načte po návratu do aplikace, měla by ve výchozím nastavení zobrazovat data z kolekce (pokud data v kolekci existují).

    Vyberte pole DataCard a aktualizujte vlastnost Default datové karty podle následujícího vzorce pro uvedená pole.

    V poli Název zadejte Name_DataCard1:

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

    Aktualizace vlastnosti Default

    Obdobně zadejte následující vzorec do pole vlastnosti Default pro Telefon (Phone_DataCard1):

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

    A následující vzorec použijte pro Město (City_DataCard1):

    If(
        newMode && !IsBlank(
            Last(
                Filter(colAccount, Column = "City")
            ).Value
        ),
        Last(
            Filter(colAccount, Column = "City")
        ).Value,
        If(newMode,Blank(), ThisItem.City)
    )
    
  5. Nyní musíme ve dvou scénářích kolekci vymazat:

    1. Když uživatel odešle formulář a změny se uloží.
    2. Když uživatel klepnutím na tlačítko Zrušit zruší změny.

    Použijte následující vzorec ve vlastnosti OnSelect tlačítka Odeslat.

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

    OnSelect tlačítka Odeslat

    Vyberte tlačítko Zrušit a zadejte následující vzorec:

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

    Vzorec tlačítka Zrušit

  6. Po provedení všech výše uvedených změn publikujte aplikaci výběrem tlačítka Publikovat v Teams.

Znovu aplikaci otestujte

  1. Přejděte do týmu a spusťte aplikaci.

  2. Vyberte položku + Nový záznam a přidejte jméno a telefonní číslo pro nový záznam.

  3. Výběrem jiné karty se z aplikace přesuňte jinam.

  4. Vraťte se do aplikace, která zobrazuje podrobnosti o prvním účtu.

  5. Když teď vybereme znovu příkaz + Nový, uvidíme v těchto polích pro zadávání textu již zadané údaje Jméno a Telefon. A můžeme pokračovat v přidávání účtu, který jsme přidávali před opuštěním aplikace.

    Znovu aplikaci otestujte

Jak používáme funkce SaveData a LoadData v aplikaci Inspection

V ukázkové aplikaci Inspection používáme načtení a ukládání data ve formuláři kontroly — pokud je uživatel uprostřed kontroly a přepne se z aplikací v Teams jinam (chtěl by např. někomu poslat zprávu), nechceme, aby během kontroly přišel o aktuální pozici. Když se v Teams vrátí na kartu aplikace, aplikace jim poskytne možnost pokračovat v probíhající kontrole.

Důležité informace

V Dataverse for Teams existují určité limity funkcí SaveData() a LoadData().

  • Limit 1 MB v desktopové aplikaci Teams.
  • Nefunguje v prohlížeči.
  • Aplikace v mobilním zařízení jsou omezeny velikostí místního úložiště, které má aplikace k dispozici.

Viz také

Poznámka

Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)

Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).