Dynamics crm CRM 4.0 Web服务是否强制更新所有实体字段,即使它们没有';不改变

Dynamics crm CRM 4.0 Web服务是否强制更新所有实体字段,即使它们没有';不改变,dynamics-crm,crm,Dynamics Crm,Crm,我有一个每天运行的应用程序,用于从外部源向CRM发送合同更新。我使用的过程是: 通过SQL查询从CRM下载所有现有实体 使用填充的所有值创建适当的CRM实体对象 在外部源中找到适当的条目并更新更改的字段 如果任何字段被标记为正在更改,则将实体更新回CRM 我的问题是:即使值没有改变,CRM中的所有字段都更新了吗?或者CRM是否足够智能,只更新具有不同值的字段 感谢幕后工作,我相信Microsoft CRM正在对属性包中所有非空属性使用SQL更新。还可以启用选项以覆盖空值 这听起来像一个典型的增量

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

  • 通过SQL查询从CRM下载所有现有实体
  • 使用填充的所有值创建适当的CRM实体对象
  • 在外部源中找到适当的条目并更新更改的字段
  • 如果任何字段被标记为正在更改,则将实体更新回CRM
  • 我的问题是:即使值没有改变,CRM中的所有字段都更新了吗?或者CRM是否足够智能,只更新具有不同值的字段


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

    这听起来像一个典型的增量过程。我将就我所见过的Microsoft CRM的两种最佳解决方案提供建议:

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

  • (如果实时推送不可用)如果源系统是所有数据的记录系统,则需要从Microsoft CRM读取所有值(如果要在CRM上保存加载,可以直接执行此操作或将其加载到临时数据库)。在进行读取时,您应该在记录上有一个ID,以便将记录跟踪回源数据。将每个值与源数据库进行比较时,将任何差异写入具有差异类型(insert/update/delete)的暂存表。构建增量暂存数据库后,以与第1部分相同的方式将所有这些记录处理到CRM中