【问题标题】:Do the CRM 4.0 Web Services force update of all entity fields even if they haven't changedCRM 4.0 Web 服务是否强制更新所有实体字段,即使它们没有更改
【发布时间】:2011-05-31 22:37:26
【问题描述】:

我有一个每天运行的应用程序,用于从外部来源向 CRM 发送合同更新。我使用的流程是:

  1. 通过 SQL 查询从 CRM 下载所有现有实体。
  2. 创建一个适当的 CRM 实体对象并填充所有值
  3. 在外部源中找到适当的条目并更新更改的字段
  4. 如果任何字段被标记为已更改,则将实体更新回 CRM。

我的问题是:CRM 中的所有字段是否都已更新,即使值没有更改?或者 CRM 是否足够智能,只能更新具有不同值的字段?

谢谢

【问题讨论】:

    标签: dynamics-crm crm


    【解决方案1】:

    在幕后,我相信 Microsoft CRM 正在对属性包中所有非空属性使用 SQL 更新。您还可以打开选项以覆盖空值。

    这听起来像是一个典型的增量过程。我将就我在 Microsoft CRM 中看到的两种最佳方式提供建议 -

    1. (最有效)如果您可以将一些触发器/插件连接到外部源以将更改实时传播到包含更改类型(插入/更新/删除)的暂存数据库,然后进行夜间同步处理表(用状态标记受影响的记录)并将每一行推送到 CRM 中。完成将更改推送到 CRM 后,它可以从暂存数据库中删除所有已标记为已处理的增量行。

    2. (如果实时推送不可用)如果源系统是所有数据的记录系统,则您需要从 Microsoft CRM 读取所有值(可以直接执行此操作或将它们加载到临时数据库中,如果您想节省 CRM 的负载)。在进行读取时,您应该在记录上有一个 ID,以便将它们追溯到源数据。当您将每个值与源数据库进行比较时,将任何差异写入具有差异类型(插入/更新/删除)的临时表。构建 delta staging 数据库后,以与第 1 部分相同的方式将所有这些记录处理到 CRM 中。

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 1970-01-01
      • 2016-12-03
      • 1970-01-01
      • 2012-02-21
      • 2015-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多