Si tuviera que elegir un solo concepto técnico que todo maker de Power Apps debería entender antes de construir su primera app seria, sería la delegación. No porque sea complejo — es bastante simple de entender — sino porque ignorarlo tiene consecuencias que no se ven hasta que es tarde: tu app funciona perfecto en desarrollo con 50 registros y falla silenciosamente en producción con miles.
Qué es la delegación
Cuando Power Apps ejecuta una consulta contra una fuente de datos, hay dos formas en que puede funcionar. En una consulta delegable, Power Apps envía la consulta a la fuente de datos (Dataverse, SQL Server, SharePoint), el servidor la procesa, y devuelve solo los resultados que cumplen los criterios. Esto funciona independientemente de cuántos registros haya — porque el servidor hace el trabajo.
En una consulta no delegable, Power Apps descarga registros de la fuente de datos al dispositivo del usuario y los filtra localmente. El problema: solo descarga hasta el límite de filas no delegables configurado en la app. Por defecto, ese límite es de 500 registros. Se puede subir hasta un máximo de 2.000 en los ajustes de la app, pero no más.
Por qué es un problema silencioso
Lo peligroso de la delegación no es que la app falle — es que la app parece funcionar correctamente. Si tienes 3.000 registros y haces una búsqueda no delegable, Power Apps descargará los primeros 500 (o 2.000 si lo has configurado), filtrará entre esos, y mostrará resultados. El usuario verá resultados y asumirá que son todos. Pero no lo son — los registros que no se descargaron simplemente no existen para la app.
No hay un mensaje de error. No hay un aviso al usuario. La app simplemente devuelve resultados parciales como si fueran completos. En una app de gestión de pedidos, eso puede significar que un usuario busca un pedido y no lo encuentra — no porque no exista, sino porque la consulta no fue delegable y el registro estaba fuera de los primeros 500.
Qué funciones son delegables (depende del data source)
No existe una lista universal de funciones delegables — depende de la fuente de datos. Y esta es una distinción importante.
Con Dataverse, la mayoría de operaciones comunes son delegables: Filter, Sort, Search, LookUp, y la mayoría de operadores de comparación funcionan en el servidor. Es la fuente de datos con mejor soporte de delegación en Power Apps.
Con SharePoint, la delegación es más limitada. Filtros con funciones de texto como Contains no son delegables (StartsWith sí lo es). Las búsquedas en campos de tipo lookup son limitadas. Las ordenaciones complejas pueden no delegarse. Las funciones de agregación no se delegan.
Con SQL Server, el soporte de delegación es amplio para operaciones comunes, similar a Dataverse.
La recomendación práctica: cuando uses una función en una fórmula de Power Apps, fíjate en la línea azul punteada que aparece debajo en el editor de fórmulas. Esa línea es el aviso de que la operación no es delegable. No la ignores.
Cómo diseñar para delegación
La delegación no es un problema que se arregla después — es algo que se diseña desde el principio. Algunas prácticas que aplico en todos mis proyectos: elegir la fuente de datos correcta (Dataverse tiene la mejor delegación), usar funciones delegables siempre que sea posible (Filter en vez de Search con SharePoint, StartsWith en vez de Contains), estructurar las consultas para que la parte delegable filtre primero y la no delegable opere sobre un conjunto ya reducido, y en casos donde necesitas operaciones no delegables sobre muchos registros, considerar vistas del lado del servidor o collections precargadas para conjuntos pequeños.
Por qué esto importa para la arquitectura
La delegación es una de las razones principales por las que la elección del data source importa tanto en Power Apps. Si sabes que tu app va a manejar miles de registros y necesitas búsquedas flexibles, Dataverse te da tranquilidad. Si eliges SharePoint para ahorrar en licencias, necesitas entender exactamente qué operaciones son delegables y diseñar la app alrededor de esas limitaciones. Es una decisión que afecta desde el día uno y que es cara de cambiar después.