[Groupe de terme] Comment dépasser la limite des 20 items dans une liste déroulante
[Groupe de terme] Comment dépasser la limite des 20 items dans une liste déroulante
Bonjour,
Cet article peut vous intéresser si vous êtes dans ce cas :
Vous avez une banque de termes contenant des termes de référence pour votre organisation
Vos groupes de termes ont plus de 20 termes
Vous utilisez SP et la source de données de vos colonnes est un groupe de terme
Vous utilisez Powerapps dont la source de données est votre SP
Si vous êtes dans ce cas, vous allez vous apercevoir d’une limitation de powerapps qui affiche uniquement les 20 premiers termes de votre groupe de terme.
Heureusement la toile regorge de personnes brillantes et qui n’hésitent pas à partager leurs connaissances.
La source de l’article :
PowerApps | Display more than 20 items for Managed Metadata fields – Xylos
Il est possible que ce dernier puisse effrayer les néophytes, aussi voici une synthèse en FR.
Importer le flow
L’auteur a gracieusement mis à disposition son flow qu’il conviendra de personnaliser selon votre environnement
https://dl.dropboxusercontent.com/s/am7iz3x4dbhwgg4/GetTermsCollection-PowerApps_20210729001917.zip
L’objectif du flow est de copier (en cache) dans l’application powerapps, les items de la banque de terme. Pour que ce flow fonctionne, il a besoin d’un déclencheur…nous le verrons plus tard.
Importer le flow
Editer le flow
Modifier les paramètres des actions suivantes selon vos besoins
4. Enregistrer le flow
Paramétrage dans Powerapps
Il faut maintenant charger le résultat du flow dans PowerApps. Une idée proposée par l’auteur et d’exécuter le flow à l’apparition de l’écran que je trouve très intéressante. J’aurais eu tendance (par habitude) à la mettre sur apps onstart.
Ouvrir Powerapps en mode edition
Sélectionner l’écran
Sélectionner la propriété Onvisible
Coller le code suivant
ClearCollect(nnnom de la collection à créer;nnMatchAll(nnGetTerms.Run("Id correspondant au groupe de terme").json;nn"\{""Label"":""(?<Label>[^""]*)"",""Path"":""(?<Path>[^""]*)"",""TermGuid"":""(?<TermGuid>[^""]*)"",""Value"":""(?<Value>[^""]*)"",""WssId"":""(?<WssId>[^""]*)""\}"nn)nn);;nnClearCollect(nnnom de la collection créée;nnDropColumns(nnNom de la collectionnn"FullMatch";nn"StartMatch";nn"SubMatches"nn)nn)
Comment obtenir l’ID de votre groupe de terme
Ouvrir la banque de terme
Sélectionner le groupe de terme
Copier l’ID
Associer votre composant à votre collection
Comme la collection contient maintenant les termes associés au groupe de terme précise, il nous faut l’associer à notre composant liste déroulante
Sélectioner votre liste déroulante (il faut que la recherche soit activée)
Sélectionner la propriété items
Saisir le nom de la collection
Et comment faire dans le cas de plusieurs groupes de termes ?
Nous allons utiliser la fonction Conccurent pour cela
//Concurrent((formule; formule2))nnConcurrent (n ClearCollect(n collectterms_support;n MatchAll(n GetTerms.Run("f1b733c7-f4fc-49af-9833-449458a92610").json;n "\{""Label"":""(?<Label>[^""]*)"",""Path"":""(?<Path>[^""]*)"",""TermGuid"":""(?<TermGuid>[^""]*)"",""Value"":""(?<Value>[^""]*)"",""WssId"":""(?<WssId>[^""]*)""\}"n )n );;n ClearCollect(n collectterms_support;n DropColumns(n collectterms_support;n "FullMatch";n "StartMatch";n "SubMatches"n )n );n ClearCollect(n collectterms_sujet;n MatchAll(n GetTerms.Run("4afc3099-158c-4bc6-9f6a-5bb0d3626f5b").json;n "\{""Label"":""(?<Label>[^""]*)"",""Path"":""(?<Path>[^""]*)"",""TermGuid"":""(?<TermGuid>[^""]*)"",""Value"":""(?<Value>[^""]*)"",""WssId"":""(?<WssId>[^""]*)""\}"n )n );;n ClearCollect(n collectterms_sujet;n DropColumns(n collectterms_sujet;n "FullMatch";n "StartMatch";n "SubMatches"n )n )n)n
Il vous reste à enregistrer et à recharger l’apps
PostID=QaLMSXcZU4MDeTp
Connectez-vous pour répondre.