Skip to main content

Notifications

Announcements

No record found.

Microsoft Dynamics CRM forum
Suggested answer

Regarding the Update in the OrderProduct Table(Sales Order)

Posted on by 35

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);

}


}
}
}

Categories:
  • Suggested answer
    a33ik Profile Picture
    a33ik 84,321 Most Valuable Professional on at
    RE: Regarding the Update in the OrderProduct Table(Sales Order)

    Hello,

    You're missing the querying of the record itself. Here is the how your code can look like:

    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);
    
    	var Product = service.Retreive("product", ExistinProdcut.Id, new ColumnSet("stockweight"));
    
            Orderline["cr873_stockweight"] = Product.GetAttributeValue("stockweight");
            service.Update(Orderline);
    
          }
    
        }
      }
    }

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Anton Venter – Community Spotlight

Kudos to our October Community Star of the month!

Announcing Our 2024 Season 2 Super Users!

A new season of Super Users has arrived, and we are so grateful for the daily…

Dynamics 365 Community Newsletter - September 2024

Check out the latest community news

Leaderboard

#1
André Arnaud de Calavon Profile Picture

André Arnaud de Cal... 290,537 Super User 2024 Season 2

#2
Martin Dráb Profile Picture

Martin Dráb 228,520 Most Valuable Professional

#3
nmaenpaa Profile Picture

nmaenpaa 101,148

Leaderboard

Featured topics

Product updates

Dynamics 365 release plans