I want to Update a Custom Fields Value in Sales Order Details i.e Stock Weight, I want to fetch the relative Stock Weight from the Products Table and then set it into the Custom Field on the Order Products Table. I want to do it with Plugins
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;
using Microsoft.Xrm.Tooling;
namespace WeightCalculation
{
public class Weight : IPlugin
{
public void Execute(IServiceProvider serviceProvider)
{
IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));
IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(IPluginExecutionContext));
IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);
if (context.InputParameters.Contains("Target") & context.InputParameters["Target"] is Entity &context.Depth < 2 )
{
Entity Orderline = context.InputParameters["Target"] as Entity;
EntityReference ExistinProdcut = (EntityReference)Orderline["productid"];
tracingService.Trace("2"+ExistinProdcut.Id);
Entity Product = new Entity("product");
tracingService.Trace("3");
Product.Id = ExistinProdcut.Id;
Orderline["cr873_stockweight"] = Product.GetAttributeValue<Decimal>("stockweight");
service.Update(Orderline);
}
}
}
}