Variabili globali

Completato

Le variabili globali sono le variabili usate più comunemente grazie alla 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 di informazioni per l'utente

Uno schema progettuale comune nelle app è la personalizzazione dell'app. Una personalizzazione può essere semplice come la visualizzazione di un messaggio di benvenuto con il nome dell'utente in ogni schermata dell'app. Con Power Apps è possibile visualizzare un messaggio di benvenuto e ottenere il nome dell'utente in modo dichiarativo usando la formula seguente in un controllo Etichetta.

"Welcome " & User().FullName

Questa formula visualizza la stringa di benvenuto e quindi esegue una query su Azure Active Directory per la proprietà DisplayName dell'utente e la visualizza come testo. Se tuttavia si include la funzione in ogni schermata, ogni volta che viene aperta una schermata Power Apps deve eseguire una query sui dati direttamente da Microsoft Entra ID. In questo modo, vengono create chiamate ripetitive alla rete che rallentano l'app.

Un approccio migliore consiste nell'archiviare le informazioni in una variabile globale all'apertura dell'app e quindi fare riferimento a questa variabile in tutta l'app. A questo scopo, è possibile modificare la proprietà OnStart dell'app con la formula seguente.

Set(varUserDisplayName, User().FullName)

Per il controllo Etichetta, è ora necessario modificare la formula nel modo seguente.

"Welcome " & varUserDisplayName

Screenshot del codice e del messaggio corrispondente del passaggio precedente.

Questa formula restituisce lo stesso output della formula precedente, ma invece di dover tornare ad Microsoft Entra ID in ogni schermata, Power Apps può fare riferimento al valore archiviato nella variabile.

Rilevamento dello stato in una variabile

Adottando un approccio dichiarativo, è possibile mostrare o nascondere i controlli in base a una query per i dati. Ad esempio, in un'app per la gestione degli ordini del cliente è possibile includere un'icona di avviso visualizzata solo se il cliente ha più di tre fatture inevase. Oltre all'avviso, è possibile definire un requisito che impone di ottenere l'approvazione di un manager se il cliente vuole inviare un nuovo ordine quando ha più di tre fatture in inevase. Questo workflow di approvazione viene avviato quando l'utente selezionare un pulsante di approvazione.

Adottando un approccio dichiarativo, è possibile impostare la proprietà Visible per l'icona di avviso nel modo seguente.

CountRows(Filter(InvoiceEntity, CustomerNumber = ThisCustomersNumber 
And Status = "Outstanding")) > 3

Se il valore è true, l'icona viene visualizzata, mentre se è false, l'icona non viene visualizzata. Sarà quindi necessario ripetere la stessa formula nella proprietà Visible del pulsante di approvazione.

Il problema è che questa diventa una formula complessa da gestire in due posizioni diverse e la query genererà traffico di rete duplicato, per l'elaborazione nell'app e per l'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 la variabile per controllare la proprietà Visible di ogni controllo.

A questo 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. Il motivo è che questi 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 imposterà il tipo di variabile come Boolean e il valore della variabile su true o false in base al risultato della formula.

Piccole modifiche come questa possono migliorare le prestazioni dell'app e semplificarne la gestione. È consigliabile incorporare le variabili ogni volta che è necessario recuperare ripetutamente informazioni che non cambieranno durante l'uso.