Dynamics CRM 2015 Update 1 系列(2): Upsert API

Dynamics CRM 2015 Update1 推出了一个重量级的改变 "Upsert Request", 相信做过接口的朋友们都碰到过这样的场景,在向CRM写入数据的时候,因为无法确定该数据是否已经在CRM系统中存在,需要先做一次查询操作然后在进行后续的创建或更新操作。这样的数据写入流程无疑会大大的降低数据同步性能,因为在同步一条数据的同时,我们需要与服务器交互两次。

随着Upsert Request的推出,我们可以对这样的情况说再见了,我们把数据的检测逻辑交给系统进行处理,我们唯一要做的事情就是为该API赋值上我们想要同步的记录,并调用Upsert API。系统会为根据我们传入的记录进行处理:如果存在则创建,否则更新。该API的使用方法也非常简单,可以参考如下例子:


            Entity account = new Entity("account");
            account.Attributes.Add("name", string.Format("{0} - {1}", "Sparta", DateTime.Now.ToLongTimeString()));

            UpsertRequest upsertRequest = new UpsertRequest() { Target = account };

            UpsertResponse upsertResponse = CrmSvc_Online.Execute(upsertRequest) as UpsertResponse;

            if (upsertResponse.RecordCreated)
            {
                account.Id = upsertResponse.Target.Id;
                account["name"] = string.Format("{0} - {1}", "Sparta", DateTime.Now.ToLongTimeString());
                UpsertRequest upsertRequest2 = new UpsertRequest() { Target = account };
                UpsertResponse upsertResponse2 = CrmSvc_Online.Execute(upsertRequest2) as UpsertResponse;
            }


你可能感兴趣的:(Dynamics CRM 2015 Update 1 系列(2): Upsert API)