注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

微软MVP罗勇的博客

微软MVP罗勇,www.luoyong.me

 
 
 

日志

 
 

Dynamics CRM 2015/2016新特性之二十六:使用Web API执行乐观并发操作  

2016-03-18 14:13:32|  分类: 2015/2016新特性 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复209或者20160318可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!
执行乐观并发的更新或者删除,关键的修改是增加 If-Match 这个请求头。每次查询记录都会返回记录的版本号。示例代码如下:

    var clientURL = Xrm.Page.context.getClientUrl();
    var req = new XMLHttpRequest()
    req.open("GET", encodeURI(clientURL + "/api/data/v8.0/ly_tests(94B750DA-17B9-E511-80DC-000D3A804C3F)?$select=ly_name"), true);
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.onreadystatechange = function () {
        if (this.readyState == 4) {
            req.onreadystatechange = null;
            if (this.status == 200) {
                var responseJSON = JSON.parse(this.responseText);               
                Xrm.Utility.alertDialog("查询到的记录的版本号是" + responseJSON["@odata.etag"] + " ,请修改记录后点击确定!");
                req.open("PATCH", encodeURI(clientURL + "/api/data/v8.0/ly_tests(94B750DA-17B9-E511-80DC-000D3A804C3F)"), true);
                req.setRequestHeader("If-Match", responseJSON["@odata.etag"]);
                req.setRequestHeader("Accept", "application/json");
                req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
                req.setRequestHeader("OData-MaxVersion", "4.0");
                req.setRequestHeader("OData-Version", "4.0");
                req.onreadystatechange = function () {
                    if (this.readyState == 4 /* complete */) {
                        req.onreadystatechange = null;
                        if (this.status == 204) {
                            Xrm.Utility.alertDialog("记录修改成功!")
                        }
                        else {
                            var error = JSON.parse(this.response).error;
                            Xrm.Utility.alertDialog("修改罗勇测试实体记录出错." + error.message);
                        }
                    }
                };
                var test = {};
                test.ly_name = "单行文本";//单行文本
                req.send(JSON.stringify(test));
            }
            else {
                var error = JSON.parse(this.responseText).error;
                Xrm.Utility.alertDialog("查询罗勇测试实体记录出错." + error.message);
            }
        }
    };
    req.send();

测试截图如下,证实有效。
Dynamics CRM 2015/2016新特性之二十六:使用Web API执行乐观并发操作 - 罗勇 - 微软MVP罗勇的博客

Dynamics CRM 2015/2016新特性之二十六:使用Web API执行乐观并发操作 - 罗勇 - 微软MVP罗勇的博客

素格格新疆特产店--做新疆特产的搬运工。
本店由博主的新疆老婆开设,搬运各种上等的新疆特产,是自用,送礼,年货,孝敬长辈特别是(岳)父母的首选!
 Dynamics CRM 2015/2016新特性之十五:CRM On<wbr>line升级和产品计价更多选择 - 罗勇 - 微软MVP罗勇的博客
 
  评论这张
 
阅读(336)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017