我的程序将创建100到200个新联系人,并在每日批处理作业中更新1,000到2,000个现有联系人。我们从Infusion Soft转移到Dynamics CRM,我们使用addWithDupCheck方法,该方法根据匹配的字段值添加或更新联系人记录。我知道我可以查询联系人的存在然后使用创建或更新,但是,我正在寻找一个与ExecuteMultipleRequest一起使用的解决方案。
答案 0 :(得分:1)
如果您使用的是2013年,您将无法选择UPSERT请求,就像在线2015 Update 1中一样。
答案 1 :(得分:0)
ExecuteMultipleRequest
只会带来轻微的性能提升。这是因为它包含的请求由服务器在单个线程上按顺序处理。您获得的唯一收益是减少到服务器的往返次数。
对于 CRM 2013(版本6),您可以考虑在处理要创建或更新的记录之前从CRM检索现有联系人记录的列表。从CRM查询少于5,000条记录不应该是一项昂贵或耗时的操作。
对于 CRM 2015 Update 1(版本7.1),添加了一个名为UpsertRequest
的新有用选项。此请求可用于更新现有记录或创建新记录(如果尚不存在)。 UpsertRequest
使用备用密钥(这些是可配置的),在您的方案中,它们是源系统中联系人记录的主键。您可以在MSDN上找到有关此主题的更多信息。