When using Dynamics 365 Plugins, we have the ability to view the record data before and after changes have been made. Here we will go through an example.
First, create a new class library in Visual Studio:
Add code:
using System.Collections.Generic; |
using System.Threading.Tasks; |
using Microsoft.Xrm.Sdk.Query; |
namespace Carl.Crm.PrePostImage |
public class CheckAccount : IPlugin |
public void Execute(IServiceProvider serviceProvider) |
Microsoft.Xrm.Sdk.IPluginExecutionContext context = (Microsoft.Xrm.Sdk.IPluginExecutionContext) |
serviceProvider.GetService( typeof (Microsoft.Xrm.Sdk.IPluginExecutionContext)); |
ITracingService tracingService = (ITracingService)serviceProvider.GetService( typeof (ITracingService)); |
if (context.InputParameters.Contains( "Target" ) && context.InputParameters[ "Target" ] is Entity) |
Entity entity = (Entity)context.InputParameters[ "Target" ]; |
if (entity.LogicalName == "account" ) |
Entity account = (Entity)context.InputParameters[ "Target" ]; |
Entity preImageAccount = (Entity)context.PreEntityImages[ "Image" ]; |
Entity postImageAccount = (Entity)context.PostEntityImages[ "Image" ]; |
string preImagePhoneNumber = preImageAccount.GetAttributeValue< string >( "telephone1" ); |
string postImagePhoneNumber = postImageAccount.GetAttributeValue< string >( "telephone1" ); |
tracingService.Trace( "Pre-image phone number: {0}, Post-image phone number: {1}" , preImagePhoneNumber, postImagePhoneNumber); |
Now, register a step:
Register on Post Operation:
We will filter this to run on the telephone1 change:
Now, register an image. Select the Update step we created above:
We will register this on Pre Image and Post Image:
First ensure tracing is enabled in System Settings:
Now we can run the code.
Go to an account and note the phone number:
Change the phone number:
Go to the Plugin Trace Log:
Open the record:
You will see the line we added in the message block:
“Pre-image phone number: 425-488-7759, Post-image phone number: 425-488-7758”
No comments:
Post a Comment