码迷,mamicode.com
首页 > Windows程序 > 详细

Dynamics CRM2016 Web API之更新记录

时间:2016-03-17 14:49:03      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

      本篇继续探索web api,介绍如何通过web api更新记录。

    下面是一段简单的更新代码,更新了几个不同类型的字段,entity的赋值和前篇创建时候的一样的。

var entity = {};
    entity["name"] = '测试更新';//文本
    entity["new_gender"] = 100000001;//选项集
    entity["new_birth"] = new Date();//日期
    entity["new_testid@odata.bind"] = "/new_tests(55579B39-39E7-E511-9414-ADA183AB6249)";//lookup
    entity["new_bool"] = false;//bool
    entity["revenue"] = 255;//货币
    var jsonEntity = window.JSON.stringify(entity);
    var  id="D1E50347-86EB-E511-9414-ADA183AB6249";
    $.ajax({
        async: false,
        type: "PATCH",
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        data: jsonEntity,
        url: Xrm.Page.context.getClientUrl() + "/api/data/v8.0/accounts(" + id.replace('{', '').replace('}', '') + ")",
        success: function (data, textStatus, XmlHttpRequest) {
            if (XmlHttpRequest.status=='204') {
                alert('更新成功');
            }
        },
        error: function (XmlHttpRequest, textStatus, errorThrown) {           
        }
    });
下面两张图是更新前后的对比
技术分享

技术分享

      新的更新操作的API几个需要注意的地方:

      1、这里的请求type是patch了还不是post

      2、这里的返回状态值为204即为更新成功,没有返回值

      3、有一种方式的更新要注意,比如你先retrieve出了一个实体的所有属性,然后更改查询出来的entity里的某几个属性字段,再直接把这个entity request出去的话,那对于这个entity里的某些字段的内容没有做过更改系统也进行更新,最直接的体会就是在审核日志中的update记录中有这些字段更新记录(但实际你并没有更改字段内容),所以更新时最好new一个entity出来再进行复制。

以下是上述第三点讲到的sdk中的原文说明

技术分享


Dynamics CRM2016 Web API之更新记录

标签:

原文地址:http://blog.csdn.net/vic0228/article/details/50912892

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!