在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字段的更新写法在摸索中外,剩下的类型字段依照之前的赋值方法都没问题。