Variáveis globais
As variáveis globais são as variáveis mais usadas devido à flexibilidade. Depois de definir a variável, você pode referenciá-la ou atualizá-la em todo o aplicativo. Isso permite que você evite uma consulta repetitiva para as mesmas informações, para compor as informações de que você precisa de maneira imperativa ou, às vezes, apenas como um espaço reservado.
Armazenando informações para seu usuário
Um padrão de design comum em aplicativos é a personalização. Por exemplo, você pode exibir uma mensagem de boas-vindas que inclui o nome do usuário em cada tela. No Power Apps, você pode recuperar o nome do usuário de forma declarativa usando a seguinte fórmula em um controle label:
"Welcome " & User().FullName
Essa fórmula exibe a cadeia de caracteres Bem-vinda e, em seguida, consulta o Azure Active Directory para a propriedade DisplayName do usuário e a exibe como texto. Porém, se você incluir essa função em cada tela, cada vez que uma tela é aberta, o Power Apps terá que consultar esses dados diretamente do Microsoft Entra ID. Isso cria chamadas repetitivas para a rede que atrasam seu aplicativo.
Uma abordagem melhor seria armazenar essas informações em uma variável global quando o aplicativo for aberto e, em seguida, referenciar essa variável em todo o aplicativo. Você pode fazer isso modificando a propriedade OnStart do aplicativo com a fórmula a seguir.
Set(varUserDisplayName, User().FullName)
Agora, para o controle de Rótulo, altere a fórmula para a mostrada a seguir.
"Welcome " & varUserDisplayName
Essa fórmula gera o mesmo resultado da fórmula anterior, mas, em vez de ter que retornar ao Microsoft Entra ID em cada tela, o Power Apps pode referenciar o valor armazenado na variável.
Monitorando o status em uma variável
Em uma mentalidade declarativa, você pode ocultar ou mostrar controles com base em uma consulta para dados. Por exemplo, se você tiver um aplicativo para gerenciar os pedidos do cliente, poderá ter um ícone de aviso exibido somente se o cliente tiver mais de três faturas pendentes. Além do aviso, você pode ter um requisito para obter aprovação de um gerente se o cliente quiser enviar um novo pedido quando tiver mais de três faturas pendentes. Esse fluxo de trabalho de aprovação é iniciado pelo usuário selecionando um botão de aprovação.
Com uma mentalidade declarativa, você definiria a propriedade Visible do ícone de aviso como segue.
CountRows(Filter(InvoiceEntity, CustomerNumber = ThisCustomersNumber
And Status = "Outstanding")) > 3
Se isso for verdade, o ícone será exibido e, se for falso, o ícone não será exibido. Em seguida, você repetiria a mesma fórmula na propriedade Visible do botão Aprovação.
O problema é que isso se torna uma fórmula complexa que você mantém em dois locais diferentes e essa consulta gerará tráfego de rede duplicado, processamento no aplicativo e processamento na fonte de dados.
Uma abordagem melhor é apenas executar a chamada complexa uma vez, armazenar o resultado em uma variável e, em seguida, usar essa variável para controlar a propriedade Visible de cada controle.
Para fazer isso, configure a propriedade OnVisible da tela para definir a variável.
Set(varOustandingExceeded, CountRows(Filter(InvoiceEntity, CustomerNumber =
ThisCustomersNumber And Status = "Outstanding")) > 3)
A variável varOutstandingExceeded é verdadeira ou falsa com base no resultado da fórmula. Agora defina a propriedade Visible do ícone e do controle do botão para varOutstandingExceeded.
Nenhuma fórmula ou funções adicionais é necessária. Isso ocorre porque esses controles aceitam true ou false para a propriedade Visible e a variável será verdadeira ou falsa. Com base na função Set na propriedade OnVisible da tela, o Power Apps definirá o tipo de variável como booliano e definirá o valor como true ou false com base no resultado da fórmula.
Pequenas alterações como essa tornam seu aplicativo mais eficiente e mais fácil de manter. Você deve incorporar variáveis sempre que estiver recuperando repetidamente informações que não serão alteradas enquanto as estiver usando.