Share via


Permitir unha experiencia consistente en todas as sesións mediante as funcións LoadData e SaveData

Microsoft Dataverse para Microsoft Teams ofrece unha plataforma de datos integrada de baixo código para Teams. Ofrece almacenamento de datos relacionais, tipos de datos enriquecidos, gobernanza de nivel empresarial e implantación de solucións cun só clic. Dataverse for Teams permite a todos crear e implementar aplicacións facilmente.

Aínda que hai numerosas vantaxes de usar Power Apps en Teams, unha das maiores consideracións de deseño é a capacidade de manter unha experiencia consistente en todas as sesións.

Mentres usamos unha aplicación, se cambiamos de pestana en Teams para mirar a Wiki ou o Planificador ou incluso falar con alguén, os datos da sesión da aplicación pérdense e teriamos que comezar a sesión desde cero. Por exemplo, se estamos en plena inspección mediante a aplicación Inspeccións e cambiamos de pestana incluso por un momento, perderíanse todos os datos que se capturaron na inspección e teremos que recuperar toda esa información.

Neste artigo, aprenderemos a usar as funcións LoadData() e SaveData() para almacenar os datos da sesión dentro da aplicación para evitar calquera perda de traballo por cambiar de pestanas en Teams.

Mire este vídeo para saber como activar unha experiencia coherente entre sesións:

Requisitos previos

Para completar esta lección, necesitaríamos a posibilidade de crear aplicacións dentro de Teams que está dispoñible como parte de determinadas subscricións a Microsoft 365.

Iniciar sesión en Teams

Inicie sesión en Teams usando Teams Desktop.

Crear un novo equipo

Para crear un novo equipo:

  1. Seleccione o separador Equipos.
  2. Seleccione Unirse ou cree un equipo na parte inferior esquerda da pantalla.
  3. Seleccione Crear un equipo desde cero.
  4. Seleccione Público e dea un nome ao equipo. Neste exemplo, usariamos "Asociados de MSFT".
  5. Seleccione Crear.

Créase o novo equipo e aparece na pestana Equipos.

Crear un novo equipo

Crea unha aplicación Power Apps en Teams

Para crear unha aplicación Power Apps en equipos, necesitamos abrir Power Apps Studio en Teams como se mostra a continuación.

Crear unha Power App en Teams

  1. Selecciona Power Apps na lista de aplicacións e fixa-lo no panel esquerdo e, a continuación, selecciónao.

    Pin Power Apps en Teams

  2. Seleccione Comezar agora para crear a primeira aplicación.

  3. Seleccione o equipo para o que se vai crear esta aplicación— créase un ambiente Power Apps para ese equipo (hai un ambiente Power Apps por equipo).

  4. Mentres se crea o ambiente, peche o cadro de diálogo que di Preparando as cousas.

  5. Seleccione o separador Construír na parte superior e, en poucos segundos, a aplicación creada debería aparecer na lista.

  6. Abra a aplicación e observe que se crea no deseño da tableta/factor de forma por defecto.

    Deseño de tableta

  7. Insira un nome para a aplicación Exemplo de sesión persistente e seleccione Gardar.

    Garda unha aplicación Power Apps en Teams

    A aplicación créase cunha galería.

    A aplicación créase cunha galería

  8. Para crear unha nova táboa, seleccione Crear nova táboa.

  9. Insira Contas e seleccione Crear.

    Engadir o nome dunha táboa

  10. Engada dúas columnas: Teléfono con tipo de datos de teléfono e Cidade con tipo de datos de texto.

    Engadir columnas

    Engadir columnas de teléfono e cidade

  11. Engada datos de mostra ás tres columnas.

  12. Repita para engadir polo menos cinco rexistros.

  13. Seleccione Pechar.

    Seleccionar Pechar

    A táboa de contas engádese como táboa de datos

  14. Seleccione Vista en árbore > Seleccione BrowseGallery1 > Seleccione Contas como a orixe de datos.

    Seleccionar Contas como orixe de datos

Publicar a aplicación en Teams

  1. Seleccione Publicar en Teams.

    Seleccione a aplicación Power Apps en Teams

  2. Seleccione Seguinte.

    Seleccionar o botón Seguinte

  3. Seleccione + para engadir a aplicación á canle "Xeral".

    Engadir aplicación á canle

    Seleccione a canle

  4. Vaia ao equipo Exemplo de sesión persistente e observe que a aplicación Exemplo de sesión persistente aparece na parte superior como unha pestana.

    Navegar ao equipo

Proba do problema

  1. Abra a aplicación Exemplo de sesión persistente desde o equipo Exemplo de sesión persistente.

    Abrir a aplicación

  2. Seleccione Novo rexistro para crear unha nova conta na aplicación.

  3. Insira o nome e o número de teléfono

  4. Antes de inserir a Cidade e gardar o rexistro, cambie a unha pestana diferente (como Arquivos ou Wiki na parte superior ou a un equipo diferente) e logo volva á aplicación.

  5. Teña en conta que os datos introducidos nas dúas columnas xa non están dispoñibles na pantalla e pérdense

    Proba do problema

Solución: use as funcións SaveData() e LoadData()

