Power Platform ALM Solution Dependencies Enhance Your Calm

Carina ClaessonPower Apps12 hours ago9 Views

In a previous post, I listed the dos and don’ts related to Power Platform ALM. Recently, I’ve been cleaning up environments for customers. At one point, I was faced with no fewer than 420 solution dependencies when I wanted to remove a third-party solution. Then you just love (work) life, right?! Turns out, it was not as bad as it seemed. I hope this post can inspire someone to clean up their environments too.

As the unofficial HTTP response status code says 420 – Enhance your calm. That’s exactly what’s needed when faced with an error message telling you there are 420 dependency issues to solve! Mixed third-party solution components and your own, wonderfully tied together. Better put the Sherlock hat on and dig into the details if you want to succeed in deleting that solution!

What are Solution Dependencies?

Solution Component Dependencies exist in order to prevent you from unintentionally break the functionality of your solutions. You might not be able to:

  • Delete a component – it has a dependency to another component
  • Uninstall a third-party solution – you’ve built new functionality on top of it
  • Upgrade a solution – certain components can’t be removed

Avoid dependency issues by:

  • Having ONE unmanaged solution per DEV environment
  • Continuously make sure all components needed are in your solution
  • Using the same same publisher for all your solutions

Uninstalling a Managed Solution – Easily done, right?!

Third-party solutions might let you reduce the development time/costs. But if you later don’t need it, clean up your environments. You’ll might free up space (it’s a cost too!) and you’ll make your solutions more maintainable in the long run. Uninstalling a third-party solution can be as simple as clicking a button, just press “Delete” and you’re done. It can also be more complex.

Complexity arise if you’ve built your own solutions ON TOP of a third-party solution. Then you’ll have dependencies to handle. Every case will be different, even if it’s the same third-party solution, depending HOW MUCH you’ve built on top of it and your ALM strategy. In my example, all solutions, except for the third-party, were unmanaged, even in target environments. Not according best practice.

Step to remove a solution when dependencies exist

Sorry to tell you – there’s no such thing as a shortcut. You can try to open a Microsoft ticket, but that’s more if you get stuck in any of the details narrowing down the list of dependencies. Actions for complex cases with lots of dependencies:

  1. Test the process in a safe space
    • Create new environments (copies of DEV/TEST)
    • In the DEV safe space:
      • Find solution, check dependencies (Maker Portal)
      • Go through the list of dependencies, handle them, for each:
        • Figure out why dependency exist
        • Check with customer if customization is really needed/used
          • NOT USED, remove component or dependency
          • USED, make a plan for alternative customization
        • Iterate until the dependency list is empty – fun, right?! 😀
      • Finally, delete that third-party solution!
    • Deploy any changes (removed components/dependencies) to TEST safe space
    • Test your business processes in TEST – i.e. the existing functionality
    • (I would not redo the process of removing the third-party solution in TEST safe space – it’s enough to do it in the real environments later)
  2. Prepare real environments
    • If you’ve made new customizations or removed/separated components
      • Make sure real DEV contains new customizations, deploy to real TEST
      • Uninstall the third-party solution from real DEV and TEST
    • Make tests in TEST to ensure all functionality still works as expected
  3. Handle Data
    • Used a column from third-party solution? Mind your data!
      • You’ll need another place to save the data (other table/column)
      • Deploy that customization to TEST and PROD
      • Migrate data in PROD – BEFORE deleting third-party solution
      • Have a look at the XTB tool Bulk Data Updater, which might be useful!
  4. You’re ready to clean PROD
    • When all is OK in TEST and you’ve taken care of data in PROD
      • You’re finally ready to remove the third-party solution from PROD
  5. Congratulations!
    • All environments are clean and more maintainable in the long run! 🎉
    • To truly make it maintainable in the long run – switch to using managed solutions in target environments if you’re not doing that already.

Depending on the complexity of the customizations built on top of the third-party solution, if not too complex – it’s fine to uninstall in the real environments directly. Changes to be done in DEV and deployed correctly of course. If you do not want to mess with your real environments or just “see how hard it would be” and how much it would effect your current solution – safe space environments might be a good idea.

In some cases, it might be worthwhile to consider starting fresh in new environments rather than attempting to clean up existing ones. If there’s a large amount of technical debt and lots of the current customizations and code are no longer in use or needed, it could be a better alternative to start with a blank slate.

Details are fun 🎉 let’s break it down further!

