Filtre sur liste d'utilisateurs

Étiquetté : ,

  • Filtre sur liste d'utilisateurs

    Posté par Romane sur 24 octobre 2023 à 9h06

    Bonjour,

    Je commence tout juste à développer sur Power Apps et je n’arrive pas à filtrer sur une liste d’utilisateurs ou à créer une liste d’utilisateurs à partir d’une liste Sharepoint.

    Pour comprendre, je dispose d’une liste concernant divers éléments dont un champ “Interlocutor” de type Personnes à sélection multiple.

    Cette liste est utilisée pour affecter les personnes à une demande (seconde liste) en fonction du type de demande choisi.

    J’aimerais en parallèle l’utiliser pour que les personnes viennent sélectionner une personne en fonction de son service (il est indiqué dans la table actuellement).

    J’ai également essayé de filtrer directement le champ personne de ma seconde liste avec le département mais seulement quelques éléments remontent.

    Pourriez me dire comment on peut filtrer un champ de type “Personnes” contenant plusieurs éléments.

    Merci d’avance,

    Romane

    PostID=Y67nxbPk1ZsaKeG

    Admin a répondu Il y a 11 mois, 3 semaines 1 Membre · 6 Réponses
  • 6 Réponses
  • DavidZed

    Membre
    24 octobre 2023 à 10h05

    Hello,

    En admettant que tu as un ComboBox qui pointe vers la liste des utilisateurs : ‘Ma liste d’utilisateurs’, qui contient une colonne de Type personne à choix unique et qui est filtrée par service (dans le combo box).

    Tu peux mettre dans la galerie qui affiche les demandes :

    Filter('Liste des demandes'; n            ComboBox.Selected.'Nom de la colonne Personne'.Email in 'Attribué à'.Email || IsBlank(ComboBox.SelectedItems))

    CommentID=3CQKVVsc7laVyYc, PostID=Y67nxbPk1ZsaKeG

  • Geoffroy

    Membre
    24 octobre 2023 à 13h58

    Bonjour Romane

    As-tu modifié le niveau de délégation dans ton appli ? C’est dans les paramètres et on peut monter à 2000.

    Au-delà de ce chiffre, les données ne seront pas chargées depuis SharePoint. Ca explique peut-être ton souci si c’est le niveau par défaut (500) qui est resté..

    CommentID=TS4eiIRxUL50QvG, PostID=Y67nxbPk1ZsaKeG

    • Admin

      Abonné
      1 décembre 2023 à 2h02

      Merci pour la réponse, malheureusement ça ne semble rien changer.

      SubCommentID=UbMGkQMhm5hcQRn, CommentID=TS4eiIRxUL50QvG, PostID=Y67nxbPk1ZsaKeG

  • Admin

    Abonné
    1 décembre 2023 à 2h02

    Bonjour,

    Merci pour la réponse . Ma question était plutôt, comment je peux venir filtrer directement une combobox affichant mes contacts de l’entreprise. Pour faire plus simple, si je souhaite filtrer sur un service de l’AD ex : “IT”, je vais venir indiquer ceci dans items :

     Filter(Choices([@'Suivi des essais'].RD_People); Department= "IT")  

    Le soucis que je rencontre c’est que tous les éléments ne s’affichent pas. Dans ce cas-ci 0 résultat. Si je change avec un autre service ex: Sales, j’ai 1 personne qui s’affiche car son prénom commence par un A et donc elle se trouve au tout début de la liste.
    Je ne comprends pas le comportement de PowerApps sur cette partie.

    Pour ce cas-ci, j’aimerais venir récupérer les personnes ayant le department R&D dans ma liste Member pour les récupérer dans le formulaire de la liste “Suivi des essais”.

    (C’est pour cela que j’ai d’abord essayé de filtrer sur la valeur du department présent dans l’AD mais le résultat ne me convient pas)

    Peut être est ce plus clair que mon post précédent.

    CommentID=aF6JHNfeJpFIVbe, PostID=Y67nxbPk1ZsaKeG

    • R3dKap

      Membre
      24 octobre 2023 à 14h51

      Salut Romane,

      Attention, ta problématique n’est pas si simple… 😉

      Pour des raisons de performances, la fonction Choices() ne ramène jamais plus de 20 éléments environ. Tu ne pourras donc voir que les 20 premières personnes correspondant à la condition de ton Filter().

      Par contre, si la recherche est activée sur ta combo box alors lorsque ton application s’exécute et que tu ouvres ta combo box tu pourras saisir le début du nom d’une personne et même s’il y en a 200 000 dans ton AD il t’affichera les 20 premiers qu’il trouvera.

      Mais si tu fais un Filter() sur ton Choices(), comme le Choices() va s’exécuter en premier, il te ramènera d’abord les 20 premiers éléments PUIS il fera le Filter(). Donc, autant dire qu’il ne trouvera quasiment rien.

      Bref… Impossible de faire ce que tu veux faire avec un Choices() sur ton champ de type Personne. Pour avoir une liste déroulante qui t’affiche les personnes de ton AD appartenant à un département donné de ton entreprise, il va te falloir passer par le connecteur Utilisateurs d’Office 365 (Office 365 Users). Ce connecteur fournit une fonction qui s’appelle SearchUserV2()…

      Ah m…..e !!! Pas possible non plus… Cette fonction n’autorise la recherche que dans les champs suivants :

      Source : https://learn.microsoft.com/en-us/connectors/office365users/#search-for-users-(v2)

      Eh bin t’es coincée. Je crois que du coup t’es obligée de passer par un appel à Graph API pour faire ce que tu veux faire…

      J’ai posé la questions à des potes experts… Je te dirais…

      SubCommentID=XI8fYvRYK4zOPHS, CommentID=aF6JHNfeJpFIVbe, PostID=Y67nxbPk1ZsaKeG

    • Admin

      Abonné
      1 décembre 2023 à 2h02

      Bon ce qui me rassure c’est que même des experts me disent que ce n’est pas possible 😉

      Je vais donc dire à mes collègues : PAS POSSIBLE, désolé 😉

      Merci beaucoup pour ton aide.

      SubCommentID=hdbLa6VolOfUfwU, CommentID=aF6JHNfeJpFIVbe, PostID=Y67nxbPk1ZsaKeG

Connectez-vous pour répondre.