cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Django
MVP

Updating Environment Variables in Managed Solution

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?

  1. In the Modern Interface it states 
    This environment variable definition cannot be edited because it is in a managed solution.
  2. In the CDS Data / Dataverse Table it states
    You do not have permission to access these records. Contact your Microsoft Dynamics 365 administrator for help.

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?

1 ACCEPTED SOLUTION

Accepted Solutions

Yes @riclund2 : unmanaged solution have more options but this post is explicitly for the managed solutions because that is the way to go for my desired Application Lifecycle Management purpose through different environments and different tenants. That is the whole purpose of Environment Variables with a separated Default Value from an optional overwritable Current Value.

 

Here is an update after a lot of troubleshooting with Microsoft Support.

Basically when exporting a managed solution from an unmanaged solution with environment variables there are three scenario's:

  1. the unmanaged solution never had a current value and then you exported to a managed solution.
  2. the unmanaged solution has a current value and you removed the current value before you exported to a managed solution. This seems to be the best practice according to Microsoft: Use environment variables in solutions - Power Apps | Microsoft Docs
    Dataverse_Environment_variables_values.png
    Microsoft seems to have changed this documentation since I raised a support ticket --> it used to say we should remove the Current Value so a red banner would prompt stating an Environment Variable needs to have a value. 🤔
  3. the unmanaged solution has a current value and you left that current value intact before exporting to a managed solution

We have run through every option to try to change the Current Value in every scenario in totally new target environments without errors:

  1. edit through modern interface of managed solution
  2. edit through Advanced Find of Power Platform Environment
  3. edit through modern interface of default solution
  4. edit through Dataverse / Common Data Service backend Tables / Entities
  5. edit through unzipping managed solution, editing solution files and rezipping to managed solution

 

I do not want this to make a whole new documentation page so here is my conclusion:
Microsoft Product Team is fixing a bug because option 1 should also work in every scenario.
However for now:

If you want it to work in the modern interface without a lot of hassle: use scenario C above because then you can use option 4 to edit the Current Value
If you are like me and followed Microsofts advise, using scenario B & you added a totally new Current Value for the first time right after import into target environment. There may be moment where you want to update the Current Value for a second, third etc time. The only working workaround I found is to change the unmanaged solution to scenario C by adding the Current Value back in a new exported version of the managed solution. Unzip this new managed solution, edit the environment_variable_values.json to match the desired values AND the correct Environment Variable Value record GUID of the target environment and then import the new managed solution into the target environment. Now it will accept the import and change the current value.

View solution in original post

38 REPLIES 38
EricRegnier
Super User
Super User

Hi @Django,

You don't need to clear the default value or values before exporting as managed. When you import into the target environment via make.powerapps.com or make.preview.powerapps.com, it will prompt you to set the value at import time and then should import successfully. 

Hope this helps!

Yes @EricRegnier , that was the behavior that I have seen many times... but in my last export this monday of a managed solution and even when importing it in a totally new environment / totally different tenant (all Europe though) this behavior has changed....

See [BUG]: Edit Environment variable from managed solution · Issue #591 · microsoft/powerapps-tools (git... for troubleshooting details thus far...

EricRegnier
Super User
Super User

I just tried exporting as managed without removing the value and re-importing in another environment and it’s working for me. I’m in the crm6 region. Retry, perhaps the issue is fixed now?

Hi @EricRegnier  I created a video to explain better and show my full experience -->

See (55) Power Platform Solution Environment Variable Bug - YouTube

the video is a few minutes long but shows how My Custom Solution is behaving in a fresh trial environment and I see the same behavior in other Solutions like the CoE starter kit:

 

  • Current Value cleared from Unmanaged Solution before exporting to Managed Solution
    This is described as the best practice at Use environment variables in solutions - Power Apps | Microsoft Docs

    so the red banner popup should appear after a fresh import informing the person importing that an Environment Variables needs a value

  • no red banner popup to add Current Values after fresh environment first import
    ==> Functionality missing
  • need to use Default Solution to add Current Value
    ==> Workaround
  • after adding Current Value no way to edit
    ==> major flaw because this is why Environment Variables are better than creating custom entities with variables to manage in solution

