I am playing around with Solution Layering and Solution Segmentation in the Power Platform.
Let me set the stage.
I have an environment called AdventureWorks - Core
.
In this environment, I have the following solutions:
AdventureWorks Solution (Core)
– contains the Dataverse Tables, Choices and Data flows.AdventureWorks Solution (Flows)
– contains the Flows that update additional fields in the Dataverse Tables.AdventureWorks Solution (Security)
– contains the Security Roles for the Dataverse Tables.AdventureWorks Solution (Publisher)
– contains the Publisher information, I export this as an unmanaged solution and then import it into every environment so I can create a consistency in my Publisher information.
I have another environment called AdventureWorks - Dev
.
In this environment, I have imported the previous solutions, as managed, excepted for the AdventureWorks Solution (Publisher)
, that was imported as unmanaged.
I added another solution called AdventureWorks Solution (Universal App)
, which will contain my Model-Driven App, along with any Form or View customizations.
Fast forward.⏩
Everything was working fine.
I wanted to turn on auditing for my Tables, so I went back to my Core
environment, made the necessary changes, did an export from my Core
environment and then an import into my Dev
environment, and then took a peek to see if the changes were applied.
Something didn’t look right, all my other Tables had been updated, except for the SalesLT Address
. 🤔
Auditing was still disabled on this Table.
I did several more exports and imports with the same result. ☹️
Still nothing.
I was starting to get frustrated. 😤
It was late in the day, so I decided to just hang it up for the day and revisit it the next morning – this always seems to work for me.
Fast forward … again.⏩
In my Dev
environment, I took a look at the Solution Layers for my SalesLT Address
in the AdventureWorks Solution (Core)
I was curious to see what they looked like.
And that is when I saw the problem!💡
Seems like I had messed something up and added a customization for that Table in my Flows
solution.
I navigated back to my Core
environment, removed and then added back the SalesLT Address
Table to my AdventureWorks Solution (Core)
Solution.
I again exported the Solution from my Core
environment and then imported the Solution into my Dev
environment.
I navigated back to the Solution Layers, and was glad to see that Solution Layer for the Flows
was no longer there. 😊
That did the trick! 🪄
While Solution Layering and Solution Segmentation are great practices for complex applications, this is just a reminder that they can come back to bite you if you are not careful.
As always, appreciate any feedback or comments.