BA-IT
Tous les articles
Power Apps 25 septembre 2025 2 min

Délégation Power Apps : dépasser la limite des 2 000 lignes

La délégation est probablement le concept le plus mal compris de Power Apps — et celui qui casse le plus d'applications en production. Voici comment la maîtriser concrètement.

Ce que fait vraiment la délégation

Quand vous écrivez un Filter ou un Sort dans Power Apps, deux scénarios sont possibles. Soit la source de données (SharePoint, Dataverse, SQL) sait exécuter l'opération de son côté et vous renvoie déjà le résultat filtré : c'est la délégation. Soit elle ne le peut pas, et Power Apps télécharge alors les lignes en local pour faire le tri lui-même — mais uniquement dans la limite du paramètre « Data row limit », plafonné à 2 000.

Le piège : l'application affiche des résultats, un simple triangle jaune vous prévient dans l'éditeur, et rien ne casse visiblement. Sauf que sur une liste de 3 000 collaborateurs, les 1 000 derniers ne seront jamais évalués. Vos utilisateurs voient une réponse fausse sans le savoir.

L'analogie du restaurant

Sans délégation, le serveur vous apporte tous les plats de la carte et vous triez vous-même les végétariens sur votre table — mais votre table n'a de la place que pour vingt plats. Avec délégation, vous demandez directement au chef de ne préparer que les plats végétariens : c'est lui qui filtre, à la source.

Sources délégables et sources qui ne le sont pas

Excel n'est pas une source délégable. Point. C'est acceptable pour un prototype ou une démo, jamais pour une application qui a vocation à dépasser 2 000 lignes.

Sources qui supportent la délégation en production :

  • SharePoint Lists (avec quelques limitations sur les colonnes complexes)
  • Microsoft Dataverse (le plus large support)
  • SQL Server
  • Salesforce

Refactoriser une formule non délégable

L'exemple classique : filtrer les collaborateurs dont le nom commence par « A ». Left() n'est pas délégable dans SharePoint, StartsWith() l'est.

// ❌ Non délégable — plafonné à 2 000 lignes
Filter(Collaborateurs, Left(Nom, 1) = "A")

// ✅ Délégable — traité côté SharePoint
Filter(Collaborateurs, StartsWith(Nom, "A"))

Autre cas fréquent : filtrer sur une année. Year() n'est pas délégable, une comparaison de dates l'est.

// ❌ Non délégable
Filter(Commandes, Year(DateCreation) = 2025)

// ✅ Délégable
Filter(
  Commandes,
  DateCreation >= Date(2025, 1, 1),
  DateCreation < Date(2026, 1, 1)
)

Aide-mémoire par source

SharePoint

  • Délégable : =, <>, <, <=, >, >=, Filter, Lookup, Sort, SortByColumns, StartsWith
  • Non délégable : Left, Right, Mid, IsBlank (sur texte), Year, Month, Day

Dataverse et SQL Server

Support de délégation plus large que SharePoint, notamment sur les fonctions texte et date. C'est en général le bon choix si votre volume dépasse quelques milliers de lignes ou si vos filtres sont complexes.

Méthode d'audit

  1. Passez sur chaque triangle jaune dans l'éditeur — aucun ne doit rester en production.
  2. Testez avec un jeu de données réaliste : injectez au moins 2 500 lignes, jamais 20.
  3. Documentez les compromis assumés (par exemple, un filtre local justifié par un volume borné).
  4. Pour les cas vraiment complexes, déportez le calcul dans Power Automate ou dans une vue pré-filtrée SharePoint.

En résumé

La délégation n'est pas un détail d'optimisation, c'est une condition de fiabilité. Une application Power Apps qui ignore la délégation est une application qui ment silencieusement à ses utilisateurs — jusqu'au jour où quelqu'un s'en rend compte, souvent trop tard.

Un projet Power Platform en tête ?

Cadrage, audit, développement ou déblocage d'urgence — parlons-en.

Contacter BA-IT