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)); if (context.Depth == 1) { IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory)); IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId); // Obtain the target entity from the input parmameters. EntityReference entity = (EntityReference)context.InputParameters["Target"]; ColumnSet cols = new ColumnSet( new String[] { "lastname", "firstname", "address1_name" }); var contact = service.Retrieve("contact", entity.Id, cols); if (contact != null) { if (contact.Attributes.Contains("address1_name") == false) { contact.Attributes.Add("address1_name", "a default first time value: " ); } else { contact["address1_name"] = "a value already exist"; } service.Update(contact); } } }
message : retrieve
mode : synchronous
pipeline stage :post operation
No comments:
Post a Comment