我需要定期(即每晚)将外部数据与CRM单向同步。

这包括创建新记录以及更新现有记录。

这意味着,我必须跟踪由同步过程创建的CRM实体的ID。

我已经设法通过数据库表中的行在CRM中创建和更新记录,所以这不是问题。

目前,我的映射表具有以下列


id:插入新行时设置的表主键
new_myentityid:映射实体的主要属性,在同步过程创建记录后设置
new_name等:记录属性的值


但是,我看到了一种大大简化整个过程的方法:

除了可以在数据库中没有PrimaryKey(id)并在单独的列中跟踪CRM ID(new_myentityid)之外,我还可以摆脱id列并使CRM-ID-表的列(new_myentityid)主键,并在插入新记录(newid())时进行设置,因此从数据库角度来看,基本上将id替换为new_myentityid。然后,我可以通过ExecuteMultipleRequestUpsertRequest组合批量上传。

这样,我将在每个映射表中保存一列,以及在创建CRM ID后存储它们的逻辑。



这是可以接受的还是有什么应该让我避免这种情况?

最佳答案

免责声明:我不知道这样做的最佳实践,所以这只是我对Dynamics进行多次开发后的个人看法。

我认为使用CRM实体GUID作为主键是一个好主意。它不那么复杂,并且可以在SQL中很好地处理。我假设您数据库中的列为uniqueidentifier

我唯一的意见是不要自己生成GUID。让CRM为您生成它们,因为它可以更好地保持所有顺序和索引。

See this blog entry on MSDN for further detail

09-19 08:39