Una operación delegable como un filtro, búsqueda o clasificación puede ser enviada directamente a la fuente de datos (tablas de SharePoint, Dataverse), para que se ejecute allí, en vez de traer todos los datos a la app y procesarlos localmente.
Si una operación es delegable, se pueden trabajar con miles de registros, en caso de trabajar con operaciones no delegables, solo se manejará una cantidad limitada de registros, que puede ser entre 500 y 2,000 registros, se aplicará el filtro solo sobre estos registros, esto puede causar que haya resultados incorrectos en las búsqueda o falta de registros.
Por ejemplo, si tenemos una lista de SharePoint llama Productos con 10,000 registros y realizamos la siguiente búsqueda:
Delegable
Filter(Productos, Precio > 100)
El resultado será correcto ya que la operación se realizará directamente sobre la lista de SharePoint.
No delegable
Filter(Productos, "Laptop" in Articulo)
Solo se llamaran localmente entre 500 y 2,000 registros, y sobre estos se realizará el filtro, si el registro buscado está en el registro 3,000, no se visualizará en el filtro.
Para saber si la operación es no delegable, se visualizará un triángulo azul, al pasar sobre él, se visualizará la leyenda “The highlighted part of this formula might not work correctly on large data sets.”.
Las funciones delegables en lista de SharePoint son: Filter, Sort, StartsWith, y comparaciones simples (=, >, <).
Las funciones no delegables en lista de SharePoint son: in, Len, Mid, Left, Right, IsMatch.
Lo recomendable para uns búsqueda delegable, es utilizar StartWith():
Filter(
Sort(Productos, Folio, SortOrder.Descending),
StartsWith(Articulo, TextInput_buscar.Text)
)