Por Randall Montoya
En la ocasión anterior hablamos sobre los límites y por qué es importante no excederse en la cantidad de registros. Ahora vamos a ver qué es la delegación.
Delegación
Supongo que te has preguntado alguna vez: “¿Qué significa esa advertencia de delegación?”, “¿No puedo simplemente ignorarla?”. Bueno… ¿por dónde empiezo aquí?
Dependiendo de las circunstancias, podrás ignorar o no esa advertencia (no lo estoy recomendando, solo intento ser claro en este punto). Esta advertencia indica que si tu fuente de datos excede los límites de la aplicación, puede que te genere problemas ya que esa parte de la fórmula de filtrado no funcionará correctamente.
Ejemplo # 1
Tienes una aplicación y necesitas mostrar todos los registros una tabla, decides usar la función CountRows, pero te aparece el siente mensaje

En este caso, el resultado de esa expresión puede que no sea la cantidad total de registros, sino el total de los registros a los que puede acceder nuestra aplicación (el límite de esta aplicación está en 500 registros).
Si mi fuente de datos tiene menos registros que el límite de la aplicación, no debería haber problema y podemos ignorar la advertencia. Sin embargo, si ese no es el caso, puede que estemos dejando registros fuera de la visualización y eso puede llegar a ser muy problemático.
En el ejemplo anterior, mi fuente de datos tiene más de 10,000 registros. Aunque establezca el límite en 2000, podré hacer la consulta solamente sobre menos de un 20% de la totalidad. Ahora pueden entender que puede ser un verdadero dolor de cabeza tener este tipo de situaciones.
Pero, ¿qué es la delegación? Para no entrar en mucho detalle, es la capacidad para decirle a tu fuente de datos que haga el trabajo por ti y te devuelva solo los 10 registros que en verdad necesitas de esos 10,000.
En Power Apps hay varias funciones que se pueden delegar y otras tantas que no; pero esto va a depender de la fuente de datos e incluso pueden llegar a cambiar con el tiempo. Si tienes dudas sobre cuáles sí y cuáles no, recomiendo que revises la documentación de Microsoft al respecto. Puedes hacerlo en el siguiente enlace.
Si la función que estás usando no permite delegación (que es cuando te da la advertencia), la fuente de datos te devolverá la cantidad máxima de registros que pueda y será tu aplicación la que aplique la función para reducirlos aplicando la función a todos los registros devueltos.
Ejemplo # 2
Tenemos una tabla con 5000 registros de personas. Queremos aplicar el siguiente filtro: Search (Personas, “Randall”, Nombre). Como Search no es delegable, la fuente de datos enviará el máximo de registros a la aplicación (500 registros generalmente) y será sobre estos 500 registros que la aplicación aplicará el Search, dejando fuera de la búsqueda 4500 registros.
Ya con estos aspectos claros, puedo darles unos consejos para evitar o por lo menos mitigar estos escenarios, pero eso será la próxima vez.