Migration of configurations between Microsoft Sustainability Manager (MSM) environments is currently very clunky and dependant on manual changes. We currently use a mix of:
- Solution deployments through Pipelines: for Data Imports, Data Mappings, custom tables and custom columns
- Configuration Migration Tool (CMT): for Calculation Profiles and Calculation Models (this is the official advice but see paragraph below as to why we will not be using it)
- Manual changes: for certain changes that do not have clear update method via existing Microsoft tools e.g. changing environment specific references in an import.
Using the CMT tool forces us to migrate all Calculation Models and Profiles from one env to another, rather than being able to select which ones have changed. This is very risky in that we may push unintended updates between environments. Because of this risk, we are now handling Calculation Profile and Model changes via manual updates instead. We have reached out to Microsoft Support and confirmed that for Calculation Models and Profiles, the CMT tool is the only way to move these between environments as Solutions cannot be used.
There is also no way to use Environment Variables in Power Query Imports in MSM, which forces manual changes to the code when moving from one environment to the other. The main example of this is some of our imports require cross validation and transformation work with a Dataverse table inside MSM - the Facilities table. To do this we have to point to the environment where the table is stored and when testing in DEV, we will point to the DEV instance. But when we move to PROD, we would like it to read the PROD instance of that table and there is no straightforward way of changing this other than manually editing the code in PROD.
I think this migration approach really needs an overhaul and to be simplified so that it can be done in more automated manner through a single tool if possible. I am especially concerned with how much we will have to rely on manual changes and recreations of config in higher environments going forward until a better option is provided. If I have missed an existing way of moving configurations between environments I would really appreciate anyone here letting me know if there is already a better way. Otherwise, would really like to see this addressed in a future release of MSM.
