我需要定期(即每晚)与CRM单向同步外部数据.
这包括创建新记录以及更新现有记录.
这意味着,我必须跟踪由同步过程创建的CRM实体的ID.
强调textI我已经设法从数据库表行创建和更新CRM中的记录,所以这不是问题.
id
:插入新行时表的主键设置
new_myentityid
:映射实体的主要属性,在同步过程创建记录之后设置
new_name
etc:记录属性的值
我没有id
在数据库中拥有一个PrimaryKey()并new_myentityid
在一个单独的列中跟踪CRM ID(),我还可以摆脱id
-columns并制作表的CRM-ID-Column(new_myentityid
)主键,插入新记录(当将其设置newid()
),所以基本上代替id
与new_myentityid
从数据库的角度.然后我可以通过ExecuteMultipleRequest
组合来批量upsert UpsertRequest
.
这样,我会在每个映射表中保存一列,以及在创建它们之后存储CRM ID的逻辑.
这是可以接受的还是有什么东西可以让我避免这种情况?
免责声明:我不知道这方面的最佳实践,所以这只是我个人对于为Dynamics多次开发的问题的看法.
我认为使用CRM实体GUID作为主键是一个好主意.它不那么复杂,在SQL中处理得很好.我假设你的数据库中的列是uniqueidentifier
.
我唯一的评论是不自己生成GUID.让CRM为您生成它们,因为它可以更好地保持所有顺序和索引.
有关更多详细信息,请参阅MSDN上的此博客条目