Navigating to the dependency list

You can always create an additional environment and start there, just to see if your process holds all the way. Then you can document the steps you take and when you reach success, you can do the same steps all over again but in the real environment.

In Maker Portal, navigate to Solutions, Managed, choose the solution you want to uninstall and select … Show dependencies.

So for this solution I got 420 dependencies in my list. Can that scare you away? For sure! But try looking at it one dependency type at a time. If you can solve one type, the rest of the same will go smooth. Solving one might narrow down the list with more than one, stay persistent, don’t loose hope. 🙂

Look at one type at a time

Looking at the type of issues I noticed the following: It was mostly processes (classic workflows) in the list. Types could be broken down into the following parts using third-party components:

  • Processes (custom workflows)
  • System forms
  • Dashboards
  • Model-driven apps
  • Sitemaps

Handle dependencies

First figure out overall if the customizations causing the dependencies are still in use or not. In my case all the processes (custom workflows) were not, all could be deleted entirely. Dependency types and how to solve them:

  • Type Process, Object type Field/Plugin-type/Entity Relationship
    • Cause Classic workflow using third-party components
    • Not used Delete the entire process/classic workflow
    • Used Make alternative customization
      • Without third-party components
      • E.g. using cloud flows
  • Type System Form, Object type Chart
    • Cause Third-party component used on a form
    • Not used Remove component from form, in my case a subgrid
    • Used Rethink removing that third-party solution 🙂
      • You’re probably using a table and columns from it
      • Check in PROD when rows were added/updated
      • If small part of the overall solution
        • Make a new customization to store the data – show on form
  • Type Dashboard, Object type View
    • Cause Custom built dashboard containing a view with third-party table
    • Not used Remove component from dashboard (or whole dashboard)
    • Used Same as above – rethink and perhaps new customization needed
  • Type Model-Driven App, Object type Table
    • Cause MDA containing table/views/forms from third-party solution
    • Not used Remove whole app if not used. If app is used, remove tables from the navigation, in the app navigation of the modern app designer
    • Used Same as above – rethink and perhaps new customization needed
  • Type Site map, Object type Web Resource
    • Cause Web resource (icon) used in navigation of model-driven app (sitemap)
    • Not used Remove whole app if not used. If app is used, remove either parts from the navigation or switch specific icons to other icons.

Details are fun 🎉 let’s break down EVEN further!

When I only had the site map dependency left I had almost made it, almost! Those were a bit tricky. In the list of dependencies, there was complaint about a web resource (icon) that was used. The first were easy to find. I could probably have used the modern app designer, but I did it in the legacy Site map designer.

I located where the icons were used and switched to another OOB icon. (You’ll of course need to verify and make adjustments to it when you’ve deleted the third-party solution, this was a temporarily work-around to get rid of the third-party solution).

But then there were three dependencies left and I could not find them in the UI in the legacy site map! (Perhaps I should’ve been in the modern way of working 😏).

I then made a new temporarily solution, added one of the sitemaps, exported it, extracted the files and opened the customization.xml file. I searched for the name of the the web resource. And then I could figure out where it was used. Removing the whole group from the site map did the trick.

This was the last dependency, tricky to find in the site map:

Object type Web Resource and Dependent type Site Map.

Looking at the cutomization.xml file I could locate where to find it in the sitemap, open the sitemap and remove that part entirely. (Different approach than for the other parts of the sitemap, where I’d just switched to another icon).

I could then remove the whole Group.

Then finally! No dependencies left to solve!

Then I could delete the third-party solution. Yay! Happy (work) life again! The deletion process took around 2 hours, from selecting the delete button to having it deleted, but good thing it works in the background, no need to sit and stare at it! 👀

I hope this post can inspire someone to dare to clean up their environments and not being scared away by the number of solution dependencies! Just enhance your calm and take it step by step, you’ll do fine.

Featured photo by Carl Newton on Unsplash

Original Post https://carinaclaesson.com/2025/03/05/power-platform-alm-solution-dependencies-enhance-your-calm/

0 Votes: 0 Upvotes, 0 Downvotes (0 Points)

Leave a reply

Join Us
  • X Network2.1K
  • LinkedIn3.8k
  • Bluesky0.5K
Support The Site
Events
March 2025
MTWTFSS
      1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31       
« Feb   Apr »
Follow
Sign In/Sign Up Sidebar Search
Popular Now
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...