[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.