Répondre à: Gérer la délégation

  • R3dKap

    Membre
    7 septembre 2023 à 8h40

    Hello Shadoks_,

    Si je comprends bien :

    • dans ton OnStart tu crées une collection en filtrant une liste SharePoint

    • sur un écran tu as une galerie branchée sur une liste SharePoint et tu souhaites filtrer les éléments de cette galerie pour n’afficher que ceux qui correspondent au contenu de ta collection à l’aide de l’opérateur “in

    Effectivement, cela te génère un avertissement de délégation : si la liste SharePoint qui alimente ta galerie a plus de 2000 éléments, tu risques fort d’avoir un filtrage incorrect car Power Apps va d’abord récupérer les 2000 premiers éléments de la liste SharePoint ET ENSUITE appliquer le filtrage basé sur ta collection (et donc il va ignorer toutes les lignes au-delà des 2000).

    Il n’y a pas de solution à ton problème tant que l’opérateur “in” n’est pas délégable (et ce n’est pas le cas aujourd’hui). Il faut donc que tu trouves le moyen de réduire le nombre d’éléments de ta galerie AVANT d’y appliquer le filtrage basé sur ta collection.

    Après, tu peux toujours utiliser cette solution de contournement, mais les perfs vont être toutes pourries (de mon point de vue c’est vraiment pas envisageable) :

    Clear(colDataGalerie);;nForAll(n    colGalerieOnStart As LoopItem;n    Collect(n        colDataGalerie;n        Filter(n            TaListeSharePoint;n            TaColonne = LoopItem.Value // Ou une autre colonne que 'Value' dans ta collection du OnStartn        )n    )n)

    Tiens-nous au jus… 😉

    CommentID=snmaEaed9bnGEe5, PostID=V2vbx9CLVuJQffX