Guia Completo da Função Patch em Power Apps

Tempo de leitura:

4–6 minutes

Neste artigo vou mostrar-te como podes usar a função Patch do Power Apps, uma das mais utilizadas e importantes para poderes adicionar ou atualizar registos numa base de dados!

Em Power Apps, podes sempre usar o controlo de formulário, que de uma forma simplificada permite-te 1) ligar a uma base de dados, 2) selecionar os campos, e pressionar um botão através da função 3) SubmitForm para fazeres o “upload” de um registo ou alterar o mesmo numa base de dados.

Contudo se pretendes ter mais controlo ao nível de aspeto visual na tua aplicação, e acima de tudo para situações mais complexas, vais necessitar de saber trabalhar com a Função Patch.

Sintaxe da função:

Patch( DataSource, BaseRecord, ChangeRecord1 [, ChangeRecord2, … ])

A função Patch em Power Apps modifica ou cria um ou mais registos de uma base de dados, o que significa que podes usar em 2 funcionalidades.

  • Criar um registo: Quando usada com a função Defaults sobre o BaseRecord esta função permite criar um registo em branco na base de dados, caso não seja indicado nenhum valor para o registo.
  • Modificar um Registo: Quando é aplicado um registo específico BaseRecord que depois pode ser alterado no argumento do registo.

