日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dynamics CRM2016 Web API之更新记录

發布時間:2024/9/5 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dynamics CRM2016 Web API之更新记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? 本篇繼續探索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)";//lookupentity["new_bool"] = false;//boolentity["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中的原文說明


? ? 4、前面給出的是一個基本的update代碼,一旦你要更新的記錄在系統中不存在,執行上面那段代碼直接update會出問題,request請求就不是update一條記錄而變成create一條記錄了,所以要在請求header中加這么一段setRequestHeader("If-Match", "*"),這樣執行后會報404,記錄不存在。


? ??再者如果我就想用上述代碼來創建一條記錄,那你要校驗啊,我給定的這個guid在系統中不存在我才創建,所以要在header中加這么一段setRequestHeader("If-None-Match", "*"),一旦存在就拋錯不創建了。


轉載于:https://www.cnblogs.com/cl1024cl/p/6205827.html

總結

以上是生活随笔為你收集整理的Dynamics CRM2016 Web API之更新记录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。