Variabili globali
Le variabili globali sono le variabili usate più di frequente a causa della loro flessibilità. Dopo aver impostato la variabile, è possibile farvi riferimento o aggiornarla in tutta l'app. In questo modo, è possibile evitare query ripetitive per ottenere le stesse informazioni, ricavare le informazioni necessarie in modo imperativo o talvolta semplicemente usarle come segnaposto.
Archiviazione delle informazioni per l'utente
Un modello di progettazione comune nelle app è la personalizzazione. Ad esempio, è possibile visualizzare un messaggio di benvenuto che include il nome dell'utente in ogni schermata. In Power Apps è possibile recuperare il nome dell'utente in modo dichiarativo usando la formula seguente in un controllo Etichetta:
"Welcome " & User().FullName
Questa formula visualizza la stringa Welcome e quindi esegue una query in Azure Active Directory per la proprietà DisplayName dell'utente e la visualizza come testo. Tuttavia, se si include tale funzione in ogni schermata, ogni volta che si apre una schermata di Power Apps deve eseguire direttamente query su tali dati dall'ID Microsoft Entra. In questo modo si creano chiamate ripetitive alla rete che rallentano l'app.
Un approccio migliore consiste nell'archiviare tali informazioni in una variabile globale all'apertura dell'app e quindi fare riferimento a tale variabile nell'intera app. A tale scopo, è possibile modificare la proprietà OnStart dell'app con la formula seguente.
Set(varUserDisplayName, User().FullName)
Ora, per il controllo Etichetta, è consigliabile modificare la formula come segue.
"Welcome " & varUserDisplayName
Questa formula consente di ottenere lo stesso output della formula precedente, ma invece di dover tornare a Microsoft Entra ID in ogni schermata, Power Apps può fare riferimento al valore archiviato nella variabile.
Monitoraggio dello stato in una variabile
In un approccio dichiarativo, è possibile nascondere o visualizzare i controlli in base a una query sui dati. Ad esempio, se si dispone di un'app per la gestione degli ordini del cliente, potrebbe essere presente un'icona di avviso che viene visualizzata solo se il cliente ha più di tre fatture in sospeso. Oltre all'avviso, potrebbe essere necessario ottenere l'approvazione da un responsabile se il cliente vuole inviare un nuovo ordine quando ha più di tre fatture in sospeso. Questo flusso di lavoro di approvazione inizia dall'utente selezionando un pulsante di approvazione.
Con una mentalità dichiarativa, imposteresti la proprietà Visible per l'icona di avviso al seguente valore.
CountRows(Filter(InvoiceEntity, CustomerNumber = ThisCustomersNumber
And Status = "Outstanding")) > 3
Se è vero, l'icona viene visualizzata e, se è falso, l'icona non viene visualizzata. Ripetere quindi la stessa formula nella proprietà Visible del pulsante Approvazione.
Il problema è che si tratta di una formula complessa gestita in due posizioni diverse e che la query genererà traffico di rete duplicato, elaborazione nell'app ed elaborazione nell'origine dati.
Un approccio migliore consiste nell'eseguire la chiamata complessa una sola volta, archiviare il risultato in una variabile e quindi usare tale variabile per controllare la proprietà Visible di ogni controllo.
A tale scopo, configurare la proprietà OnVisible della schermata per impostare la variabile.
Set(varOustandingExceeded, CountRows(Filter(InvoiceEntity, CustomerNumber =
ThisCustomersNumber And Status = "Outstanding")) > 3)
La variabile varOutstandingExceeded è true o false in base al risultato della formula. Impostare ora la proprietà Visible dell'icona e del controllo pulsante su varOutstandingExceeded.
Non sono necessarie formule o funzioni aggiuntive. Ciò è dovuto al fatto che tali controlli accettano true o false per la proprietà Visible e la variabile sarà true o false. In base alla funzione Set nella proprietà OnVisible della schermata, Power Apps imposta il tipo di variabile su Boolean e imposta il valore su true o false in base al risultato della formula.
Piccole modifiche come questa rendono l'app più efficiente e più facile da gestire. È consigliabile incorporare le variabili ogni volta che si recuperano ripetutamente informazioni che non cambieranno durante l'uso.