Cheers for the awesome video. Seems like you did find a workaround via the default solution though, that's good to know. You can also try through the classic solution explorer and Advanced Find. It should let you edit it from there as well.

Using the Default Solution seems to work sporadic. On day of import it seems to work fine but a few days later:
Django_0-1606727016356.png
So this workaround is not very reliable.

 

Using the Classic Solution explorer, is not possible for Environment Variables right?

Django_1-1606728063423.png

So no edit if there is no Component in Classic Experience for Environment Variables.

 

Using the Advanced Find through the Model Driven App button

Django_2-1606728217784.png

just opens up the default Model Driven App trying to edit specific entity:

Django_3-1606728252458.png

So same barrier here...

riclund2
Advocate I
Advocate I

@Django where did you get to with this? I'm hitting the exact same issues. I assume putting the EnvVars into a separate unmanaged solution is the way - about to try that. Seems like this functionality is pretty rough around the edges...

riclund2
Advocate I
Advocate I

For anyone coming after, an unmanaged solution does work, although ideologically it's not ideal as we prefer everything outside dev to be managed. Anyways it brings them in and allows them to be edited during import and adjusted after. Unless I'm missing something (very possible!) this is a much more realistic setup.

Yes @riclund2 : unmanaged solution have more options but this post is explicitly for the managed solutions because that is the way to go for my desired Application Lifecycle Management purpose through different environments and different tenants. That is the whole purpose of Environment Variables with a separated Default Value from an optional overwritable Current Value.

 

Here is an update after a lot of troubleshooting with Microsoft Support.

Basically when exporting a managed solution from an unmanaged solution with environment variables there are three scenario's:

  1. the unmanaged solution never had a current value and then you exported to a managed solution.
  2. the unmanaged solution has a current value and you removed the current value before you exported to a managed solution. This seems to be the best practice according to Microsoft: Use environment variables in solutions - Power Apps | Microsoft Docs
    Dataverse_Environment_variables_values.png
    Microsoft seems to have changed this documentation since I raised a support ticket --> it used to say we should remove the Current Value so a red banner would prompt stating an Environment Variable needs to have a value. 🤔
  3. the unmanaged solution has a current value and you left that current value intact before exporting to a managed solution

We have run through every option to try to change the Current Value in every scenario in totally new target environments without errors:

  1. edit through modern interface of managed solution
  2. edit through Advanced Find of Power Platform Environment
  3. edit through modern interface of default solution
  4. edit through Dataverse / Common Data Service backend Tables / Entities
  5. edit through unzipping managed solution, editing solution files and rezipping to managed solution

 

I do not want this to make a whole new documentation page so here is my conclusion:
Microsoft Product Team is fixing a bug because option 1 should also work in every scenario.
However for now:

If you want it to work in the modern interface without a lot of hassle: use scenario C above because then you can use option 4 to edit the Current Value
If you are like me and followed Microsofts advise, using scenario B & you added a totally new Current Value for the first time right after import into target environment. There may be moment where you want to update the Current Value for a second, third etc time. The only working workaround I found is to change the unmanaged solution to scenario C by adding the Current Value back in a new exported version of the managed solution. Unzip this new managed solution, edit the environment_variable_values.json to match the desired values AND the correct Environment Variable Value record GUID of the target environment and then import the new managed solution into the target environment. Now it will accept the import and change the current value.

Helpful resources

Announcements
Power Apps News & Annoucements carousel

Power Apps News & Announcements

Keep up to date with current events and community announcements in the Power Apps community.

Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Power Apps Community Blog Carousel

Power Apps Community Blog

Check out the latest Community Blog from the community!

Users online (2,525)