Dynamics CRM2016 Web API之更新记录的单个属性字段值

      在web api中提供了对单个属性的更新接口,这和查询中查询单个属性类似。对这个接口我个人也是比較喜欢的。

 var id = "{D1E50347-86EB-E511-9414-ADA183AB6249}";
    var propertyValue="測试";
    $.ajax({
        async: false,
        type: "PUT",
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        data: JSON.stringify("{'Value':" + propertyValue + "}"),
        url: Xrm.Page.context.getClientUrl() + "/api/data/v8.0/accounts(" + id.replace('{', '').replace('}', '') + ")/name",
        success: function (data, textStatus, XmlHttpRequest) {
            if (XmlHttpRequest.status=='204') {
                alert('更新成功');
            }
        },
        error: function (XmlHttpRequest, textStatus, errorThrown) {
           
        }
    });

    这里的request的type是put,而传输的属性值得格式是{"value": "propertyValue"}。url的格式和查询单个属性的写法同样,返回的status依然是204。

    在測试的过程中遇到一个比較傻的问题,我取客户实体中的revenue(年收入,货币字段)的值200去更新另外一条客户记录的revenue的字段值。出现了以下第二章截图中的错误。把该值得类型识别成了int32了(这没错),然后就说不是decimal类型报错,然后我把它改成200.01就成功了(200.00也不行)。脑门上一排黑线中。

。。。。



    除了上面说到的money字段的更新问题,还剩一个lookup字段的更新写法在摸索中外,剩下的类型字段依照之前的赋值方法都没问题。

posted @ 2017-08-21 13:43  cxchanpin  阅读(652)  评论(0编辑  收藏  举报