Variáveis globais
As variáveis globais são as variáveis mais comumente usadas devido à sua flexibilidade. Depois de definir a variável, você poderá 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.
Como armazenar informações para o usuário
Um padrão de design comum em aplicativos é personalizar o aplicativo. Isso pode ser tão simples quanto dizer Bem-vindo e exibir o nome do usuário em cada tela do aplicativo. Com o Power Apps, você pode mostrar uma mensagem de boas-vindas e obter o nome do usuário de maneira declarativa usando a fórmula a seguir em um controle de Rótulo.
"Welcome " & User().FullName
Essa fórmula exibe a cadeia de caracteres de boas-vindas e, em seguida, consulta o Azure Active Directory para a propriedade DisplayName do usuário e a exibe como texto. Mas se você incluir essa função em cada tela, cada vez que uma delas for aberta, o Power Apps terá que consultar esses dados diretamente do Microsoft Entra ID. Isso cria chamadas repetitivas à rede que deixam seu aplicativo mais lento.
Uma abordagem melhor será 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 a mesma saída da fórmula anterior, mas, em vez de precisar voltar ao Microsoft Entra ID em todas as telas, o Power Apps poderá referenciar o valor armazenado na variável.
Acompanhamento de status em uma variável
Em uma abordagem declarativa, você pode ocultar ou mostrar controles com base em uma consulta de dados. Por exemplo, se você tiver um aplicativo para gerenciar os pedidos do cliente, você poderá ter um ícone de aviso que será exibido apenas se o cliente tiver mais de três faturas pendentes. Além do aviso, você poderá ter um requisito para obter a aprovação de um gerente, caso o cliente deseje enviar um novo pedido quando tiver mais de três faturas pendentes. Esse fluxo de trabalho de aprovação será iniciado pelo usuário pela seleção de um botão de aprovação.
Com uma abordagem declarativa, você definirá a propriedade Visível do ícone de aviso com a fórmula mostrada a seguir.
CountRows(Filter(InvoiceEntity, CustomerNumber = ThisCustomersNumber
And Status = "Outstanding")) > 3
Se isso for verdadeiro, o ícone será exibido e, se for falso, o ícone não será mostrado. Você repetirá essa mesma fórmula na propriedade Visível do botão de Aprovação.
O problema é que isso se torna uma fórmula complexa que você mantém em duas localizações diferentes, e essa consulta gerará um tráfego de rede duplicado, sendo processado no aplicativo e 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 Visível 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 Visível do ícone e do controle de botão como varOutstandingExceeded.
Nenhuma fórmula ou função adicional é necessária. Isso ocorre porque esses controles aceitam verdadeiro ou falso para a propriedade Visível, e a variável será verdadeira ou falsa. De acordo com a função Set na propriedade OnVisible da tela, o Power Apps definirá o tipo de variável como booliano e definirá o valor como verdadeiro ou falso com base no resultado da fórmula.
Pequenas alterações como essas melhoram o desempenho do aplicativo e simplificam sua manutenção. Você deverá incorporar variáveis a qualquer momento que esteja recuperando repetidamente informações que não serão alteradas enquanto estiverem em uso.