CRM Crate

How to develop & register a plugin in Microsoft CRM?

We will learn how to develop and register the plugin in Microsoft Dynamics 365 CRM. A plugin is a custom developed operational logic that is used to trigger and perform an action within Microsoft Dynamics CRM. Before we start, click here to understand the detailed information regarding the plugin in Microsoft Dynamics 365 CRM.

How to develop & register plugin in Microsoft CRM?

Create a new project of type Class Library

We have to develop and write our plugin in Visual Studios by creating a class library project. Open your visual studio >> New Project > >Class Library.

How to develop & register plugin in Microsoft CRM?
How to develop & register plugin in Microsoft CRM?

Now, we have to add the nuggets which are needed for performing operation in Dynamics CRM. Right click on the solution and click on “Managed NuGet Packages”.

How to develop & register plugin in Microsoft CRM?

Select Browse and search for Microsoft.CrmSdk.CoreAssemblies and install the latest version.

How to develop & register plugin in Microsoft CRM?

Once you have installed the package “Microsoft.CrmSdk.CoreAssemblies”, the Mircosoft.Xrm.Sdk assembly will get loaded in your project’s reference as shown below.

How to develop & register plugin in Microsoft CRM?

Reference the XRM SDK

Now we have our project ready, lets start writing the code. As a first step, insert the Using statement referencing the XRM SDK.

How to develop & register plugin in Microsoft CRM?

Implement IPlugin interface and create a execute method within the class.

Lets now create a IPlugin interface to access and consume various components provided by Microsoft.

How to develop & register plugin in Microsoft CRM?

Now we will create an Execute method within the class as shown below.

How to develop & register plugin in Microsoft CRM?

Below are the details of the different interfaces which are used in the above code.

  • IPluginExecutionContext Interface : Defines the contextual information passed to a plug-in at run-time. Contains information that describes the run-time environment that the plug-in is executing in, information related to the execution pipeline, and entity business information.
  • IOrganizationServiceFactory Interface : Creates object of IOrganizationServiceFactory using the IServiceProvider object.
  • IOrganizationService Interface : Provides programmatic access to the metadata and data for an organization.

Retrieving Target entity

We will need the target entity’s object from the context object’s InputParameters collection. This Entity class object refers to the Contact entity record on which our plugin would be registered. In simple words, the Target is the entity record from which our plugin is triggered. For example, if the plugin is registered on “Create” message of Account entity, then the target will be the entity object containing metadata of Account record which is been created. We will be using the target to retrieve the data from the record for which the plugin is triggered. Use the below code to read the target.

How to develop & register plugin in Microsoft CRM?

Implement necessary logic

Now we have created the main structure of the plugin, further we will require to write our own custom logic which we want to perform as part of the plugin.

In our case, we will trigger our plugin on creation of Account record. Once the Account is created, we will automatically create a new Contact record. Our newly created Contact record will have the name of parent Account in its field “Account Name”.

Observe the below code which will be used to create a new Contact once a new Account is created.

How to develop & register plugin in Microsoft CRM?

Below is the explanation of the above code snippet.

  • Stage 1 :- Retrieved target entity in variable “eTarget”.
  • Stage 2: – Trigger the logic if the target is not null.
  • Stage 3 :- Reading value of field “Account Number” from the target Account record.
  • Stage 4 :- Created a new entity object of Contact entity.
  • Stage 5 :- Added value in field “Salutation” and “Parent Customer Id”. The above retrieved value from Stage 3 (Account Number) is inserted in Contact’s field “Salutation”. The Contact’s field “Parent Customer Id” is a lookup field to Account, therefore we inserted the current target Account record in the Contact’s lookup field.
  • Stage 6 : – In the above stage, we provided the values for two of the Contact records attribute. Now we will create a Contact record with these two values. For creating a record, we will use the above created CRM services and send a create request by passing the same Contact entity object which we used in Stage 4 and Stage 5.

Once your code is ready, re-build the complete project.

Now, we will have to create a signing key before we register the plugin. For that, right click on Project >> Properties >> Signing >> Check the “Sign the assembly” >> New >> Give any name for the key and click on save.

How to develop & register plugin in Microsoft CRM?

Register the plugin

As we have created our plugin, now its time to deploy it to the CRM by registering it. We have to deploy the plugin using the Microsoft’s “Plugin Registration Tool. If your do not have Plugin Registration Tool then download it from the given link : DOWNLOAD PLUGIN REGISTRATION TOOL.

Now coming back to the visual studios, right click on your project and click on Open Folder in File Explorer.

How to develop & register plugin in Microsoft CRM?

Once your local project folder file gets open, click on Bin >> Debug . Copy the local file path.

Open the Plugin Registration Tool and connect it to your CRM instance.

How to develop & register plugin in Microsoft CRM?

Once connected to CRM, the tool will display all the existing plugin assemblies within the CRM (Both Microsoft Out-of-The-Box and Customer Assemblies).

Now lets create a new plugin assembly for our newly created plugin. Click on Register >> Register New Assembly.

How to develop & register plugin in Microsoft CRM?

Now the tool should populate the Registration window. In step 1 >> Select the plugin dll from the local path which we copied above.

How to develop & register plugin in Microsoft CRM?

Once you register the plugin, its time to triggering your plugin on the dedicate entity. In our case we will trigger the plugin on creation of Account record.

Therefore, right click on the newly registered plugin >> Register New Step.

How to develop & register plugin in Microsoft CRM?

In the Step window, select message as “Create”, primary entity as “Account” and Event Pipeline Stage as “PostOperation”. Finally, click on Register.

How to develop & register plugin in Microsoft CRM?

Now, your new plugin is deployed and register in your CRM instance. To validate the plugin, once you create a new Account record a new Contact record will get auto-created.

CRM Crate

All In One Platform For Learning Microsoft CRM.

Facebook
Twitter
LinkedIn
4.5 4 votes
Article Rating
Subscribe
Notify of
2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Understanding plugin images in Microsoft Dynamics CRM - CRM Crate
3 years ago

[…] Developing & registering a plugin. […]

Difference between Synchronous & Asynchronous plugins - CRM Crate
3 years ago

[…] Developing & registering a plugin […]

error: CRM Crate Security Engine - Disabled Right Click & Selection!

Congratulations!

Well Done,
Welcome to CRM Crate

Stay tuned with us and get all latest updates and learning in Microsoft CRM and related techonologes.