Dynamics 365 Web Api 建立與更新返回記錄ID及更新後的資料記錄

vic0228發表於2017-08-17

     在Dynamics CRM2016中web api的建立返回的status是204,response中沒有返回任何資料,所以我們在要取返回資料記錄的id時必須要通過擷取字串的方式去header中取。

   那Dynamics 365改進了這個問題,通過在請求頭中加prefer的方式,對建立的repuest進行了改進

 var entity = {};
    entity["name"] = '測試建立';//文字  
    entity["telephone1"] = '213213';
    entity["fax"]="879879";
    var jsonEntity = window.JSON.stringify(entity);        
    var req = new XMLHttpRequest()
    req.open("post", Xrm.Page.context.getClientUrl() + "/api/data/v8.2/accounts", false);
    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.setRequestHeader("Prefer", "return=representation");
    req.onreadystatechange = function () {
        if (this.readyState == 4) {
            if (this.status == 201) { 
                var data=JSON.parse(this.responseText);                
            }           
            else {                
            }
        }
    };
    req.send(jsonEntity);

    看下結果,返回了包括accountid在內的所有欄位記錄,status也由原來的204變成了201,和原來的區別就在於多了個prefer的頭,設定為“return=representation”


    更新我就不貼示例程式碼及結果截圖了,同建立一樣,加一個prefer頭,就能返回更新後的所有欄位值。

相關文章