【问题标题】:Getting error while Creating Case Record Using Odata Rest Services使用 Odata 休息服务创建案例记录时出错
【发布时间】:2014-08-07 09:56:36
【问题描述】:

我在 CustomEntity 上有功能区按钮。 CustomEntity 有一个文本字段和帐户查找基于我正在创建案例记录的字段。但记录没有创造。有人可以帮我吗?我在哪里做错了。以下是我的示例

function test() {
debugger;
var PostID = Xrm.Page.getAttribute("ism_name").getValue();
var ismaccount = Xrm.Page.getAttribute("ism_account").getValue()[0].name;
var serverUrl = document.location.protocol + "//" + document.location.host;
var incident = {};
incident.Title = PostID; 
incident.CustomerId = ismaccount;
var jsonEntity = window.JSON.stringify(incident);
//incident.Description = "Dynamicallty created record using REST Odata";
var oDataPath = serverUrl + "/Retail/XRMServices/2011/OrganizationData.svc"; 
var retrieveReq = new XMLHttpRequest(); 
var Odata = oDataPath + "/IncidentSet";
retrieveReq.open("POST", Odata, true);
retrieveReq.setRequestHeader("Accept", "application/json");
retrieveReq.setRequestHeader("Content-Type", "application/json;charset=utf-8");
retrieveReq.setRequestHeader("X-HTTP-Method", "CREATE");
retrieveReq.send(JSON.stringify(jsonEntity));
}

【问题讨论】:

    标签: javascript rest dynamics-crm-2011 odata dynamics-crm


    【解决方案1】:

    您能否提供更多信息,例如 HTTP 响应?你的 OData 版本是什么?是V3还是V4?如果是 V3,请求应该是这样的

        POST serviceRoot/entityset HTTP/1.1
    
        DataServiceVersion: 3.0;
        MaxDataServiceVersion: 3.0;
        Content-Type: application/json;odata=minimalmetadata
        Accept: application/json;odata=minimalmetadata
        Accept-Charset: UTF-8
    
        {
          content of the entity
        }
    

    如果是 V4,请求应该是这样的

        POST serviceRoot/EntitySet
        OData-Version: 4.0
        Content-Type: application/json;odata=minimalmetadata
        Accept: application/json
        {
           "@odata.type" : "namespace.type",
           content of the entity
        }
    

    您的代码似乎缺少 odata 版本标头。

    【讨论】:

    • 如何检查 Odata 版本标头?我只是在动态 crm javascript 表单中使用此代码。
    • @ppandu 你可以发送一个简单的 GET 请求并检查响应头,它应该包含 odata 版本信息。如果您不熟悉,可以使用工具telerik.com/fiddler
    • 如果问题真的是 Odata 版本意味着我必须在哪里修改动态 crm 表单 javascript?
    • @ppandu 我认为您应该只修改您在问题中提供的代码即可。似乎缺少 odata 版本信息。
    • 您也可以尝试使用 fiddler 将 POST 请求直接发送到服务,以确保服务可以正常工作。
    猜你喜欢
    • 2015-03-20
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2013-02-03
    相关资源
    最近更新 更多