Entender fontes de dados de aplicativos de tela

No Power Apps, a maioria dos aplicativos usa informações externas armazenadas em serviços de nuvem chamados Fontes de Dados. Um exemplo comum é uma tabela em um arquivo do Excel armazenado no OneDrive for Business. Os aplicativos acessam essas fontes de dados usando Conexões.

Este artigo discute os diferentes tipos de fontes de dados e como trabalhar com fontes de dados de tabela.

É fácil criar um aplicativo que executa ações básicas de leitura e gravação em uma fonte de dados. Mas, às vezes, você precisa de mais controle sobre como os dados fluem dentro e fora do seu aplicativo. Este artigo descreve como as funções Patch, DataSourceInfo, Validate e Errors fornecem mais controle.

Tipos de fontes de dados

As fontes de dados podem ser conectadas a um serviço de nuvem, ou elas podem ser locais para um aplicativo.

Fontes de dados conectadas

As fontes de dados mais comuns são tabelas, que podem ser usadas para recuperar e armazenar informações. Você pode usar conexões com fontes de dados para ler e gravar dados em pastas de trabalho do Microsoft Excel, listas criadas usando as Listas da Microsoft, bibliotecas do SharePoint, tabelas SQL e muitos outros formatos que podem ser armazenados em serviços de nuvem, como o OneDrive for Business, o DropBox e o SQL Server.

As fontes de dados diferentes de tabelas incluem email, calendários, Twitter e notificações, mas este artigo não aborda esses outros tipos de fontes de dados.

Fontes de dados locais

Ao usar os controles Galeria, Exibir formulário e Editar formulário, será fácil criar um aplicativo que lê e grava dados de uma fonte de dados. Para começar, leia o artigo Noções básicas sobre formulários de dados.

Quando você pede ao Power Apps para criar um aplicativo com base nos dados, esses controles serão usados. Nos bastidores, o aplicativo usa uma tabela interna para armazenar e manipular os dados provenientes da fonte de dados.

Um tipo especial de fonte de dados é Collection, que é local para o aplicativo e não apoiado por uma conexão a um serviço na nuvem, portanto, as informações não podem ser compartilhadas entre dispositivos para o mesmo usuário ou entre os usuários. As coleções podem ser carregadas e salvas localmente.

Tipos de tabelas

Tabelas internas para um aplicativo do Power Apps são valores fixos, assim como um número ou uma cadeia de caracteres é um valor. As tabelas internas não são armazenadas em qualquer lugar, elas existem apenas na memória do aplicativo. Você não pode modificar diretamente a estrutura e os dados de uma tabela. Em vez disso, o que você pode fazer é criar uma nova tabela por meio de uma fórmula: use essa fórmula para fazer uma cópia modificada da tabela original.

As tabelas externas são armazenadas em uma fonte de dados para recuperação e compartilhamento posteriores. O Power Apps fornece "conexões" para ler e gravar dados armazenados. Em uma conexão, você pode acessar várias tabelas de informações. Selecione quais tabelas usar em seu aplicativo e cada uma se tornará uma fonte de dados separada.

Para saber mais, Como trabalhar com tabelas entra em mais detalhes sobre tabelas internas, mas também se aplica a tabelas externas que residem em um serviço de nuvem.

Como trabalhar com tabelas

Você pode usar fontes de dados de tabela da mesma maneira que você usa uma tabela interna do Power Apps. Assim como uma tabela interna, cada fonte de dados tem registros, colunas e propriedades que podem ser usadas em fórmulas. Além disso:

  • A fonte de dados tem os mesmos nomes de colunas e tipos de dados da tabela subjacente na conexão.

    Observação

    Para fontes de dados do SharePoint e do Excel que contenham nomes de coluna com espaços, o Power Apps substituirá os espaços por "_x0020_". Por exemplo, "Column Name" no SharePoint ou no Excel aparecerá como "Column_x0020_Name" no Power Apps quando exibido no layout de dados ou usado em uma fórmula.

  • A fonte de dados é carregada automaticamente do serviço quando o aplicativo for carregado. Você pode forçar os dados a serem atualizados usando a função Refresh.

  • Conforme os usuários executam um aplicativo, eles poderão criar, modificar e excluir registros e enviar essas alterações de volta à tabela subjacente no serviço.

    • Os registros podem ser criados com as funções Patch e Collect.
    • Os registros podem ser modificados com as funções Patch, Update e UpdateIf.
    • Os registros podem ser criados com as funções Remove e RemoveIf.
    • Os erros ao trabalhar com uma fonte de dados estão disponíveis por meio da função Errors.
  • As funções DataSourceInfo, Defaults e Validate fornecem informações sobre a fonte de dados que pode ser usada para otimizar a experiência do usuário.

