Stoetech


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 – Accounts
Fields Used to display data on forms
1:N RelationshipsControlling access in a security model to other entities
Option SetsA 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
FormsAn asset included in an Entity that includes fields
ViewsA filtered group of records
ChartsData that can be portrayed visually
DashboardsA customized look at data pertinent to that User
SiteMapProvides the structure for navigation in Dynamics 365
RibbonsThe actions to be performed by a command bar
Security RolesA matrix of privileges and access levels for the various entities
Field Security ProfilesUsed 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
ReportsA Form that can be generated
Solution PublisherA person that is linked to Solutions
System SettingsAn area where all configurations are located
WorkflowsAllows you to automate tasks
Business Process FlowsA tool which is meant to help guide users through a business process
Business rulesAllow logic on forms without complex Javascript
ActionsActions are custom messages that help in extending functionality
Web resourcesJavascript, 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, Unmanaged Solutions are generally used in the development instance. Managed Solutions are usually imported to be used for the production instance.

ManagedUnmanaged
Cannot be changedCan be changed
Cannot be exportedIf deleted, nothing happens, only the container is now lost
Can be removed completelyCan 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 field needs to allow the client to select from a dropdown the companies tier(1, 2, or 3).

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.




Author: Taylor Johnson
I am a Microsoft Dynamics 365 Professional writing a blog to provide free education for all. I will be posting courses that teach the various subjects needed to be a professional in this field. I welcome you to contact me to discuss inquiries about working on your platform.

Leave a Reply