💡 Introducción
¿Alguna vez has visto un triángulo amarillo de advertencia en tus fórmulas y has notado que tu aplicación no muestra todos los registros de tu base de datos? Ese es el famoso problema de la delegación. En Power Apps, la delegación es la capacidad de la aplicación de «delegar» el procesamiento de datos al origen (como SQL o Dataverse) en lugar de traer todos los datos al dispositivo del usuario. Entender este concepto es lo que diferencia a una app de juguete de una solución empresarial robusta.
💻 Entendiendo los Límites: ¿Por qué es crítica la delegación?
Cuando trabajamos con fuentes de datos grandes, Power Apps no puede descargar millones de filas por razones de memoria y rendimiento. Por defecto, el límite de filas no delegables es de 500 (ajustable hasta 2,000). Si usas una función que no es delegable, Power Apps solo analizará los primeros registros y descartará el resto, lo que genera resultados incompletos y errores de lógica.
🛠️ Funciones Comunes y su Estado de Delegación
No todas las funciones se comportan igual. Aquí una comparativa de las más usadas en orígenes de datos populares (Dataverse, SQL, SharePoint):
| Función | ¿Es Delegable? | Notas |
| Filter | ✅ Sí | Siempre que el operador (como =, >) sea compatible. |
| Sort / SortByColumns | ✅ Sí | Ideal para organizar listas grandes en el servidor. |
| Search | ⚠️ Parcial | Delegable en Dataverse y SQL, pero no en SharePoint. |
| LookUp | ✅ Sí | Muy eficiente para encontrar un registro único. |
| GroupBy / Distinct | ❌ No | Estas funciones suelen requerir procesamiento local. |
💻 Estrategias para Evitar el «Triángulo Amarillo»
- Usa los tipos de datos correctos: Las columnas de tipo String son más fáciles de filtrar que las columnas de tipo Choice o Lookup en ciertos conectores.
- Filtros del lado del servidor: Diseña tus consultas para que el origen de datos haga el trabajo pesado. Por ejemplo, en lugar de traer todo y filtrar en la app, usa
Filter(Origen, Estatus = "Activo"). - Colecciones Inteligentes: Si necesitas usar funciones no delegables, intenta filtrar los datos primero mediante una función delegable y guarda ese subconjunto (menor a 2,000 filas) en una Collection.
✍️ Mini Ejercicio Práctico
Imagina que tienes una tabla en SharePoint con 10,000 registros de «Ventas» y necesitas mostrar solo las ventas mayores a $500 realizadas por el usuario actual.
Forma Incorrecta (No delegable/Lenta): Filter(Ventas, Valor > 500 && 'Creado por'.Email = User().Email)
Nota: Dependiendo del conector, el manejo de objetos complejos como ‘Creado por’ puede causar problemas si no se hace con cuidado.
Forma Correcta (Delegable):
- En la propiedad
OnStartde tu App, guarda el correo del usuario:Set(varUserEmail, User().Email); - En el
Itemsde tu Galería, usa:Filter(Ventas, Valor > 500 && CorreoVendedor = varUserEmail)(Asumiendo que CorreoVendedor es una columna de texto simple).
📚 Fuentes Consultadas
- Documentación oficial: Descripción de la delegación en aplicaciones de lienzo
- Límites de datos y configuración del límite de delegación
📌 Conclusión
La delegación no es un error de Power Apps, es una protección de rendimiento. Al aprender qué funciones delegar, garantizas que tu aplicación sea rápida y que los datos mostrados sean siempre veraces, sin importar si tu base de datos tiene 100 o 100,000 registros.

Deja un comentario