Upgrading Dynamics CRM 2013 Customizations – Part 1

Leave a comment

Here we will go through an example of upgrading Dynamics 2013 customizations.

In this first post, let’s set up a solution with several components. We are going to create the following:

A Solution (SolutionToUpgrade) with:

  • New Entity (Test Entity) with:
    • New field (Test Entity Field Description)
    • Customized Main Form
  • New Main Form- Existing Entity (Account) with customized Main Form
  • Existing System View (Active Accounts) customized with existing field
  • New Business Rule (Account Test Business Rule)
  • New Web Resouce (JScript), attached to Account Main form
  • New Option Set (YesOrNo)
  • New Business Process
  • (My New Business Process)
  • New Dashboard (My New Dashboard)
  • New Report (My Test Report)
  • New Security Role (My Test Security Role)
  • New Plug-in added to the solution (AccountUpdate)

Create a new solution in CRM 2013 called SolutionToUpgrade:

Create a new entity:

Add a field:

Add this field to the Main form:

Save and Publish.

Let’s create a new Main form:

Save and Publish.

Now, add the Account entity (without required components) to the solution. Open the main form and add a new field:

Save and Publish.

Let’s update a system view, Active Accounts, with the Account Rating field:

Let’s create a business rule on the Account:

Create a JavaScript web resource:

Now, let’s attach it to the change event of the Website field on the Account Main form:

Now, let’s add an Option Set:

Create a new Business Process:

Add a new Dashboard:

Create a new Report:

Create a new Security Role:

Now, let’s create a Plugin. Our plugin will update the Account

In Visual Studio, create a new Class library:

Add the assemblies:

  • Microsoft.Xrm.Sdk
  • Microsoft.Xrm.Sdk.Proxy
  • System.Runtime.Serlialization

Add the code below. This will set the Account credit limit when an account is updated:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xrm.Sdk;
using Microsoft.Xrm.Sdk.Query;

namespace Carl.CRM.AccountUpdate
{
    public class UpdateAccount : IPlugin
    {
        public void Execute(IServiceProvider serviceProvider)
        {
            // Obtain the execution context from the service provider.
            Microsoft.Xrm.Sdk.IPluginExecutionContext context = (Microsoft.Xrm.Sdk.IPluginExecutionContext)
            serviceProvider.GetService(typeof(Microsoft.Xrm.Sdk.IPluginExecutionContext));

            // The InputParameters collection contains all the data passed in the message request.
            if (context.InputParameters.Contains("Target") &&
            context.InputParameters["Target"] is Entity)
            {
                // Obtain the target entity from the input parameters.
                Entity entity = (Entity)context.InputParameters["Target"];
                entity["creditlimit"] = new Money(1000000);
            }
        }
    }
}

Deploy the solution using the Plugin Registration tool:

In the solution, go to Plug-in Assemblies:

Select the assembly:

In the next post, we will go through upgrading the solution.

 

THANKS FOR READING. BEFORE YOU LEAVE, I NEED YOUR HELP.
 

I AM SPENDING MORE TIME THESE DAYS CREATING YOUTUBE VIDEOS TO HELP PEOPLE LEARN THE MICROSOFT POWER PLATFORM.

IF YOU WOULD LIKE TO SEE HOW I BUILD APPS, OR FIND SOMETHING USEFUL READING MY BLOG, I WOULD REALLY APPRECIATE YOU SUBSCRIBING TO MY YOUTUBE CHANNEL.

THANK YOU, AND LET'S KEEP LEARNING TOGETHER.

CARL

https://www.youtube.com/carldesouza

 

ABOUT CARL DE SOUZA

Carl de Souza is a developer and architect focusing on Microsoft Dynamics 365, Power BI, Azure, and AI.

carldesouza.comLinkedIn Twitter | YouTube

 

Leave a Reply

Your email address will not be published. Required fields are marked *