0

我在从 WebResource 使用 CRM 2011 中的 JavaScript 创建 salesorderdetail 时遇到了一些麻烦。

我尝试过使用 XrmServiceToolkit(rest 和 soap)以及 jquery。它们都失败了,我收到的错误消息并没有真正为我指明一个有意义的方向。

作为记录,我使用 XrmServiceToolkit 在我的代码中检索和创建其他位置,没有任何问题。

我开始认为我要么缺少一些必需的属性,要么只是格式不正确,并且服务器未能在错误消息中指出这一点。

这是我发送的最后一个请求的示例(使用 jquery 时):

    {
  "SalesOrderId":{
    "Id":"83b09bc4-162a-e511-9a7b-00155d39be02",
    "LogicalName":"salesorder"
  },
  "ProductId":{
    "Id":"dd194def-5756-e211-89c3-00155d19380e",
    "LogicalName":"product"
  },
  "PricePerUnit":{
    "Value":"0.00000"
  },
  "Description":"",
  "BaseAmount":{
    "Value":"0.00000"
  },
  "ManualDiscountAmount":{
    "Value":"0.00000"
  },
  "ExtendedAmount":{
    "Value":"0.00000"
  },
  "LineItemNumber":4,
  "Quantity":{
    "Value":"1.00000"
  },
  "TransactionCurrencyId":{
    "Id":"1f9b9e82-91fc-df11-b612-00155d193722",
    "LogicalName":"transactioncurrency"
  },
  "UoMId":{
    "Id":"79b6977d-a2af-42a0-8497-1a0238d629ac",
    "LogicalName":"uom"
  },
  "OwnerId":{
    "Id":"96a0f8e0-2ef7-e111-bfff-00155d19380e",
    "LogicalName":"systemuser"
  }
}

曾经也有一个日期属性,但我把它拿出来确保它不是原因。

我正在发送这样的请求(使用 jquery 时):

$.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        datatype: "json",
        url: odata_endpoint +"/SalesOrderDetailSet",
        data: JSON.stringify(object),
        beforeSend: function (XMLHttpRequest)
        {
            XMLHttpRequest.setRequestHeader("Accept", "application/json");
        },
        success: function (data, textStatus, XmlHttpRequest)
        {
            var created_record = data["d"];

            console.log("create success: " + JSON.stringify(created_record));
        },
        error: function (XmlHttpRequest, textStatus, errorThrown)
        {
            console.log("create failed: " + JSON.stringify(errorThrown));
        }
    });

在这种情况下,我收到此错误:不正确的属性值类型 System.Data.Services.Serializers.JsonReader+JsonObjectRecords。

我无法理解为什么这一直失败,所以如果有人可以对此提出一些新的看法,将不胜感激,谢谢。

4

1 回答 1

3

我相信它与数量领域有关。数量是十进制的,所以你应该使用

Quantity: "1.0000"

代替

  "Quantity":{
    "Value":"1.00000"
  },
于 2015-08-11T09:57:19.500 回答