Como criar fontes de dados

O Power Apps não pode ser usado para criar uma fonte de dados conectada nem para modificar sua estrutura; a fonte de dados já deve existir em um serviço em algum lugar. Por exemplo, para criar uma tabela em uma pasta de trabalho do Excel armazenada no OneDrive, primeiro use o Excel Online no OneDrive para criar uma pasta de trabalho. Em seguida, crie uma conexão com ela em seu aplicativo.

No entanto, as fontes de dados de coleção podem ser criadas e modificadas dentro de um aplicativo, mas são apenas temporárias.

Exibir um ou mais registros

Fluxo de informações quando um aplicativo lê as informações em uma fonte de dados. O diagrama acima mostra o fluxo de informações quando um aplicativo lê as informações em uma fonte de dados:

  • As informações são armazenadas e compartilhadas por meio de um serviço de armazenamento (neste caso, as Listas da Microsoft ou o SharePoint Online).
  • Uma conexão torna essas informações disponíveis para o aplicativo. A conexão cuida da autenticação do usuário para acessar as informações.
  • Quando o aplicativo é iniciado ou a função Refresh é pressionada, as informações são retiradas da conexão para uma fonte de dados no aplicativo para uso local.
  • As fórmulas são usadas para ler as informações e expô-las em controles que o usuário pode ver. Você pode exibir os registros de uma fonte de dados usando uma galeria em uma tela e gravando a propriedade Items na fonte de dados: Gallery.Items = DataSource. Conecte controles da galeria à galeria usando a propriedade Default dos controles.
  • A fonte de dados também é uma tabela. Portanto, você pode usar Filter, Sort, AddColumns e outras funções para refinar e aumentar a fonte de dados antes de usá-la como um todo. Também é possível usar Lookup, First, Last e outras funções para trabalhar com registros individuais.

Modificar um registro

Na seção anterior, você viu como ler uma fonte de dados. Observe que as setas no diagrama acima são unidirecionais. As alterações em uma fonte de dados não são enviadas de volta pelas mesmas fórmulas com as quais os dados foram recuperados. Em vez disso, novas fórmulas são usadas. Geralmente, a tela usada para editar um registro é diferente da que procura registros, especialmente em um dispositivo móvel.

Observe que, para modificar um registro existente de uma fonte de dados, o registro deve ser originalmente proveniente da fonte de dados. O registro pode ter passado por uma galeria, uma variável de contexto e qualquer quantidade de fórmulas, mas a origem deve ser rastreada até a fonte de dados. Isso é importante porque informações adicionais são passadas com o registro que as identifica com exclusividade, garantindo que você modifique o registro correto.

Fluxo de informações para atualizar uma fonte de dados. O diagrama acima mostra o fluxo de informações para atualizar uma fonte de dados:

  • Um controle Editar formulário fornece um contêiner para os cartões de entrada, que são compostos por controles de entrada do usuário como um controle de entrada de texto ou um controle deslizante. As propriedades DataSource e Item são usadas para identificar o registro para editar.
  • Cada cartão de entrada tem uma propriedade Default, que, geralmente, é definida como o campo do registro ThisItem do formulário. Os controles no cartão de entrada terão então seus valores de entrada de Default. Normalmente, não é necessário modificar isso.
  • Cada cartão de entrada expõe uma propriedade Update. Essa propriedade mapeia a entrada do usuário para um campo específico do registro para gravar de volta na fonte de dados. Normalmente, não é necessário modificar isso.
  • Um controle Botão ou Imagem na tela permite que o usuário salve as alterações no registro. A fórmula OnSelect do controle chama a função SubmitForm para fazer esse trabalho. SubmitForm lê todas as propriedades Update dos cartões e usa isso para gravar na fonte de dados.
  • Às vezes, haverá problemas. Uma conexão de rede pode estar inativa ou uma verificação de validação é feita pelo serviço desconhecida pelo aplicativo. As propriedades Error e ErrorKind do controle de formulário disponibilizam essas informações para que você possa exibi-las para o usuário.

Para refinar ainda mais o controle sobre o processo, também é possível usar a função Patch e Errors. O controle Editar formulário expõe uma propriedade Updates para que você possa ler os valores dos campos no formulário. Você também pode usar essa propriedade para chamar um conector personalizado em uma conexão, ignorando completamente as funções Patch e SubmitForm.

Validação

