Habilitar l'experiència coherent entre sessions utilitzant les funcions LoadData i SaveData

El Microsoft Dataverse per al Microsoft Teams ofereix una plataforma de dades integrada i de poc codi per al Teams. Proporciona un emmagatzematge relacional de dades, tipus de dades enriquides, governança de nivell empresarial i implementació de solucions d'un clic. El Dataverse for Teams permet a tothom crear i implementar aplicacions fàcilment.

Encara que hi ha nombrosos avantatges d'utilitzar el Power Apps al Teams, una de les consideracions de disseny més grans és la capacitat de mantenir l'experiència coherent en totes les sessions.

Mentre s'utilitza una aplicació, si canviem una pestanya al Teams per veure un wiki o el planificador, o fins i tot xatejar amb algú, les dades de la sessió de l'aplicació es perden i hauríem d'iniciar la sessió des de zero. Per exemple, si estem enmig d'una inspecció utilitzant l'aplicació Inspeccions i canviem de pestanya només un moment, totes les dades que capturades a la inspecció es perdrien i haurem de recuperar tota aquesta informació.

En aquest article, aprendrem a utilitzar les funcions LoadData() i SaveData() per emmagatzemar les dades de la sessió dins de l'aplicació per evitar qualsevol pèrdua de treball a causa del canvi de pestanyes al Teams.

Mireu aquest vídeo per aprendre a permetre una experiència coherent en totes les sessions:

Requisits previs

Per completar aquesta lliçó, necessitaríem la capacitat de crear aplicacions al Teams disponible com a part de les subscripcions al Microsoft 365.

Iniciar la sessió al Teams

Inicieu la sessió al Teams mitjançant el Teams per a l'escriptori.

Crear un equip nou

Per crear un equip nou:

  1. Seleccioneu la pestanya Equips.
  2. Seleccioneu Uneix-me o creeu un equip a la part inferior esquerra de la pantalla.
  3. Seleccioneu Crea un equip des de zero.
  4. Seleccioneu Públic i doneu un nom a l'equip. En aquest exemple, utilitzarem "Associats de MSFT".
  5. Seleccioneu Crea.

El nou equip es crea i s'indica a la pestanya Equips.

Crear un nou equip

Crear una aplicació del Power Apps al Teams

Per crear una aplicació del Power Apps al Teams, hem d'obrir el Power Apps Studio al Teams com es mostra a continuació.

Crear una aplicació del Power Apps al Teams

  1. Seleccioneu Power Apps a la llista d'aplicacions i ancoreu-lo a la subfinestra esquerra, i seleccioneu-lo.

    Ancorar el Power Apps al Teams

  2. Seleccioneu Inicia ara per crear la primera aplicació.

  3. Seleccioneu l'equip per al qual es crearà aquesta aplicació; un entorn del Power Apps es crea per a aquest equip (hi ha un entorn del Power Apps per equip).

  4. Mentre s'està creant l'entorn, tanqueu el diàleg que diu S'està preparant tot.

  5. Seleccioneu la pestanya Crea a la part superior, i en uns segons l'aplicació creada hauria d'aparèixer a la llista.

  6. Obriu l'aplicació i veureu que es crearà amb el factor de forma/disseny de tauleta per defecte.

    Disposició de tauleta

  7. Introduïu un nom per a l'aplicació Exemple de sessió persistent i seleccioneu Desa.

    Desar una aplicació del Power Apps al Teams

    L'aplicació es crea amb una galeria.

    L'aplicació es crea amb una galeria

  8. Seleccioneu Crea una taula nova per crear una taula nova.

  9. Introduïu Comptes i seleccioneu Crea.

    Afegir un nom de taula

  10. Afegiu dues columnes: Telèfon amb tipus de dades Telèfon i Ciutat amb tipus de dades Text.

    Addició de columnes

    Afegir columnes de telèfon i ciutat

  11. Afegiu dades d'exemple a les tres columnes.

  12. Repetiu-ho per afegir almenys cinc registres.

  13. Seleccioneu Tanca.

    Seleccioneu Tanca

    La taula de comptes s'afegeix com a taula de dades

  14. Seleccioneu Visualització en arbre > seleccioneu BrowseGallery1 > seleccioneu Comptes com a font de dades.

    Seleccioneu Comptes com a font de dades

Publicar l'aplicació al Teams

  1. Seleccioneu Publica-ho al Teams.

    Seleccionar l'aplicació del Power Apps al Teams

  2. Seleccioneu Següent.

    Seleccioneu el botó Següent

  3. Seleccioneu + per afegir l'aplicació al canal "General".

    Afegir l'aplicació al canal

    Seleccionar el canal

  4. Aneu a l'equip Exemple de sessió persistent i veureu que l'aplicació Exemple de sessió persistent es mostra a la part superior com a pestanya.

    Navegueu a l'equip

Prova del problema

  1. Obriu l'aplicació Exemple de sessió persistent de l'equip Exemple de sessió persistent.

    Obre l'aplicació

  2. Seleccioneu Registre nou per crear un compte nou a l'aplicació.

  3. Introduïu el nom i el número de telèfon

  4. Abans d'introduir Ciutat i desar el registre, canvieu a una pestanya diferent (com ara Fitxers o Wiki a la part superior o un equip diferent) i torneu a l'aplicació.

  5. Veureu en compte que les dades introduïdes en les dues columnes ja no estan disponibles a la pantalla i es perden

    Prova del problema

