[Débutant]Comment filtrer et récupérer des pdfs dans des sous-dossier sharepoint

Étiquetté : ,

  • [Débutant]Comment filtrer et récupérer des pdfs dans des sous-dossier sharepoint

    Posté par Jeff sur 18 mai 2024 à 23h31

    Bonjour à tous,

    ma question va paraître enfantine pour les experts que vous êtes, mais étant débutant je me perds un peu dans les filtrage d’une galerie.😅

    Je souhaite pouvoir récupérer et afficher dans une galerie des documents pdf contenus dans des sous dossiers Sharepoint.

    Source de Donnée : Document>General>RH>Feuilles de présence

    Ma formule utilisée est la suivante :

    <div>
    <div>Filter(</div>
    <div>Documents;</div>
    <div>EndsWith(‘Chemin d’accès au dossier’; “General/RH/Feuilles de présence/”) &&</div>
    <div>EndsWith (‘Nom de fichier avec l’extension’;”pdf”)</div>
    <div>)</div>
    <div> </div>
    <div> </div>
    </div>
    <div>Cependant cela m’indique la fonction EndWith ne peut fonctionner sur des jeux de données volumineuses.</div>
    <div> </div>
    <div>En recherchant un peu j’ai vu qu’on pouvait utiliser powerautomate ( que je connais encore moins voir pas du tout vu mon niveau actuel) ou en passant par l’utilisation d’une collection. Je ne sais pas ce qui est le mieux et le plus efficace.</div>
    <div> </div>
    <div>Si une âme charitable pouvait venir à mon aide, ca serait sympa 🙂</div>
    <div>Merci d’avance</div>

    Jeff a répondu Il y a 6 mois, 1 semaine 2 Membres · 3 Réponses
  • 3 Réponses
  • DavidZed

    Membre
    19 mai 2024 à 21h20

    Hello,

    Voici quelques explications :

    Le problème que tu rencontres est un avertissement relatif à la délégation, la délégation, c’est ce qui permet à Power apps de déléguer ta requête (ton filtre) à la source de données.

    Seules certaines requêtes sont délégables : dans le cas de sharepoint, le EndsWith est délégable, ton filtre est donc censé fonctionner… Mais, car il y a un mais… Les colonnes “système”, c’est à dire les colonnes crées par SharePoint pour faire fonctionner les listes et les bibliothèques ont une liste de fonctions délégables encore plus restreinte… et donc le EndsWith() met cet avertissement sur la colonne “chemin d’accès complet”…

    Il y a plusieurs options pour contourner cette limitation (de la plus simple à la plus complexe) :

    • Si ta bibliothèque contient (et contiendra toujours) moins de 2000 éléments : Tu peux ignorer l’avertissement et simplement augmenter la limite du nombre d’enregistrements retournés dans les paramètres de l’appli
    • Tu peux utiliser une collection, le principe est de faire le filtrage délagable dans un ClearCollect, et d’utiliser les filtres non-délégables sur cette collection (attention, le résultat du 1er filtre devra toujours faire moins de 2k éléments)
    • Tu peux créer un flux qui va copier le chemin d’accès dans une colonne de métadonnées dès qu’un fichier est modifié : les fonction StartsWith et EndsWith seront délégables sur cette colonne
    • Tu peux utiliser un flux instantanné qui va effectuer la requête et renvoyer le résultat sous forme de Json à Power Apps
  • DavidZed

    Membre
    19 mai 2024 à 21h23

    Sinon je remplacerai :

    EndsWith(‘Chemin d’accès au dossier’; “General/RH/Feuilles de présence/”) 

    par

    StartsWith(‘Chemin d’accès au dossier’; “General/RH/Feuilles de présence/”) 

    Qui te permettra d’avoir tous les fichiers dans le dossier Feuilles de présence et ses sous-dossiers

  • Jeff

    Membre
    20 mai 2024 à 18h52

    Merci pour ta réponse.

    En essayant avec StartsWith cela ne règle pas le problème.

    La bibliothèque Documents contient +2k d’éléments, d’où le fait que cela ne dois pas fonctionner je suppose.

    Il vaudrait mieux du coup que je me penche sur un JSON afin d’effectuer mon filtrage ?

Connectez-vous pour répondre.