Antes de fazer uma alteração em um registro, o aplicativo deve fazer o que for possível para certificar-se de que a alteração será aceitável. Há dois motivos para isso:

  • Comentários imediatos ao usuário. O melhor momento para corrigir um problema é exatamente quando ele ocorre, quando está fresco na memória do usuário. Literalmente, em cada toque ou pressionamento de tecla, um texto vermelho pode aparecer identificando um problema com sua entrada.
  • Menos tráfego de rede e menor latência de usuário. Mais problemas detectados no aplicativo significa menos conversas pela rede para detectar e resolver problemas. Cada conversa leva tempo durante o qual o usuário deve aguardar antes de prosseguir.

O Power Apps oferece duas ferramentas para validação:

  • A fonte de dados pode fornecer informações sobre o que é e o que não é válido. Por exemplo, os números podem ter valores mínimo e máximo e uma ou mais entradas podem ser necessárias. Você pode acessar essas informações com a função DataSourceInfo.
  • A função Validate usa essas mesmas informações para verificar o valor de uma única coluna ou de um registro inteiro.

Tratamento de erro

Ótimo, você validou o registro. Tempo para atualizar esse registro com Patch!

Mas, infelizmente, ainda pode haver algum problema. A rede está inativa, a validação no serviço falhou, ou o usuário não tem as permissões corretas, apenas citar alguns dos possíveis erros que seu aplicativo pode encontrar. Ele precisa responder adequadamente a situações de erro, fornecendo comentários ao usuário e um meio para que ele o utilize corretamente.

Quando ocorrem erros com uma fonte de dados, seu aplicativo automaticamente registra as informações do erro e as disponibiliza por meio da função Errors. Os erros estão associados aos registros com os problemas. Se o problema for algo que o usuário possa corrigir, como um problema de validação, ele poderá reenviar o registro e os erros serão cancelados.

Se um erro ocorrer quando um registro for criado com Patch ou Collect, não haverá nenhum registro para associar a um erro. Nesse caso, em branco será retornado por Patch e pode ser usado como o argumento de registro de Errors. Os erros de criação serão limpos com a próxima operação.

A função Errors retorna uma tabela de informações de erros. Essas informações poderão incluir as informações de coluna se o erro puder ser atribuído a uma determinada coluna. Use as mensagens de erro de nível de coluna em controles Rótulo que estão próximas de onde a coluna está localizada na tela de edição. Use as mensagens de erro de nível de registro nos casos em que a Coluna na tabela de erros esteja em branco, em um local próximo ao botão Salvar para todo o registro.

Como trabalhar com grandes fontes de dados

Quando estiver criando relatórios de fontes de dados grandes (talvez milhões de registros), será possível minimizar o tráfego de rede. Digamos que você queira relatar todos os clientes com um StatusCode "Platinum" na cidade de Nova York. E que a tabela Customers contenha milhões de registros.

Você não quer colocar esses milhões de clientes em seu aplicativo e, por isso, escolhe aqueles que deseja. O que você precisa é que essa escolha ocorra dentro do serviço de nuvem em que a tabela está armazenada e enviar somente os registros escolhidos pela rede.

Muitas, mas nem todas as funções que você pode usar para escolher registros podem ser delegadas, o que significa que elas serão executadas no serviço de nuvem. Você pode aprender como fazer isso lendo sobre Delegação.

Coleções

As coleções são um tipo especial de fonte de dados. Elas são locais para o aplicativo e não são apoiadas por uma conexão a um serviço na nuvem, portanto, as informações não podem ser compartilhadas entre dispositivos para o mesmo usuário ou entre os usuários. Elas funcionam como qualquer outra fonte de dados, com algumas exceções:

  • As coleções podem ser criadas dinamicamente com a função Collect. Elas não precisam ser estabelecidas antes do tempo, como fontes de dados com base em conexão.
  • As colunas de uma coleção podem ser modificadas a qualquer momento usando a função Collect.
  • As coleções permitem registros duplicados. Mais de uma cópia do mesmo registro pode existir em uma coleção. As funções como Remove vão operar na primeira correspondência que encontrarem, a menos que o argumento All seja fornecido.
  • Você pode usar as funções SaveData e LoadData para salvar e recarregar uma cópia da coleção. As informações são armazenadas em um local privado que outros usuários, aplicativos ou dispositivos não podem acessar.
  • Você pode usar os controles Exportar e Importar para salvar e recarregar uma cópia da coleção em um arquivo com o qual o usuário pode interagir.

Para obter mais informações sobre como trabalhar com uma coleção como uma fonte de dados, consulte criar e atualizar uma coleção.

As coleções normalmente são usadas para manter o estado global para o aplicativo. Consulte como trabalhar com variáveis para as opções disponíveis para gerenciar o estado.

Observação

Você pode nos falar mais sobre suas preferências de idioma para documentação? Faça uma pesquisa rápida. (Observe que esta pesquisa está em inglês)

A pesquisa levará cerca de sete minutos. Nenhum dado pessoal é coletado (política de privacidade).