I've created a PowerApps app that loads a number of drop-down fields from managed metadata. What I noticed is that each of the drop-down lists only loads the first 20 items. Is this a limitation in PowerApps or is there a setting somewhere else to increase the limit?
Seems 'Microsoft' itself is the limitation.
SURPRISE!! What else is new. Just one more dysfunctional, incomplete release of something. I don't think I've ever seen ANYTHING completed by Microsoft. Half-assedly build something to 75% then release then on to the next project.
The thing I don't understand is how the IsSearchable feature works for a ComboBox. Even though the dropdown of the ComboBox only shows the first 20 items, if you begin to search, it will populate the dropdown with the appropriate choices.
Put simply, use a dropdown and you only pull 20 items, use the ComboBox and you can find the items in the managed metadata that are not in the first 20.
How does the search feature of the ComboBox work and can I replicate this? It could be a work around until Microsoft fixes the larger issue. Could populate a collection from all available items in the metadata using the same functionality that the search on the ComboBox?
What's strange is I've found if I create a default item in the SharePoint list and attribute all of the metadata tags to that item, I am able to pull them over into a local collection by using [SelectedItem].[MetaDataColumnName]
I'm a little bit lost with the weird functionality here...
I have a solution for you guys. I had the same problem. I had multiple metadata columns which acted as cascading dropdown lists mean when I select A in dropdown dd1 then dropdown dd2 is filtered on the options valable for A
dd1 contains A, B, C,...
dd2 contains A1, A2, B1, B2, ...
dd1 en dd2 are metadata
In my case dd1 does not contain 20 items. dd2 does contain more than 20 items and needs to be filtered.
The solution is to add a datasource to taxonomyHiddenList list. On the onChange of dd1 i create a collection based on the TaxonomyHiddenList. If you create collection on visible of the screen it will be empty.
IdForTerm = "fb6d7497-9ff4-4da2-b999-c5f1c7f866b8" ||
IdForTerm = "d27edda2-27fb-4a90-963d-7b2bb6a17e44" ||
IdForTerm = "f5bb38d0-3649-4d0b-93b3-f48837fd3f32" ||
IdForTerm = "5c999a0b-1b4a-45ba-83e6-1d5345f55029" ||
IdForTerm = "c0251c7b-d7ef-4a6a-86e6-377b292254b7" ||
IdForTerm = "b60b258a-a492-47a1-9010-f892342ffb2d" ||
IdForTerm = "4b8153a4-2c07-46b8-8d85-9c9490362f71" ||
IdForTerm = "2ffa899b-5039-4416-9972-458a6466e0ac" ||
IdForTerm = "6eb35c32-f170-4269-8201-997101208b7a" ||
IdForTerm = "4486b5ab-0d64-4322-8faa-22dc7daacd01" ||
IdForTerm = "1fc87d9b-483b-4e28-878b-d0c936f7c4b8" ||
IdForTerm = "f0e16799-ed56-464d-b3b2-626117df52a2" ||
IdForTerm = "1f110109-8b27-461e-a3bc-1791f5625f60" ||
IdForTerm = "69022c8d-7ce8-443c-a7f8-f3d1ce1ecdc4" ||
IdForTerm = "cbace61f-daf8-4fe3-b288-ad7942c33492" ||
IdForTerm = "d9648a06-ee39-43b1-b21c-248499bfde68" ||
IdForTerm = "45c0b6aa-6ab5-4059-b407-dbeaf32d299e" ||
IdForTerm = "94cec70f-9f41-4448-9e84-64d3a616bcc6" ||
IdForTerm = "1e69aa54-ca76-4b29-9bcc-855abbc24cad" ||
IdForTerm = "86c7f89b-6947-4fd1-9d43-4788a2f35665" ||
IdForTerm = "2618dbb0-b171-43aa-8e37-60af6dd38f30" ||
IdForTerm = "fdc7c382-8d1a-4ba7-af1b-6939d11bd563" ||
IdForTerm = "b7f49973-0c36-4524-9365-f7c4e58392df"
Value: Concatenate(Naam; "|"; IdForTerm)
Then add this collection TypeTable2 to the items property of dd2 and then you will have all items you need in dd2. This works with new and edit form. I've searched days on this solution. To summarize
1. Add datasource to TaxonomyHiddenList
2. Create collection with same table content of TaxonomyHiddenList (here you can filter, sort,... ) (hint: if you click somewhere on TaxonomyHiddenList you should be able to see its content in the Fx dropdown in the ribbon menu. Make sure you create the collection simular to that table)
3. Add the collection to the items property of the metadata dropdown
PS: TaxonomyHiddenList is fed by the termstore. If you create new items in the termstore you wont see them appear immediatly in the TaxonomyHiddenList. You need to create an item in SharePoint with the new value you've added in the term store. Then it will be copied to the TaxonomyHiddenList.
if i just saved your life -> https://www.paypal.me/pjverly
I did loose so much time on this and my customer was really dissappointed. I can imagine you all are in the same situation. You have a good idea and all the sudden the idea seems like **bleep**ty idea.
The TaxonomyHiddenList approach isn't a complete solution unfortunately.
If you use a Combo Box with a large Term Set and the "Is Searchable" option ticked, the search is carried out on both the Term's Label and any Synonyms. The search by default appears to work from left-to-right (I'm sure I have read somewhere this is the documented behaviour) but in a large term set (e.g. 6000+ terms) searching is only really usable when it operates as a CONTAINS, and not STARTSWITH. The default Combo Box will be able to search all 6000+ entries, but using STARTSWITH (currently).
Adding a Filter to the Choices will immediately reduce the number of items searched to the first 20 or so (as mentioned above) - I think because the Choices function is not delegable. The documented approach to overcome this from Microsoft is to add the related list as an additional data source which would work okay for Lookups but feels like a "hack" for MMS columns - although using the TaxonomyHiddenList approach is worthwhile considering.
However, one other (major) drawback of using the hidden Taxonomy List is that entries do not get added into that list until a Term is used somewhere in the site to tag content. Also worth pointing out is that if you are using a tenant-level Term Set, used tags will be across multiple sites, so it's not going to work in that scenario.
I wrote a blog post about this one, with a solution of course. This also removes the limited 'StartsWith' search / filter functionality.
Note: this one does not make use of any Power Automate or Power Apps premium features. 😉
Thanks for the additional input on this, I appreciate the effort :).
How does this solution scale and perform on large Managed Metadata Term Sets? Many customers I work with have tens of thousands of terms and having to pull all of them down on the start of the App may not be feasible due to the degrade in performance.
If you are talking about thousands of terms. You would probably require the 'Response' (Premium) action from Power Automate to return your collection to Power Apps.
Because you will probably bounce into the string character limit of Power Automate.
Other than this limitation, I don't see any 'heavy' or 'breaking' impact on this solution.
I don't think there is a limit on the amount of items inside a collection if you pull them from a flow. But not sure though...
You will of course get a longer load time for the GetAllTerms HTTP call you are executing on the ProcessQuery endpoint. But this one doesn't get slow really fast.
So if you want to skip the standard limitations on the managed metadata field. I would certainly give the flow I provided in the blog a try, even if you have thousands of terms in your term set.
Check out the News & Announcements to learn more.
Please join us on Wednesday, October 20th, at 8a PDT. Come and learn from our amazing speakers!
Check out the new Power Platform Community Connections gallery!
Congratulations, the new Super User Season 2 for 2021 has started!
Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.