Solució: utilitzar les funcions SaveData() i LoadData()

Per resoldre el problema anterior, utilitzarem les funcions LoadData() i SaveData(). Crearem una col·lecció per a les dades introduïdes en un formulari i quan s'introdueixin les dades, i seguirem desant les dades a la col·lecció fins que el registre s'hagi publicat o desat. D'aquesta manera, si el registre no s'ha desat i hem de sortir de la pestanya de la pantalla per algun motiu, la col·lecció tindrà les dades desades que es carregaran una vegada hàgim tornat a l'aplicació. També esborrarem la col·lecció una vegada que el registre s'hagi desat, de manera que la col·lecció estigui preparada per capturar dades noves quan es creï el següent registre nou.

  1. Comenceu assegurant-vos que els canvis que estem aplicant només siguin aplicables en el cas d'un registre nou. Per tant, actualitzem la variable newMode que s'utilitzarà com a condició en el formulari d'edició per determinar quines dades cal mostrar. Seleccioneu Registre nou i afegiu la fórmula següent a la propietat OnSelect del botó:

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

    Fórmula OnSelect

  2. A continuació, afegirem les dades dels controls d'entrada individuals a una col·lecció, i després desarem les dades a un fitxer local d'aquesta col·lecció. Seleccioneu el quadre d'entrada de text (en el nostre exemple és "DataCardValue1" de "NameNameDataCard1" a "EditForm1" per al camp Nom), introduïu la fórmula següent a la propietat OnChange del camp d'entrada:

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

    Amb aquest canvi, afegirem les dades a una memòria cau local de manera que si l'usuari abandona l'aplicació, les seves dades no es perdran.

    Crear una col·lecció

    De manera similar, introduïu el següent codi a la propietat OnChange per a Telèfon (DataCardValue2):

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

    I introduïu el següent codi a la propietat OnChange per a Ciutat (DataCardValue3):

    Collect(colAccount {Column:"City", Value:Self.Value});
    SaveData(colAccount, "colAccount");
    
  3. Ara actualitzarem la propietat OnStart de l'aplicació de manera que si hi ha dades desades a la col·lecció, es carreguin en iniciar l'aplicació.

    Aneu a la propietat Aplicació > OnStart i afegiu la fórmula següent:

    LoadData(colAccount,"colAccount", true)
    

    Aplicació OnStart

  4. A continuació, hem d'actualitzar la propietat Default dels camps de dades de manera que quan la pàgina es carregui quan tornem a l'aplicació, si les dades existeixen a la col·lecció, per defecte ha de mostrar les dades de la col·lecció.

    Seleccioneu el camp DataCard i actualitzeu la propietat Default de la targeta de dades a la fórmula següent per als camps indicats.

    Per al camp Nom, introduïu Nom_DataCard1:

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

    Actualitzar la propietat per defecte

    De la mateixa manera, introduïu la fórmula següent en la fórmula de la propietat Default per a Telèfon (Telèfon_DataCard1):

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

    I utilitzeu la fórmula següent per a Ciutat (Ciutat_DataCard1):

    If(
        newMode && !IsBlank(
            Last(
                Filter(colAccount, Column = "City")
            ).Value
        ),
        Last(
            Filter(colAccount, Column = "City")
        ).Value,
        If(newMode,Blank(), ThisItem.City)
    )
    
  5. Ara, hem d'esborrar la col·lecció en dos escenaris:

    1. Quan l'usuari envia el formulari i els canvis es desen.
    2. Quan l'usuari selecciona el botó Cancel·la per cancel·lar els canvis.

    Utilitzeu la fórmula següent a la propietat OnSelect del botó Envia.

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

    OnSelect per a Envia

    Seleccioneu el botó Cancel·la i introduïu la fórmula següent:

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

    Fórmula per a Cancel·la

  6. Publiqueu les aplicacions després de fer tots els canvis anteriors seleccionant Publica al Teams.

Tornar a provar l'aplicació

  1. Aneu a l'equip i executeu l'aplicació.

  2. Seleccioneu + Registre nou i afegiu el nom i els detalls del telèfon per al registre nou.

  3. Seleccioneu una altra pestanya per sortir de l'aplicació.

  4. Torneu a l'aplicació; mostra els detalls del primer compte.

  5. Ara, quan seleccionem + Nou de nou, ja veurem els detalls de Nom i Telèfon emplenats en aquests camps d'entrada de text. I podem reprendre l'addició del compte que estàvem afegint abans que haguéssim de sortir de l'aplicació.

    Tornar a provar l'aplicació

Com utilitzar SaveData i LoadData a l'aplicació Inspecció

A l'aplicació d'exemple Inspecció, utilitzem la càrrega i el desament de dades en el formulari d'inspecció; si un usuari està en una inspecció i surt de les aplicacions al Teams (com per enviar un missatge a algú), no volem que perdi el seu lloc a la inspecció. Quan torna a la pestanya de l'aplicació al Teams, l'aplicació li dona l'opció de reprendre la inspecció en curs.

Consideracions

Al Dataverse for Teams, hi ha alguns límits a les funcions SaveData() i LoadData().

  • Límit d'1 MB al Teams per a l'escriptori.
  • No funciona en un navegador.
  • Les aplicacions en mòbils estan limitades per la quantitat d'emmagatzematge local disponible per a l'aplicació.

Consulteu també