Documentation (Use environment variables in solutions - Power Apps | Microsoft Docs) states that we should remove Current Value of Environment Variables before exporting an Unmanaged Solution to a Managed Solution --> this will provide a popup during Managed Solution Import to enter the Environment Variable.
How can an Environment Variable Current Value be updated after import?
I also mentioned this to the Center Of Excellence Starter Kit creators because there I see that Environment Variable Current Values behave in the same way when trying to update existing Environment Variable Values: [BUG]: Edit Environment variable from managed solution · Issue #591 · microsoft/powerapps-tools (git...
Anyh other ways that we can edit the values of these variables when imported as Managed Solution?
Solved! Go to Solution.
@Django Thanks for responding.
I have tried the first option which seems to update the variable fine. When i edit the app in the maker experience it points to the correct value aka the current value. But the user experience still points toward the wrong datasource.
I see now!
Data sources as an Environment Variable need to be considered a special type of Environment Variable... I do not have a lot of experience in using Data Source Environment Variable in Canvas Apps.
See Use environment variables in solutions - Power Apps | Microsoft Docs. Especially the Current Limitation section at the bottom because there are few limitations when it comes to SPO:
I suggest you log a ticket with Microsoft if it does not behave as expected.
Just to be sure: if you are using Environment Variables in your Canvas App you should not edit the Canvas App in the target environment to change the source right? This can create an Unmanaged Layer around your Canvas App making it "ignore" changes you make to a Data Source Environment Variable. If this does not make any sense to you: investigate more on the purpose of environment variables and power platform solutions before using this.
A few checks:
Sorry I cannot help into much detail.
I suggest you create an own topic where other experts can help you specific on Canvas Apps and SharePoint Data Source Environment Variables.
I have even tried removing the default value(referencing Testsource 1) from the variable but the player(user experience) still somehow references Testsource 2.
In short, i have found no reliable way where you can make a change to a variable in a managed solution except when importing blank variables for the first time.
There are no unmanaged layers.
I appreciate all your effort, I will contact MS support to follow up on the issue.
Disabling browser cache makes no difference however, when i close the browser and clear all cache, the correct reference will show, so it seems the issue might be a cache issue in the user experience.
So clearing the cache works? You just need to clear the cache everytime you change the Current Value?
This could be expected because when publishing an App with a newer version, the caching (or designed workings of Canvas Apps) seems to remember the previous version for quite some (CTRL+F5) refreshes / cache clearing before the newest version is loaded.
@Django sometimes it works, sometimes not it seems. It might be as you suggest a version memory thing for the user experience. The maker experience updates right away.
If you want to use environment variables for environment specific data eg. Test-Path vs. Prod-Path, the the way to do this is add the Environment Variables to a second unmanaged solution. These can be published to and edited in every solution independently.
The managed solution can use the environment variables published in the unmanaged solution and will not need any changes when publishing to another environment.
Hi @ThomasWi, I definitely like this as an option but I also think that Environment Variables should be importable as a managed solution so I am less inclined to say that this is "the (only) way".
Whether it is a a separate solution (which I very much like) or part of a bigger / smaller business solution ==> "It depends..." 😁
I prefer to have environment variables in a separate solution to the main solution - I find once imported environment variables virtually never need to change, and the amount of times I forget to clear out the current values in dev before pushing to test wastes me hours!
Another approach I use if this is not workable (DataVerse for Teams in particular!) is to include a generic instant flow in the solution (managed) which can be run manually, and takes as an input the env variable definition and value, and then the Flow updates the values for you.
Its a write once deploy to any solution model which saves so much anguish.
I can point to my example Flow if required, using FetchXML to get back the specific env vars from the DataVerse table and then updating them.
Another approach I use more and more is for each app to have a config page for app admins, with fields that can be updated and triggered to update the environment variables directly from the app.
Thanks for all the research here - I have the exact same problem. I've explored your cache suggestion a bit and one thing that works for me is to specifically remove the powerapps.com cached cookies and site data as shown below. Once I removed all those shown below the correct data sources started showing up...
Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.
We are excited to announce a new way to share your ideas for Power Apps!