No cenário vamos ver vários exemplos para preencher um registo numa base de dados, em que temos vários tipos de colunas (Escolha, Pesquisa, Datas, Imagens para perceberes como funciona a função nestes contextos.

Cenário

No cenário tenho já uma aplicação com um ecrã ligado a uma base de dados de SharePoint. Que podes usar com outra base de dados.

Interface de edição no Power Apps mostrando campos para adicionar dados de jogadores, incluindo nome, apelido, posição, data de nascimento, idade, país, altura, status de internacional e clube.

No cenário tenho também já uma Galeria para mostrar os dados e um conjunto de controlos associados para cada campo que será preenchido na aplicação.

Ecrã de edição de informação do jogador no Power Apps, com campos para nome, apelido, posição, data de nascimento, idade, país, altura, status internacional e clube.

Inserir um botão para a função Patch

Vamos então agora iniciar a lógica, inserindo um botão que vai permitir executar a função Patch.

Interface do Power Apps mostrando o menu inserir com a opção de 'Botão' destacada, para adicionar um botão na aplicação.

Na propriedade OnSelect começamos a colocar a expressão Patch:

Patch(Jogadores; Defaults(Jogadores);{})

  • Jogadores: Base de Dados
  • Defaults (Jogadores ): Registo Default (Novo) na Base de dados
  • {}: Registo em Branco -> Esta opção só é possível porque a base de dados não contém nenhum campo obrigatório. Na função Patch, se a base de dados tiver um ou mais campos obrigatórios, deves já incluir os campos na criação do registo.
Interface de edição de registo em Power Apps, mostrando campos para informações de um jogador, incluindo nome, apelido, posição, data de nascimento, idade, país, altura, internacionalidade e clube, com um botão 'Guardar' e opçőes para adicionar imagem.

Esta é a lógica da função. O que se segue é apenas a introdução de informação para preencher os campos de acordo com os dados.

Preencher campos de texto

Para preencher campos de texto, basta colocar um valor de texto, uma string. Neste caso estamos a usar controlos de introdução de texto, mas podes colocar qualquer valor que seja texto.

Interface do Power Apps mostrando a função Patch, com campos de texto para inserir Nome e Apelido, além de opções para Posição, Data de Nascimento, Idade, País e um botão para Guardar.

Preencher campos escolha (Choice Column)

As colunas de escolha de valores, são consideradas colunas complexas pelo tipo de dados. Neste caso, uma coluna de Choice, tem um conjunto de valores, mas usando uma List Box por exemplo, basta aceder ao valor selecionado.

Captura de tela da edição de um formulário no Power Apps, mostrando campos de entrada como Nome, Apelido e Posição, além de uma lista de jogadores com informações sobre cada um.

Preencher campos de Data

Um campo de data apenas precisa de uma Data, que pode ser colocada de qualquer forma e feitio 😄.

Neste caso temos um controlo de seleção de data que é perfeito para preencher este campo.

Captura de tela do Power Apps mostrando a função Patch utilizada para adicionar ou atualizar um registro na base de dados. O painel exibe campos de entrada como Nome, Apelido, Posição, Data de Nascimento, Idade, País, Altura, Internacional e Clube, junto com um botão para 'Guardar'.

Preencher campos Numéricos

Temos no exemplo 2 campos numéricos. A idade, que está definida numa Caixa de Entrada de Texto e a altura, que está num controlo de slider.

A Idade, tem de ser convertida em número, uma vez que uma Caixa de Entrada de Texto devolve texto. O Controlo de Slider devolve naturalmente um valor.

Interface do Power Apps mostrando a lógica da função Patch com campos para inserir dados de um jogador, incluindo Nome, Apelido, Posição, Data de Nascimento, Idade, País, Altura e Clube.

Preencher Lista Pendente com Tabela

Uma lista pendente pode ter vários valores, como os valores uma coluna Choice, mas também pode ter uma tabela com registos.

O controlo de Lista Pendente do País tem os seguintes dados na propriedade Itens:

[“Portugal”; “Espanha”; “Itália”; “Alemanha”]

Que corresponde a uma tabela com apenas uma coluna.

Interface do Power Apps mostrando uma lista suspensa com opções de países: Portugal, Espanha, Itália e Alemanha, e um formulário para inserir dados como nascimento, idade, país, altura e informações de clube.

Para preencher este valor usamos a mesma logica, que foi colocada na Posição, mas temos agora de indicar o registo .Value

Tela do Power Apps mostrando a função Patch em uso, com campos para entrada de dados como Nome, Apelido, Data de Nascimento, Idade, País, Altura e Clube, incluindo botões para adicionar uma imagem e guardar os dados.

Preencher Valores Booleanos

O próximo valor do registo é um valor Booleano com um campo de Sim / Não. Neste caso apenas necessitamos de aplicar o valor do controlo.

Tela de edição da função Patch no Power Apps, mostrando campos para inserir informações de jogadores, como nome, posição, data de nascimento, idade, país, altura, status internacional e clube.

Preencher Colunas de Pesquisa (LookUp)

Uma coluna de pesquisa é provavelmente o tipo de coluna / campo mais complexo. Este tipo de campo depende da base de dados utilizada e como recorre a outra tabela temos de indicar, sobre a forma de registo qual o registo associado à coluna de pesquisa.

Clube: {

            Id: drp_Clube.Selected.ID;

            Value: drp_Clube.Selected.Clube

        }

Captura de tela da função Patch no Power Apps, mostrando campos de entrada para nome, apelido, posição, data de nascimento, idade e seleção de clube. Destaca a sintaxe da função e a ligação a uma tabela.

Preencher Coluna de Foto

Para preencher uma coluna de foto, temos de dar um valor de imagem. O controlo de imagem é ideal para colocar. No exemplo estou a usar o controlo AddMedia que permite adicionar uma foto do computador e usar a imagem.

Interface do Power Apps mostrando a função Patch em edição, com campos para entrada de dados como nome, apelido, posição, data de nascimento, idade, país, altura, internacionalidade e clube, além de um botão para adicionar imagem.

Para adicionar registos com a função Patch basta colocar os campos necessário para completar o registo na base de dados.

Alterar um Registo Existente

Para realizarmos a alteração a um registo já existente na Base de Dados o procedimento é semelhante, onde apenas temos de identificar o registo que pretendemos alterar. A sintaxe mantém-se igual apenas com a alteração do registo Base!

Patch( DataSource, BaseRecord, ChangeRecord1 [, ChangeRecord2, … ])

Armazenar o registo numa variável

Um dos métodos mais simples de identificar o registo base é através de uma variável que pode ser definida através de uma variável global ou local, conforme a preferência.

Set(varJogador; ThisItem)

Captura de tela do Power Apps mostrando a configuração da função Set para armazenar informações de um jogador ao pressionar um botão, com campos de entrada de dados destacados.

A opção ThisItem permite armazenar todo o registo na variável.

É possível confirmar os dados por exemplo através de uma etiqueta de texto.

Ecrã de edição do Power Apps com um campo de texto a mostrar o nome 'António' e a variável 'varJogador.Nome' destacada.

Definir a função para modificar o registo existente

Num novo botão vamos colocar a mesma função Patch apenas com a indicação do registo base diferente. Podemos fazer uma cópia do Botão original!

Interface do Power Apps mostrando a função Patch com campos para edição de registros, incluindo texto, data, seleção de clube e upload de imagem.

Alternativa à variável…

A função LookUp também é bastante utilizada nestes cenários, uma vez que podemos localizar o primeiro registo da tabela que satisfaz uma condição. Semelhante à função Vlookup no Excel!

LookUp(Jogadores; ID = gal_Jogador.Selected.ID).Nome

No exemplo a função LookUp localiza o registo, mas como estamos a testar numa etiqueta de texto, temos de escolher o campo a mostrar na caixa de texto.

Tela do Power Apps mostrando a informação de um jogador com campos de texto e botões para atualizar e guardar.

Na função Patch apenas necessitamos do registo.

Captura de tela do editor Power Apps mostrando a sintaxe da função Patch em ação, com exemplos de campos para atualização de registros, incluindo nome, data e outros detalhes.

Assim com a função Patch é possível atualizar registos ou criar novos numa Base de Dados!

Próximo artigo:

Artigo Anterior:


Comments

Leave a Reply

Discover more from Exceldriven

Subscribe now to keep reading and get access to the full archive.

Continue reading