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?

22 REPLIES 22
remyblokPW
Frequent Visitor

You can change the value of the Environment Variable Values through Excel though. This works also for managed solutions.

  1. Open Power Apps portal
  2. Go to Data -> Tables on the left
  3. Open the "Environment Variable Value" table
  4. Click "Open data in Excel" from the Toolbar
  5. Open the downloaded Excel sheet
  6. Click the "Enable Editing" in the warning bar in Excel
  7. Login to the environment in the right pane if you have to
  8. The data of all the variables are now loaded, make the required changes
  9. In the right pane click "publish" at the bottom
  10. Done! 🙂

See also https://docs.microsoft.com/en-us/powerapps/maker/data-platform/data-platform-excel-addin

Wow @remyblokPW --> nice way to think out-of-the-box 👍

I am sadly not able to test this just yet but based on your description, this would be another great workaround.

POJA85
Frequent Visitor

Hi @Django & @remyblokPW 

I am struggling with these Environment Variables, really don't see the point of them if this is how they work.

Another layer of complexity is that we are utilizing automated deployments in our current project.

But to summarize. say I want the following setup in our 3 environments.

 

Env:                       Dev               Test             Prod

Current Value:                            test              prod


So, when in Dev, what should be done? First deploy the Environment Variable to all environments in a solution holding a Current value. Then change the Current Value in each environment to the desired on. And for the next round of deployments, I should leave the Current Value blank in the Dev solution? Delete the Current Value? Or remove the whole Environment Variable from the solution?

We are using Managed solutions in Test and Prod, so it's possible to change the Current value through a workaround or two. 

Hi @POJA85,

Even though there are some bugs, the added value of Environment Variables in a Application Lifecycle Management scenario like Development,Testing,Acceptance,Production (DTAP) is still very high.

 

Please see:

for my point of view.

In the first blog, I try to explain the best way to go at the moment. In the second blog, I share some workarounds if you did not follow my advise in the first blog 😉

R4isin
Advocate I
Advocate I

Hello,

 

Thanks for this topic. It helps to better understand the use of the "environment variable".

Did you have any return/experience when you pass a new managed solution which removes a old environment variable ?

I can't apply the upgrade of my new solution managed because the systems says that the "old" environment variable definition have a dependance with the environment variable value. However, these environment variable value are not present in the solution itselft (like environment variable definition) so it's not possible to remove them from the import of the solution.

 

The only way to make this is to remove them directly. And of course, it's not possible to remove these records because they are included in one managed solution... (and the depencance is still there even if I put "null" as value for this environment variable value)

The problem is explained here : Power Apps Environment Variables Preview Limitation/Bug with Managed Solutions - Microsoft Dynamics ...

So, if you have any idea, is more than welcome. Thanks

Kr,

 

R4isin

Hi R4isin,

 

I don't think I have had this issue myself.

 

Given your information, you should be able to remove the "Environment Variable Value"-record manually by going to the Table in the maker portal and deleting the appropriate record? Is that not enough to remove the solution. The "Environment Variable Definition"-record should be in you managed solution, and should be removable when you remove the solution.

 

Hi @R4isin,

If you have tried the Modern Power App Experience as well as the older Classic Power App Experience and removing the records keeps giving errors about not allowed / no permissions --> you can also log a ticket with Microsoft just from the Power Apps Admin Center of your tenant.

 

It may take some time but the Microsoft Back End Team has helped me before when removing relations / dependencies that were not fixable from the any of the User Interfaces...

Thanks for your response to you and to @remyblokPW 🙂

It was not possible to remove these records via the "older" classis power app experience, I've open a ticket to Microsoft.


So they apply a script to the target environment (= where you try to install the new solution) and it works after that. It takes about 10 days for them to fix this (just for info).

 

Kr,

 

R4isin

Jaco_Campher
Advocate I
Advocate I

Found another solution. Just move all the environment variables to another solution and export and import that solution as unmanage. That way your workflows are still managed, and the environment variables can be changes as required.
Not a perfect solution, but it works.

jhorii
Regular Visitor

What I found works for me is to not assign any values (default or current value) to the environment variable in your solution in your development environment.  Instead, add the value from the default solution.  This will create a layer that allows you to use this value in your development environment but keep your environment variable empty in your solution for exporting.  This way you don't accidentally forget to empty it before exporting.

 

If done this way, when you import your solution (managed or unmanaged) into another environment, you should be prompted to assign a value to the environment variable.

 

Hope this helps.

Helpful resources

Announcements
PA Virtual Workshop Carousel 768x460.png

Register for a Free Workshop

This training provides practical hands-on experience in creating Power Apps solutions in a full-day of instructor-led App creation workshop.

Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

May UG Leader Call Carousel 768x460.png

What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

Users online (3,211)