Para resolver o problema anterior, usaremos as funcións LoadData() e SaveData(). Crearemos unha colección para os datos introducidos nun formulario como e cando se introduzan os datos e seguiremos gardando os datos na colección ata que o rexistro se confirme ou garde. Deste xeito, se o rexistro non se gardou e debemos cambiar de separador da pantalla por algún motivo, a colección tería os datos gardados que se cargarían unha vez que volvamos á aplicación. Tamén borraremos a colección unha vez gardado o rexistro para que a colección estea lista para capturar novos datos cando se cree o seguinte novo rexistro.

  1. Comece asegurándose de que os cambios que aplicamos só se aplican no caso dun novo rexistro. Entón, imos actualizar a variable newMode que se usará como condición no formulario de edición para descubrir que datos hai que amosar. Seleccione Novo disco e engada a seguinte fórmula na propiedade OnSelect do botón:

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

    Fórmula OnSelect

  2. A continuación, engadiremos os datos dos controis de entrada individuais a unha colección e logo gardaremos os datos nun ficheiro local desa colección. Seleccione a caixa de entrada de texto —no noso exemplo é a "DataCardValue1" do "Name_DataCard1" en "EditForm1" para o campo Nome— introduza a seguinte fórmula na propiedade OnChange do campo de entrada:

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

    Con este cambio, engadimos os datos a unha caché local para que se o usuario abandona a aplicación, non se perdan os seus datos.

    Crear unha colección

    Do mesmo xeito, introduza o seguinte código na propiedade OnChange para o Teléfono (DataCardValue2):

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

    E introduza o seguinte código na propiedade OnChange para a Cidade (DataCardValue3):

    Collect(colAccount {Column:"City", Value:Self.Value});
    SaveData(colAccount, "colAccount");
    
  3. Agora actualizaremos a aplicación OnStart para que, se hai datos gardados na colección, se carguen no inicio da aplicación.

    Vaia á Aplicación > propiedade OnStart e engada a seguinte fórmula:

    LoadData(colAccount,"colAccount", true)
    

    Inicio da aplicación

  4. A continuación, necesitamos actualizar a propiedade Predeterminada dos campos de datos para que cando a páxina se cargue unha vez que volvamos á aplicación, se hai datos na colección, debería mostrar os datos da colección por defecto.

    Seleccione o campo DataCard e actualice a propiedade Predeterminada da tarxeta de datos coa seguinte fórmula para os campos listados.

    Para o campo Nome, insira Name_DataCard1:

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

    Actualizar a propiedade predefinida

    Do mesmo xeito, introduza a seguinte fórmula na fórmula da propiedade Predeterminada para o Teléfono (Phone_DataCard1):

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

    E use a seguinte fórmula para a Cidade (City_DataCard1):

    If(
        newMode && !IsBlank(
            Last(
                Filter(colAccount, Column = "City")
            ).Value
        ),
        Last(
            Filter(colAccount, Column = "City")
        ).Value,
        If(newMode,Blank(), ThisItem.City)
    )
    
  5. Agora necesitamos limpar a colección en dous escenarios:

    1. Cando o usuario envía o formulario e os cambios gárdanse.
    2. Cando o usuario selecciona o botón cancelar para cancelar os cambios.

    Use a seguinte fórmula na propiedade OnSelect do botón Enviar.

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

    Enviar OnSelect

    Seleccione o botón Cancelar e introduza a seguinte fórmula:

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

    Cancelar fórmula

  6. Publique as aplicacións despois de facer todos os cambios anteriores seleccionando Publicar en Teams.

Probar a aplicación de novo

  1. Vaia ao equipo e execute a aplicación.

  2. Seleccione + Novo rexistro e engada o nome e os detalles do teléfono para o novo rexistro.

  3. Seleccione outra pestana para saír da aplicación.

  4. Volva á aplicación; mostra detalles da primeira conta.

  5. Agora, cando seleccionamos + Novo de novo, xa veremos os detalles do nome e do teléfono enchidos neses campos de entrada de texto. E podemos continuar engadindo a conta que estabamos engadindo antes de ter que saír da pestana da aplicación.

    Probar a aplicación de novo

Como usamos SaveData e LoadData na aplicación Inspección

No modelo de aplicación de mostra de inspección, usamos datos de carga e gardamos datos no formulario de inspección— se un usuario está no medio dunha inspección e se afasta das aplicacións en Teams (como enviar a alguén unha mensaxe), non queremos que perdan o seu lugar na inspección. Cando volve á pestana da aplicación en Teams, a aplicación dálle a opción de retomar a inspección en curso.

Consideracións

En Dataverse for Teams, hai algúns límites para as capacidades SaveData() e LoadData().

  • Límite de 1 MB en Teams Desktop.
  • Non funciona nun navegador.
  • As aplicacións no móbil están limitadas pola cantidade de almacenamento local dispoñible para a aplicación.

Nota

Pode indicarnos as súas preferencias para o idioma da documentación? Realice unha enquisa breve. (teña en conta que esa enquisa está en inglés)

Esta enquisa durará sete minutos aproximadamente. Non se recompilarán datos persoais (declaración de privacidade).