Enable features in older Power Apps
In this blog post I’ll show you how to check for and enable features in older Power Apps that have legacy flags and features set.
Introduction
When we open older Power Apps .msapp files or by using the the templates from the Power Apps maker site (many of which have not been updated in years), the features (feature flags) are set as they were when the App was last saved.
This is normally not a huge issue, and over time, the newer flags will get set automatically by the platform as they go through their cycle of Experimental > Preview > Production. However, if you are building an App that needs to be worked with immediately or cannot wait months for the next rollout then you don’t have a lot of choice.
For Example, some of the much older feature flags are actually no longer visible in the User Interface of Power Apps – this can present a problem when they interfere with a setting you need to enable. In some cases there are workarounds that will allow you to set one feature which then shows another, which then in turn allows you to toggle the feature you are looking for. However, this is not always the case.
The Issue
Let’s start by looking at an example – in this case I will be using the Out of Office template, which you can find at https://make.powerapps.com by clicking Create on the left-hand rail and then scrolling down to the templates section:
![image shows the homepage of make.powerapps.com](https://www.iammancat.dev/wp-content/uploads/2023/03/image.png)
Then we choose or search for the Out of Office template app, give it a name, then click Create:
![image shows the screen that confirms the app name when building an app from a template in Microsoft Power Apps](https://www.iammancat.dev/wp-content/uploads/2023/03/image-1.png)
You will then be asked to confirm that you allow the connections used to make this App:
![image shows the screen overlay that prompts for permissions when first opening an App that uses connectors in Microsoft Power Apps](https://www.iammancat.dev/wp-content/uploads/2023/03/image-3.png)
When the App has built, you may come across a screen similar to this one, which will be hilarious in a moment. The reason being, is that there is no File Menu anymore (replaced within the last few months), AND because there is no setting with the work concurrent in it (because this has been production-level for a LONG time now).
![image shows an old Power App tempalte being opened, with a warning given for features entering final validation although this is incorrect as the features are already in Production.](https://www.iammancat.dev/wp-content/uploads/2023/03/image-4.png)
The reason we see this is because the App has feature flags set that are no longer in use by the User Interface, as these feature flags are set within the file itself. The more astute of you may also have noticed that there is an error in our App Checker, indicated by the red dot on the stethoscope icon. We will have a look at that in a different blog post..
As mentioned, there is no longer a File Menu – which in itself is additionally hilarious, AS THIS FEATURE IS SET BY A FLAG, which has been forced to On. Instead you can click Settings form the new command bar, or you can click the ellipsis which will then show you the additional option for Settings.
![image shows the command bar in the Microsoft Power Apps editor, with focus around where the settings button is](https://www.iammancat.dev/wp-content/uploads/2023/03/image-5.png)
![image shows the command bar in the Microsoft Power Apps editor whe nthe window is smaller, with focus around where the settings button is as it is tucked away behind an ellipsis menu in smaller screens](https://www.iammancat.dev/wp-content/uploads/2023/03/image-6.png)
When we search for the ‘More reliable Concurrent’ setting, we will find nothing:
![image shows that the concurrent feature the warning message earlier showed is not actually available to be turned on or off from the settings of the Microsoft Power App](https://www.iammancat.dev/wp-content/uploads/2023/03/image-7.png)
As a user, if you are not sufficiently knowledgeable about Power Apps, this will be an incredibly frustrating experience, as you are told to do one thing, but then unable to, and will likely go searching online for how to do this, wasting even more of your precious time.
But, this is not even the issue I wanted to highlight with this blog post. The issue is if you try to turn on some of the other features.
Let’s say we want to look at the list of data sources we’ve added to this app to remove any unused ones, or to rename them or just to get an overview of the data used in the App… wait, WHERE HAS THE DATA SOURCE BUTTON GONE?
In the old menu (again, a new maker won’t know this), we had a data sources button under View:
![image shows the older style of command bar, where the Data sources option was displayed under the View tab.](https://www.iammancat.dev/wp-content/uploads/2023/03/image-8.png)
But, in our broken new menu, we have no way to view the data sources for the App.. This is INCREDIBLY frustrating as a new maker – I just want to know what’s in my App and I shouldn’t have to be doing work for that!
![image shows the modern command bar on an older App, with no option now in the App to show what data is currently used within the App](https://www.iammancat.dev/wp-content/uploads/2023/03/image-9.png)
So, to get the newer data icon on the left-hand-rail we will need to enable the ‘Improved data source experience and Microsoft Dataverse views’ feature flag, which can be found by scrolling down within the General tab of Settings. Let’s try toggling that on.
![image shows the settings menu of Microsoft Power Apps within the General section, specifically highlighting the 'improve data source experience and Microsoft Dataverse views' option](https://www.iammancat.dev/wp-content/uploads/2023/03/image-10.png)
But when we do that, we receive a message that we need to turn on ‘Relational data, option sets, and other new features for Microsoft Dataverse’.
![image displays a message that we need to turn on 'Relational data, option sets, and other new features for Microsoft Dataverse' before we can enable the 'Improved data source experience and Microsoft Dataverse views' feature flag](https://www.iammancat.dev/wp-content/uploads/2023/03/image-11.png)
Here’s the problem with that though, when you look for it in settings, it may or may not be in the ‘retired’ section – if it is there, you can enable it, but this will immediately make it disappear! Yes I know this is part of a fix for this particular setting, but the method I will show AFTER this will apply to ANY setting in future.
![image shows the 'Relational data, option sets, and other new features for Microsoft Dataverse' feature flag within the Retired section of the App settings](https://www.iammancat.dev/wp-content/uploads/2023/03/image-12.png)
![gif shows a setting disappearing after we enable it in the Power Apps settings.](https://www.iammancat.dev/wp-content/uploads/2023/03/RelationalDataToggle.gif)
..So now what? Ok, let’s try turning on that original setting. Now we are told to turn on ‘Use Column Display Names’
![image displays a message that we need to turn on 'Use column display names' before we can enable the 'Improved data source experience and Microsoft Dataverse views' feature flag](https://www.iammancat.dev/wp-content/uploads/2023/03/image-13.png)
When we turn this on, it also disappears (these disappearances are because they are no longer selectable in newer Power Apps as they are an implicit part of the App experience now!)
![gif shows the 'Use column display names' setting disappearing after we enable it in the Power Apps settings](https://www.iammancat.dev/wp-content/uploads/2023/03/ColumnDisplayNamesToggle.gif)
Ok… so let’s try this again, we are going to FINALLY turn on the improved data source experience.
![gif shows the 'Improve data source experience and Microsoft Dataverse views' disappearing when we enable it](https://www.iammancat.dev/wp-content/uploads/2023/03/ImprovedDatasourceViewToggle.gif)
![gif shows a South Park clip of "and its gone" meme made popular by their episode covering the financial crisis and banking crisis - this is in relation to the settings that keep disappearing when we enable them in Power Apps.](https://www.iammancat.dev/wp-content/uploads/2023/03/andItsGone.gif)
Now we finally have our Data icon on the left-hand rail!
![image shows the Power Apps editor now having a data icon that can be used to see which data sources are currently used within an App](https://www.iammancat.dev/wp-content/uploads/2023/03/image-14.png)
Now the biggest problem here, is that ALLLLL of this was just to turn on one setting – what about all the others? What about ones in future when all of the current features are eventually in prod or retired/cancelled?
This seems like a lot of work and brain juice required just to get one setting turned on – surely there must be a way for us to enable ALL features in older Power Apps so that we get all of the modern settings enabled, just as if we had created a new blank App today?
The Solution
Ok, so there’s two possible ways we can do this – the first is to extract the msapp, edit one file, recompile it into a zip and then open it in the Power Apps IDE, the other is to use the Power Apps command line tool to extract the app then change the settings in that one file then recompile then open in the Power Apps IDE but they both really equate to the same thing – I think my version is easier because you don’t need to install the command-line tool just to use it.
Solution – enable features in older Power Apps in bulk
In this solution we start by getting a local copy of the file – we can do this by using the dropdown next to the save button in the command bar, then choosing Download a copy:
![image shows the menu in the Power Apps editor where you can download a copy of an App to local storage](https://www.iammancat.dev/wp-content/uploads/2023/03/image-15.png)
This will download a copy of the .msapp file to our downloads folder.
If you have 7zip or another smart zip tool, it will detect that the .msapp is a zip and give you a context menu to extract the files:
![image shows an msapp file being detected as an archive by 7Zip, which then has an option to extract all files to a folder by the same name of the file](https://www.iammancat.dev/wp-content/uploads/2023/03/image-17.png)
If you have a basic operating system zip tool (i.e. you’ve never installed anything for zips for your computer), then you can rename the file to a .zip file from a .msapp file, then use the operating system context menu for the zip and extract it to a folder:
![image shows a rename msapp file that has been renamed to a zip archive file and can now be extracted using native operating system zip tools.](https://www.iammancat.dev/wp-content/uploads/2023/03/image-16.png)
Ok, now go to make.powerapps.com and create a blank new app. Follow the same last few steps to download and extract it.
Now we have two folders, one for our ‘Old’ App, and one for our ‘New’ App – Inside these folders are a number of files and folders. Make sure to not add any other files or folders to these (except for the one I will mention soon).
In these folders you’ll see a structure like the following image:
![image shows a folder in Microsoft Windows that contains the extracted content from an msapp file](https://www.iammancat.dev/wp-content/uploads/2023/03/image-18.png)
What we are looking for is the Properties.json file – this file contains the list of flags to enable features in older Power Apps.
It is at this point I would like to suggest that if you don’t already use Visual Studio Code as your text/code editor, I would highly recommend it – NB, not sponsored, I just love it – it’s fast, has many useful features, can have addons that deal with all sorts of different languages and allows you to format your code in many languages so that it’s not just a giant string of text.
So when you open this (I will use both Visual Studio Code and Notepad), it will be formatted as one long string of text which will make it difficult to work with.
![image shows a single-line-formatted json file being opened with Visual Studio Code.](https://www.iammancat.dev/wp-content/uploads/2023/03/image-19.png)
![image shows a single-line-formatted json file being opened in Notepad](https://www.iammancat.dev/wp-content/uploads/2023/03/image-20.png)
Inside the jungle of text is a particular property within this json-formatted file, called “AppPreviewFlagsMap” – what we are going to do is replace everything within its { } section with the contents of the new file’s AppPreviewFlagsMap section. This is the action that allows us to enable features in older Power Apps without having to do all of the extra steps.
In Visual Studio Code you can use the Format function (press F1 then search for Format, OR press Alt+Shift+F), which will lay the json data out for you in a nice structured format. In notepad, you will have to search the AppPreviewFlagsMap text and then replace anything from the first { following it to the next }
I’m going to take this moment to show you the difference between the Properties.json in an old App vs in a new App – in some older apps there will be flags that don’t even exist in new files and in this case we can see that a number of them that should be set to another property value to enable them (even though in the Power Apps editor they are hidden and cannot be toggled):
![image shows two files in Visual Studio code being compared for differences in their content, with inconsistencies highlighted in red.](https://www.iammancat.dev/wp-content/uploads/2023/03/image-21.png)
What you should do now is copy the whole inside of that AppPreviewFlagsMap section, and replace the old App’s section with everything from same section of the new App, then save the file.
Make sure that you don’t add any other text to the file – only copy everything within the { and the } for that particular property.
I will give an example of the AppPreviewFlagsMap code here below which is accurate as of 01 March 2023 (although ideally you should copy this from your own new file)
"AppPreviewFlagsMap": {
"delayloadscreens": true,
"errorhandling": true,
"enableappembeddingux": false,
"blockmovingcontrol": true,
"projectionmapping": true,
"usedisplaynamemetadata": true,
"usenonblockingonstartrule": true,
"longlivingcache": false,
"useguiddatatypes": true,
"useexperimentalcdsconnector": true,
"useenforcesavedatalimits": true,
"webbarcodescanner": false,
"reliableconcurrent": true,
"parallelcodegen": false,
"datatablev2control": true,
"nativecdsexperimental": true,
"reactformulabar": false,
"delaycontrolrendering": true,
"useexperimentalsqlconnector": true,
"disablecdsfileandlargeimage": false,
"formuladataprefetch": true,
"enablerulespanel": false,
"enhanceddelegation": true,
"generatedebugpublishedapp": false,
"keeprecentscreensloaded": false,
"aibuilderserviceenrollment": false,
"dynamicschema": false,
"enablerowscopeonetonexpand": false,
"herocontrols": false,
"classiccontrols": false,
"fluentv9controls": false,
"enablepcfmoderndatasets": true,
"improvedmediacapture": false,
"optimizedforteamsmeeting": false,
"behaviorpropertyui": false,
"autocreateenvironmentvariables": false,
"externalmessage": false,
"enhancedgalleryinitialization": true,
"backfromhostaction": false,
"enableonstartnavigate": false,
"enableexcelonlinebusinessv2connector": true,
"enableonstart": true,
"exportimportcomponents2": true,
"copyandmerge": false,
"allowmultiplescreensincanvaspages": false,
"enablecomponentscopeoldbehavior": false,
"enablecomponentnamemaps": false,
"enableideaspanel": true,
"enablesaveloadcleardataonweb": false,
"enablepowerautomatepane": true,
"rtlsupport": false,
"improvedtabstopbehavior": false,
"rtlinstudiopreview": false,
"cdsdataformatting": false,
"enablerpawarecomponentdependency": true,
"enableeditcacherefreshfrequency": false,
"formularepair": true,
"expandedsavedatasupport": true,
"reverttooldpowerautomate": false,
"appinsightserrortracing": false,
"appinstrumentationcorrelationtracing": false,
"disablecommandbar": false,
"excelcompatibility": false,
"namedformulas": false,
"zeroalltabindexes": true,
"untypedobject": false,
"dataverseactionsenabled": false,
"pdffunction": false,
"enablebarcodereaderfeature": false,
"packagemodernruntime": false,
"enhancedcomponentfunctionproperty": false,
"enableactionenhancedcomponentproperties": false,
"enableruntimepolicies": false,
"enablechatbotfeature": false,
"tabledoesntwraprecords": true,
"consistentreturnschemafortabularfunctions": false,
"supportcolumnnamesasidentifiers": false
},
ok, so now we need to bundle up this App we’ve modified. I have a PowerShell script here that you can run once you have placed it into the extracted folder of the Old App:
(if you want to know what it does, its just three lines of code that zip the folder contents in a way that Power Apps accepts)
![image shows a folder in Microsoft Windows that contains the extracted content from an msapp file and an additional PowerShell script file to reconstitute those folders.](https://www.iammancat.dev/wp-content/uploads/2023/03/image-22.png)
![image shows a PowerShell window asking for the name of a new file to generate](https://www.iammancat.dev/wp-content/uploads/2023/03/image-23.png)
Press enter after giving your app file a name as prompted, and the PowerShell will zip up the contents of the folder it is currently in, producing a .msapp file:
![image shows a folder in Microsoft Windows that contains the extracted content from an msapp file and an additional file that has been created after running a PowerShell script to reconstitute those folders.](https://www.iammancat.dev/wp-content/uploads/2023/03/image-24.png)
From the Power Apps editor, while you are editing another app (ie, create a blank app and edit it), you can then choose from the ellipsis to ‘Open’ a file – choose this new App file (OldAppNewFeatures.msapp in my case), now you can save this in your environment using Save As / Save.
![image shows where to Open files from within the Power Apps canvas Editor user interface](https://www.iammancat.dev/wp-content/uploads/2023/03/image-25.png)
If we check the feature settings, these now match the settings of any other new App developed. This set of steps lets you enable features in older Power Apps without going through and finding out which features you need to turn on to allow subsequent features – it will make it as if the App was developed today with a blank canvas, matching the feature flags of an App created today.
![image shows the upcoming features section of the settings menu within a canvas Power App. This image particularly shows that after the process we have followed we were able to enable features in older Power Apps.](https://www.iammancat.dev/wp-content/uploads/2023/03/image-26.png)
TLDR
- Download .msapp file of App,
- Extract contents to folder,
- Create new blank app, download, extract contents to a different folder,
- Copy AppPreviewFlagsMap content from properties.json of blank app that you extracted, paste in identical section in properties.json of old app.
- Repackage App using PowerShell Script
- Open from Power Apps Editor.
Conclusion
In this blog post we covered how to identify issues with feature flags, and then we were able to create a process to enable features in older Power Apps that becomes a single set of steps instead of the multi-step-multi-layer search that was involved in determining which feature flags were enabled/required/old/new.
I provided code samples that you could copy paste into your extracted older apps and code/tools for you to warp those files back up into .msapp files from extracted folders.
Thank you so much for taking the time to read through to this point, I really do hope you have gained some new knowledge or at the very least some inspiration for your Apps! (Always dig deeper!)
If you want to check out my other blog articles you can have a look around here: iAm_ManCat Blog
You can find links to my various social media accounts at the bottom-right of this page 🙂
Hope you have a great day!
Hi,
Just posting here to say thanks so much for this. It’s helped resolve a problem with a huge app that I have that I REALLY didn’t want to have to rebuild.
Nice one 🙂
Hi @iAm, I did all this yesterday and I am still getting the Improve data source pop-up when I go to settings. The thing is, I do not actually have this option showing in my General area. So honestly, I don’t know how to turn it on. I guess I am wondering if there are specific flags (I am thinking of the 3 things they want turned on from the top of your article) that I could adjust in the Parse Json to turn them on. I don’t seem to be seeing anything that matches. Any help would be appreciated.
Hi Heidi!
I’ve actually seen a similar post on the forums recently, and that particular user said that “automatically create environment variables when adding data sources” was the culprit in their case, as it was asking for this setting to be turned on even when it was already turned on – could you check if you have the environment variable toggle on and try turning that off?
Cheers,
Sancho
Hi IAm_ManCat,
I am not sure if you can help me. I did everything as laid out, but it didn’t solve one of my underlying issues. I hoped doing this would sort out an issue I was having with Collections. When I create a collection and go to (x) > Collection > Collection > View Table to see it, I am not getting any column headers. Not only are they missing, but I used to be able to adjust the column size and can’t do that anymore, so many of the columns that show are slivers and it is impossible to read what is in them. Any help would be appreciated.
Hi Heidi,
This seems like a bug in the Power Apps interface rather than an issue I can help with – I would try raising a support ticket with Microsoft if that’s still an issue,
Cheers,
Sancho
Hi iAm_ManCat,
Not sure if it’s only me but now I cannot see Save As functionality because not available … -> Variables -> Save As which I used very recently and aldo not available Enable Legacy Ribbon.
How can we replace the existing app by our just opened from local file?
Thanks,
Tom
Hi Tomasz!
If you use the ellipsis … and then choose ‘Open’ you can still access the old menu to use the Save As function correctly – the ‘new’ Save As (near the publish button) is still broken, so using the older menu is still the only valid way to do this from the studio 🙂
The legacy ribbon has been fully deprecated in Power Apps version 3.23031 onwards and can no longer be enabled (see here: https://learn.microsoft.com/en-us/power-platform/released-versions/powerapps-studio-players/3.23031)
Cheers,
Sancho
Thanks a lot @iAm_ManCat!