Avvisi di delega, limiti e funzioni non delegabili

Completato

Power Apps usa oggetti visivi per aiutare i creatori di app a comprendere quando è in atto la delega. Il portale di creazione include inoltre un'impostazione che è possibile modificare per aumentare la quantità di dati restituiti quando la delega non è possibile.

Avvisi di delega

Ogni volta che si usa una funzione non delegabile, Power Apps la sottolinea con una riga blu e visualizza un triangolo di avviso giallo, come illustrato di seguito.

Screenshot della funzione non delegabile con una riga blu e un triangolo di avviso giallo.

Si tratta di un indicatore visivo che segnala chiaramente che la delega non è in esecuzione e che, pertanto, potrebbero non essere visualizzati tutti i dati. È importante comprendere alcuni aspetti di questo indicatore visivo.

  • Power Apps mostra questo avviso indipendentemente dalle dimensioni dell'origine dati. Anche se l'origine dati include solo alcuni elementi e la delega non causa tecnicamente un problema, l'avviso viene comunque visualizzato. Tenere presente che per impostazione predefinita vengono restituiti i primi 500 elementi e che vengono elaborati in locale. L'avviso compare ogni volta che la formula non è stata delegata.

  • L'indicatore di avviso elabora solo il primo elemento che causa la delega. Nello screenshot precedente solo il campo sottolineato "FirstName" è in blu, poiché si tratta del primo elemento che ha causato la delega. Anche "LastName" attiva la delega in questo scenario. Ciò può generare confusione perché gli utenti tentano di capire quale sia la differenza tra FirstName e LastName anziché risolvere il problema reale, rappresentato dalla funzione Search. Se si riscontra troppa confusione, modificare la formula. Ciò consente di eseguire la convalida e il primo campo, qualunque esso sia, mostra il problema.

    Screenshot dell'indicatore di avviso per il primo elemento che ha causato la delega.

  • Questo indicatore visivo è presente solo quando ci si trova nel Maker Portal per compilare l'app. Quando un utente esegue l'app, non riceve alcuna notifica relativa alla mancata esecuzione della delega e alla possibilità che vengano visualizzati solo risultati parziali. Tenere presente questo aspetto quando si progetta l'app ed eseguirne la compilazione di conseguenza.

Modifica del numero di record restituiti quando la delega non è disponibile

Quando una formula non può essere delegata all'origine dati, per qualsiasi motivo, per impostazione predefinita Power Apps recupera i primi 500 record da tale origine dati ed elabora la formula in locale. La correzione di questo limite da 1 a 2.000 è supportata in Power Apps e può essere eseguita in Impostazioni avanzate.

  1. Nel portale di creazione selezionare File nell'angolo in alto a sinistra.

  2. Nel menu a sinistra selezionare Impostazioni.

  3. In Impostazioni app selezionare Impostazioni avanzate.

  4. Impostare Limite per le righe di dati per le query non delegabili su un valore qualsiasi compreso tra 1 e 2.000.

  5. Dopo avere impostato il limite, selezionare la freccia in alto a sinistra per salvare la modifica apportata e tornare a Maker Portal.

Screenshot di Impostazioni avanzate in Impostazioni di Power Apps con il limite per le righe di dati impostato.

Esistono due motivi principali per cui modificare questo limite.

  • Aumentare il limite, qualora si usino dati per cui 500 record non sono sufficienti, mentre lo sono meno di 2.000 record. Se, ad esempio, si ha un elenco di clienti e si è certi che non si avranno mai più di 1.000 clienti, è possibile progettare l'app in modo da ignorare la delega e restituire sempre tutti i 1.000 record.

  • Ridurre il limite a 1 o 10 per facilitare la fase di test. In caso di scenari in cui non si è certi se una funzione non delegabile possa causare problemi con l'app, è possibile ridurre il limite e quindi procedere con il test. Se il limite è impostato su 1 e la raccolta presenta solo un record, si può essere certi di avere una funzione non delegabile. Ciò consente di velocizzare il processo di risoluzione dei problemi.

Funzioni non delegabili

Nell'unità precedente sono state illustrate le funzioni delegabili e si è appreso come interagiscono con le varie origini dati. Le altre funzioni non trattate in tale unità non sono delegabili. Di seguito sono riportate le funzioni rilevanti che non supportano la delega.

  • First, FirstN, Last, LastN

  • Choices

  • Concat

  • Collect, ClearCollect (nessuna di queste funzioni restituisce un avviso di delega, ma non sono delegabili)

  • CountIf, RemoveIf, UpdateIf

  • GroupBy, Ungroup

Tutte queste funzioni non sono delegabili. Pertanto, aggiungendole a una formula, è possibile usare una funzione precedentemente delegabile e renderla non delegabile, come illustrato nell'esempio precedente.

Funzioni delegabili parzialmente supportate

Le funzioni di modifica della forma della tabella riportate di seguito sono considerate parzialmente delegabili. Ciò vuol dire che le formule nei relativi argomenti possono essere delegate. L'output di queste funzioni è tuttavia soggetto al limite di record di non delega.

  • AddColumns

  • DropColumns

  • ShowColumns

  • RenameColumns

Un modello comune consiste nell'usare AddColumns e LookUp per unire le informazioni di una tabella con quelle di un'altra, operazione comunemente nota come join quando si parla di database. Ad esempio:

AddColumns( Products, "Supplier Name", LookUp( Suppliers,
Suppliers.ID = Product.SupplierID ).Name )

Anche se Products e Suppliers possono essere origini dati potenzialmente delegabili e la funzione LookUp rientra nella categoria delle funzioni delegabili, la funzione AddColumns possiede la delegabilità parziale. Il risultato dell'intera formula rimane pertanto vincolato al segmento iniziale dell'origine dati Products.

Sebbene la funzione LookUp e l'origine dati associata consentano la delega, facilitando la scoperta dei Suppliers in un vasto set di dati, tale funzione viene fornita con un avvertimento. LookUp richiede query all'origine dati separate per ciascuno dei record iniziali in Products, con conseguente aumento dell'attività di rete. Tuttavia, se il set di dati Suppliers è relativamente piccolo e rimane stabile, un approccio alternativo prevede la memorizzazione nella cache dell'origine dati all'interno dell'app. L'utilizzo di una chiamata Collect durante l'inizializzazione dell'app (utilizzando OnVisible nella schermata di apertura) consente le successive operazioni di LookUp direttamente all'interno dell'origine dati memorizzata nella cache, mitigando così le vibrazioni della rete.