Power Apps di default limita gli item ritornati da una query fatta su un data source a 500 items o righe.
Tramite una feature sperimentale raggiungibile dal menu File / Impostazioni app / Funzionalità sperimentali è possibile aumentare questo limite fino a 2000:
limite delle query
limite delle query
Per attivare il limite il flag va impostato su Attiva.
Questo limite è stato introdotto per questioni di performance e perché non avrebbe senso scaricare sul client delle tabelle con centinaia di migliaia o milioni di elementi.

Rimane il problema di come leggere dei data sources che contengono più di 2000, in quanto verrebbero ritornati solo i primi 2000.
In questo caso bisogna distinguere tra query delegabili (delegable), che vengono eseguite sulla sorgente dati e quelle non, dove vengono scaricati tutti i dati sul client e poi filtrati (quindi sottoposti al limite di 2000).

La prima cosa è verificare se il data source supporta le query delegabili, ad esempio il connettore per SharePoint le supporta, idem quello per SQL Server la lista completa si trova qui Delegable data sources.
Il secondo passo è verificare se la query contiene solo istruzioni e operatori delegabili. Attenzione che le istruzioni e gli operatori supportati dipendono dal data source, vedi Delegable data sources.

Ad esempio il data source per SharePoint supporta l'istruzione Filter e SortByColumns.
Questa è un esempio di query:

Power Apps

SortByColumns(
  Filter(
    MioDataSourceSP;
    TextSearch1.Text in Title && AnnoRiferimento = DropdownAnno1.Selected.Anno 
  );
  "Title"; 
  If(SortDescending1; Descending; Ascending)
)
che però non è delegabile in quanto usa l'operatore in (TextSearch1.Text in Title) che non è supportato dal data source SharePoint.
L'editor evidenzia questa situazione con una icona blu:
evidenza di una query non delegabile
evidenza di una query non delegabile
per rendere la query delegabile dovremmo cabiarla per usare l'operatore StartsWith supportato dal data source:

Power Apps

SortByColumns(
  Filter(
    MioDataSourceSP;
    StartsWith(Title; TextSearch1.Text) && AnnoRiferimento = DropdownAnno1.Selected.Anno 
  );
  "Title"; 
  If(SortDescending1; Descending; Ascending)
)
ovviamente non da gli stessi risultati della precedente a parità di input... ma è un ragionevole compromesso che permette di superare il limite di 2000.
Tags:
Office 36510 Power Apps26 SharePoint498 SharePoint Online75 SQL Server100
Potrebbe interessarti anche: