opération interdite – dépasse le seuil d'affichage de liste

Étiquetté : , ,

  • opération interdite – dépasse le seuil d'affichage de liste

    Posté par David RUCHE sur 30 décembre 2021 à 16h28

    Bonjour,

    c’est mon 1er post sur ce nouveau site PPFC (j’avais fait 2 demandes sur la même appli en cours de test sur le précédent site web )

    Dorénavant, sur les smartphones l’utilisant en test, j’ai le message ci-dessous (5-6 boites à fermer avec une croix dès que j’ouvre le “browse screen” de ma power app:

    Ce n’est pas bloquant, mais c’est pénible si je veux l’utiliser en production.

    je suppose que ça vient du fait qu’une liste “producteurs” dépasse 5000 éléments (même si j’ai mis des formules pour la fitlrer en fonction du choix dans une autre liste). D’ailleurs j’ai ça sur la preview dans l’appli web:

    En mode web, je n’ai pas ces popup.

    Comment faire pour les éviter sur les smartphones ?

    Et mieux: y a-t-il une pratique simple pour permettre de gérer plus de 5000 éléments dans une liste (ex: un lien décrivant la technique que vous recommanderiez ?)

    Merci d’avance!

    David

    PostID=hGIqUSD1Wol8L6J

    David RUCHE a répondu Il y a 11 mois, 3 semaines 1 Membre · 12 Réponses
  • 12 Réponses
  • R3dKap

    Membre
    3 janvier 2022 à 10h18

    Salut @David RUCHE,

    Laisse-moi faire quelques tests de mon côté et je reviens vers toi… 🙂

    J’ai justement sous la main une liste de 40 000 entrées que je vais pouvoir utiliser pour les tests…

    CommentID=2oDAqx2eAPwgke9, PostID=hGIqUSD1Wol8L6J

  • R3dKap

    Membre
    3 janvier 2022 à 10h44

    Alors chez moi tant que la galerie est connectée directement à la source de données sans filtre, y’a pas de soucis. Evidemment je n’aurais accès qu’à max. 2000 éléments.

    Donc, ton soucis doit provenir du filtre. Est-ce que tu peux me mettre une capture de ta Gallery.Items ?

    Tu as probablement utilisé la fonction Search(). Or elle n’est pas délégable et tu auras donc toujours le warning. Il faudrait que tu fasses plutôt :

    Filter(TaDatasource, StartsWith(TextInputSearch.Text, NomDuCentre))

    CommentID=XxXWREhYt6A6Xxb, PostID=hGIqUSD1Wol8L6J

  • David RUCHE

    Membre
    3 janvier 2022 à 13h44

    Bonjour Emmanuel, et merci pour tes réponses. Je viens de regarder (capture), et ma formule ne contient pas de Search(). C’est:

    Sort(Filter([@Astreintes] ; StartsWith(Centre.Value ;TextSearchBox1.Text)); Créé; If(SortDescending1;Descending;Ascending))

    Mais en fait je crois que c’est la DetailScreen qui pose problème (désolé je ne l’avais pas remarqué dans mon post initial), car là j’ai un message en rouge, et qui correspond à ce que j’ai sur le smartphone quand j’ouvre DetailScreen (et non pas BrowseSreen, désolé pour la confusion):

    CommentID=90ptHRKetR9pJv7, PostID=hGIqUSD1Wol8L6J

  • R3dKap

    Membre
    3 janvier 2022 à 14h34

    Alors en fait c’est le rajout du Sort() autour du Filter() qui crée le problème. Vu la taille de la liste tu ne pourras pas combiner les 2 directement sur le Items de ta galerie.

    En solution de contournement (que je viens de tester chez moi), il faut procéder en 2 étapes :

    1. Ajoute une ComboBox1 sur ton écran, en dehors du formulaire

    2. Sur ComboBox1.Items ET sur ComboBox1.DefaultSelectedItems tu mets ton Filter() sans le Sort()

    3. Sur Galerie.Items tu mets le Sort() avec ComboBox1.SelectedItems en premier paramètre

    4. Tu masques ComboBox1

    Et voilàaaa 😄

    CommentID=eVriknCIDeeEsdS, PostID=hGIqUSD1Wol8L6J

  • David RUCHE

    Membre
    3 janvier 2022 à 16h46

    merci! ça règle bien le problème (triangle jaune) de la BrowseGallery. Par contre pour le problème (rond rouge) du DetailForm1 (mentionné plus haut), quelle manip faire à ton avis stp ? (cf message d’erreur en haut de la capture)

    CommentID=y0wnqVm7G3KaNVe, PostID=hGIqUSD1Wol8L6J

  • R3dKap

    Membre
    3 janvier 2022 à 21h08

    Quelles sont les caractéristiques de ta colonne Code producteur ?

    Parce-que j’ai essayé de reproduire ton cas de figure en ajoutant une colonne Choice à ma liste de 40 000 entrées et j’ai généré l’application. J’ai pas de soucis sur ma colonne Choice

    CommentID=n9bBy4zEbjsfJiS, PostID=hGIqUSD1Wol8L6J

  • David RUCHE

    Membre
    6 janvier 2022 à 17h59

    Bonjour Emmanuel, dans ma table principale “astreintes”, pour ce champ “code producteur”, je vois un type “recherche”, mais je ne vois pas vers quoi ça pointe dans cet écran:

    dans mon souvenir j’avais fait pointer vers une table “point_collecte”, à l’époque ou je n’avais pas encore de powerapp, mais juste une “list” teams, afin de permettre le choix du code “point de collecte” (=producteur). Or, pour info quand là j’essaie de chercher un code dans teams, ça “rame” et je n’obtiens rien:

    Enfin, pour info, voici les caractéristiques de la colonne “nom producteur” dans ma table principale “astreintes”:

    CommentID=mgmF2bhVxV1wQJ0, PostID=hGIqUSD1Wol8L6J

  • R3dKap

    Membre
    7 janvier 2022 à 12h04

    Salut @David RUCHE,

    Ton champ de recherche pointe bien vers ta liste Point_collecte : regarde la partie “Obtenir des informations à partir de“. 😉

    Par rapport à ta problématique de l’erreur sur ton champ Code Producteur, la vraie question maintenant est la suivante : combien y a-t-il d’éléments dans ta liste Point_collecte ?

    Mais je devine déjà la réponse (car j’ai fait le test chez moi et je confirme car j’ai réussi à reproduire ton erreur) : tu as plus de 5 000 points de collecte. Du coup, impossible d’utiliser la fonction Choices() qui est positionnée par défaut sur le Items de ta combo box du datacard du Code Producteur. En effet, la fonction Choices() est censée renvoyer la totalité des éléments mais ils sont trop nombreux et dépassent la limite SharePoint de 5 000 éléments dans le résultat de la requête.

    Il va donc falloir procéder autrement. Dans le Items de ta combo box du Code Producteur, on va attaquer directement la liste Point_collecte. Il faudra également modifier la propriété Update du datacard pour que la donnée à stocker soit bien au format {Id: <id>, Value: <valeur>} nécessaire à son enregistrement dans le champ de recherche Code Producteur.
    Le truc c’est qu’on ne pourra pas utiliser le moteur de recherche de la combo box (donc assure-toi bien que IsSearchable est à false) car sinon la recherche ne se fera que sur les 2 000 premiers points de collecte (limitation Power Apps). Il va donc falloir forcer l’utilisateur à faire une saisie EN DEHORS de la combo box pour rechercher par nous-même et réduire le nombre d’éléments ramenés dans la combo box.

    Bref, il te faut donc augmenter la taille de ta datacard pour y insérer une zone de texte (txtSearchProducteur) au-dessus de ta combo box comme ceci :

    Ensuite, voici le code à mettre dans le Items de ta combo box (testé de mon côté) :

    ShowColumns(n    Filter(n        Point_collecte;n        StartsWith(n            Title;n            txtSearchProducteur.Textn        )n    );n    "ID";n    "Title";n    "Nom Producteur"n)

    En gros ce que l’on fait c’est :

    • rechercher tous les points de collecte qui commence par la saisie de l’utilisateur dans la zone de texte txtSearchProducteur

    • on réduit le résultat aux seules colonnes SharePoint ID et Title et Nom Producteur (voir ma suggestion plus bas pour comprendre pourquoi ramener cette colonne) pour limiter la charge en mémoire

    Enfin, sur la propriété Update du datacard, met ceci (je suppose que ta combo box de choix du code producteur est DataCardValue22) :

    {n    Id: DataCardValue22.Selected.ID;n    Value: DataCardValue22.Selected.Titlen}

    Suggestion : pour améliorer l’expérience utilisateur dans le choix du producteur (alias le point de collecte), ça serait sympa de lui afficher en dessous de chaque code dans la combo box le nom du producteur (alias le nom du point de collecte). Voici comment procéder pour faire ça (testé chez moi également)…

    1. Sur l’onglet Properties de ta combo box, clique sur Edit puis change le layout de “Single” à “Double” :

    2. Ensuite, pour le Secondary field tu choisis ton champ Nom Producteur

    Et ça te donnera quelque chose comme ceci :

    Note : tu parles de “liste Teams“… en réalité, utiliser l’applications Lists dans Teams revient à avoir simplement une interface aux couleurs de Teams pour gérer des Microsoft Lists. Or, une liste Microsoft List n’est rien d’autre derrière qu’une liste SharePoint… 😉

    Pour résumer : Liste Teams = Microsoft List = liste SharePoint

    En effet, derrière la création de ton Teams il y a automatiquement création d’un site SharePoint où, comme tu l’as vu, tu retrouveras les listes SharePoint créées à partir de Teams.

    C’était juste histoire de bien préciser les choses. Beaucoup encore pensent que ce sont des choses séparées. Mais au final tout s’appuie sur SharePoint.

    CommentID=45iih3qhVRopz95, PostID=hGIqUSD1Wol8L6J

  • R3dKap

    Membre
    7 janvier 2022 à 12h17

    Ouf ! J’ai réussi à poster toute ma réponse. J’ai dû m’y reprendre à plusieurs… Je sais pas trop ce qui buggait. A priori un problème avec les images collées à la mano… Bref…

    CommentID=rA0TU9e4Uh2bc5U, PostID=hGIqUSD1Wol8L6J

  • R3dKap

    Membre
    7 janvier 2022 à 12h18

    @David RUCHE, assure-toi de bien recharger cette page pour avoir la réponse en entier 🙂

    CommentID=rc7Eh0MUWte8DIC, PostID=hGIqUSD1Wol8L6J

    • David RUCHE

      Membre
      7 mars 2022 à 17h43

      Bonjour Emmanuel,

      je réponds très tard (vacances, autres projets, etc) désolé! Merci pour ta réponse comme toujours très claire et détaillée. J’ai essayé de suivre au mieux tes instructions, cela me semble fonctionner (car la liste des producteurs se met bien à jour selon ce que j’ai tapé).

      A noter que dans le champ “update” j’ai fait référence à une combobox et non une datacard (coquille dans ton post ?), soit:

      { Id: ComboBox1.Selected.ID; Value: ComboBox1.Selected.Title}

      Concernant ton conseil de mettre un champ double, j’ai bien le choix d’ajouter “titre” (liste déroulante), je peux le sélectionner, mais après quand je le teste, je ne vois que le 1er champ “nom producteur” dans la liste déroulante, et quand je reviens sur l’écran de paramétrage, le choix “texte secondaire” s’est à nouveau vidé !

      En fait je n’arrive pas à màj ces infos de disposition…

      Est-ce que ça pourrait être lié au fait que j’ai un “dépend de” dans cette combobox (je ne sais pas d’où ça sort…)

      merci d’avance pour ton aide (j’essaierai de répondre plus vite la prochaine fois, promis; en effet j’aurai prochainement quelques formations sur la powerplatform donc j’espère pouvoir dégager plus de temps pour y travailler dans les semaines à venir!)

      cdlt

      David

      SubCommentID=InqR28Ni1PHxedX, CommentID=rc7Eh0MUWte8DIC, PostID=hGIqUSD1Wol8L6J

    • David RUCHE

      Membre
      29 mars 2022 à 16h28

      Bonjour, pour info suite à intervention d’un consultant PPF, nous allons passer par du Dataverse pour cette app, ce qui nous permettra accessoirement de lever des limitations du mode actuel. Donc pas besoin de t’embêter à analyse ce sujet restant 😉

      SubCommentID=HO1AYrchBhltADi, CommentID=rc7Eh0MUWte8DIC, PostID=hGIqUSD1Wol8L6J

Connectez-vous pour répondre.