【问题标题】:Updating entites in Dynamics CRM 4 through the CRM-webservice takes forever通过 CRM-web 服务更新 Dynamics CRM 4 中的实体需要很长时间
【发布时间】:2010-06-23 12:49:00
【问题描述】:

我在使用 Dynamics CRM 4 时遇到了一些问题。我尝试使用 WPF 应用程序中的 crm 服务更新价格和可用性,但这需要很长时间。长达半小时约 6000 种产品。需要这么长时间吗?我可以用其他更快的方式做到这一点吗?

QueryExpression query = new QueryExpression();
query.EntityName = EntityName.product.ToString();

BusinessEntityCollection entities = crmService.RetrieveMultiple(query);

foreach (product crmProduct in entities.BusinessEntities.OfType<product>())
{
  crmProduct.price = new CrmMoney() { Value = 123M };
  crmProduct.stock = new CrmNumber() { Value = 123 };
  crmService.Update(crmProduct);
}

【问题讨论】:

    标签: c# wpf entity dynamics-crm dynamics-crm-4


    【解决方案1】:

    要提高性能,请尝试仅更新您真正想要更新的字段。您的代码正在更新每个属性,因为您使用的是来自 CRM 的产品。当您这样做时,每个插件都会被触发,并且由于产品是核心 CRM 实体,因此在更新此实体时可以触发更多 CRM 逻辑。

    尝试仅获取产品的主键(productid)并设置两个字段并调用更新语句。这样,在使用顺序进程时,您应该在标准硬件上每秒实现大约 100 个请求。

    要实现更多更新,请尝试在 CRM 服务器上运行流程或使用并行处理。

    【讨论】:

      【解决方案2】:

      尝试在您的 CRM 服务对象上进行设置:

      crmService.UnsafeAuthenticatedConnectionSharing = true;
      

      这使得服务只验证一次,然后使用相同的凭据。如果代码位于多个人将使用同一个 CRM 服务的网站中,这将是一件坏事,因为未来的用户可以访问他们不应该访问的记录,但是,在只有一个的 WPF 应用程序中用户,这不是问题。

      Here's an article 包含更多指标和更多需要考虑的调整事项。它最初适用于 CRM 3,但我们发现 4 中的相同设置仍然可以提高性能。

      【讨论】:

        猜你喜欢
        • 2018-09-22
        • 1970-01-01
        • 2013-03-02
        • 1970-01-01
        • 2015-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多