- January 15, 2019
- Posted by: Taylor Johnson
- Category: Customizations
Solutions are a fundamental component of Dynamics 365. At a smaller level, they allow us to customize Entities and their assets (Fields, Forms, and Relationships). This is not all that Solutions are good for though, at a larger level, they allow us to customize bigger picture things like Workflows, Security Roles, Web Resources, and Dashboards. They allow us to package up all our customizations and implement them in other environments.
This is especially helpful when using the software development lifecycle with multiple sandbox environments(Sandbox and UAT).
Below is a list of all the different areas that a Solution can change. We will go over all of them in later posts.
Entities | Used to model and manage data – A |
Fields | Used to display data on forms |
1:N Relationships | Controlling access in a security model to other entities |
Option Sets | A type of Field in an Entity that defines a set of options |
Email/Contract/Article/Mail Merge – Templates | Used to send mass emails and/or quicken the process of tedious documents |
Forms | An asset included in an E |
Views | A filtered group of records |
Charts | Data that can be portrayed visually |
Dashboards | A customized look at data pertinent to that User |
SiteMap | Provides the structure for navigation in Dynamics 365 |
Ribbons | The actions to be performed by a command bar |
Security Roles | A matrix of privileges and access levels for the various entities |
Field Security Profiles | Used to give access to fields that have been enabled for field level security |
Connection Roles | A flexible way to connect and describe the relationships between any two entity records |
Reports | A Form that can be generated |
Solution Publisher | A person that is linked to S |
System Settings | An area where all configurations are located |
Workflows | Allows you to automate tasks |
Business Process Flows | A tool which is meant to help guide users through a business process |
Business rules | Allow logic on forms without complex Javascript |
Actions | Actions are custom messages that help in extending functionality |
Web resources | Javascript, html, and CSS extensions |
Plug-in assemblies | C# extensions |
Dynamics 365 has the concept of a default Solution. Think of this as a Master Solution, controlling how your environment looks and feels. You can make direct changes to that instance, or you can package your changes into a separate Solution. When Microsoft Dynamics operates, it first looks at the default Solution, and then it looks for the changes that you have made to it by looking at your other installed Solutions.
You should always make changes to the system by creating a new Solution. Solutions add safety to your system should anything go wrong. It allows for accountability among staff. In the chance of a system failure later, you can delete the Solution to see if it fixes your problem. If you don’t create a new Solution when you make changes, it will very hard to remember all the changes you have made.
Publishers
Whenever a Solution is created, there is a Publisher that’s associated with it. Publishers allow companies to know who is making changes to their system. Publishers are easy to create, just go to Setting, Customizations, and click on Publishers.
Publishers do not have to be a person. I have seen entire departments and/or consultant companies have their own Publisher. Below you can see what the Form that populates looks like when you create a new Publisher. People will see “tbj_Entity” on future solutions that I publish.
Versioning / Managed VS Unmanaged
When creating a Solution, there will be a field that requires a version. This is where you can easily spot the people who are not used to working in IT :). Be sure to start out with (1.0.0.0) or any other way of versioning that you prefer. The two top models for versioning that I have seen are Year.Month.Day.Revision or Major.Minor.Build.Revision. As new updates to your solution are made, the version number should be incremented higher.
There are two different types of solutions, managed and unmanaged. The figure below shows the key differences between the two. Before you get too confused, U
Managed | Unmanaged |
Cannot be changed | Can be changed |
Cannot be exported | If deleted, nothing happens, only the container is now lost |
Can be removed completely | Can be exported as managed |
Importing / Exporting
We will now practice the import and export of the Solution. These are pretty easy tasks, start by going to Settings, Solutions, select a solution, and press export. The window below will populate, be sure to publish all customizations before continuing.
We’re going to keep our Solution as an Unmanaged one. If we were truly rolling this Solution out, we would select Managed. We would do this because we don’t want to overwrite other data in a working system. Press Export.
After pressing Export, your computer will download a .zip file. We will use this file for importing next. As you can see I have used that same file for importing below.
All you have to do now is select import and it will be done for you.
Task
Consider this scenario, we need to add a field to the form in order to satisfy a client’s need. This f
Whenever I do a complicated task, I write down the steps that I need to do along the way. This allows me, should I ever have to do this task again, to refer to my notes and complete it even faster. Below is a quick list I made before I did the task above.
We will not focus on how to create fields or edit forms in this post. Instead, I will do that in the background. Feel free to follow along if you feel like you can!
Step 1: create a new Unmanaged Solution. Press save
Step 2: Add Existing Entity -> Account
Step 3: Double click on new account inside of Solution
Step 4: Create a new Field named “Tier” with the three different options
Step 5: Add the field to the form by dragging and dropping
Step 6: Publish the Solution and check to make sure it works
Let’s Begin
We will start by going to Settings, then Solutions.
We will create a new Solution by pressing the “new” button in the top left corner of the screen.
Naming methodologies are very important when it comes to making solutions. There isn’t necessarily a “correct” way to name a solution, but definitely pick a model and stick with it. I chose the name “Account Changes” because that is what we are going to add to the Account Form.
In the back end, I customized the main Account Form. I added an option set that allows you to say what tier this company is classified as.
Solutions by themselves are not that powerful. It is the endless things that you can do with them that make them truly special. I would argue that without Solutions, Microsoft would not be a competitor of Salesforce. I hope this post was helpful.
The definitions are based from the Microsoft Dynamics 365 website. I encourage you to look at them. These documents are helpful when you want to learn more in-depth on any subject.