【问题标题】:Intuit QBO SDK Update Bill error generating the XML document Value of ItemElementName mismatches the type of System.DecimalIntuit QBO SDK Update Bill 错误生成 XML 文档 ItemElementName 的值与 System.Decimal 的类型不匹配
【发布时间】:2015-02-03 16:58:13
【问题描述】:

我正在使用 Intuit QBO SDK v3 Intuit.Ipp.QueryFilter.QueryService(Of Bill) 来获取按 Bill.Id 过滤的账单集合。集合已成功填充。我只想修改 Bill 的一些 ItemBasedExpenseLineDetail 成员的 BillableStatus 并使用 Intuit.Ipp.DataService.DataService.Update(Of Bill) 对其进行更新。无论我是否实际修改了 Bill 的任何属性,Update 方法都会生成以下错误:

Intuit.Ipp.E​​xception.SerializationException:生成 XML 文档时出错。 ---> System.InvalidOperationException:生成 XML 文档时出错。 ---> System.InvalidOperationException:ItemElementName 的值与 System.Decimal 的类型不匹配;您需要将其设置为 Intuit.Ipp.Data.ItemChoiceType.@UnitPrice。 在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterBill.Write163_ItemBasedExpenseLineDetail(字符串 n,字符串 ns,ItemBasedExpenseLineDetail o,布尔 isNullable,布尔需要类型) 在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterBill.Write181_Line(字符串 n,字符串 ns,行 o,布尔 isNullable,布尔需要类型) 在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterBill.Write185_Bill(字符串 n,字符串 ns,Bill o,布尔 isNullable,布尔需要类型) 在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriterBill.Write186_Bill(对象 o) --- 内部异常堆栈跟踪结束 --- 在 System.Xml.Serialization.XmlSerializer.Serialize(XmlWriter xmlWriter,对象 o,XmlSerializerNamespaces 命名空间,字符串 encodingStyle,字符串 id) 在 System.Xml.Serialization.XmlSerializer.Serialize(流流,对象 o,XmlSerializerNamespaces 命名空间) 在 Intuit.Ipp.Utility.XmlObjectSerializer.Serialize(对象实体) --- 内部异常堆栈跟踪结束 --- 在 Intuit.Ipp.Utility.XmlObjectSerializer.Serialize(对象实体) 在 Intuit.Ipp.Core.Rest.RestHandler.PrepareRequest(RequestParameters requestParameters,对象 requestBody,字符串 oauthRequestUri) 在 Intuit.Ipp.DataService.DataService.Update[T](T 实体)

Bill 的所有 ItemBasedExpenseLineDetail 成员的值似乎正确地是 Intuit.Ipp.Data.ItemChoiceType.UnitPrice,如 Watch 或 Immediate Window 所示,例如:

?DirectCast(qboItem.Line(0).AnyIntuitObject, Intuit.Ipp.Data.ItemBasedExpenseLineDetail).ItemElementName

单价{2}

任何想法如何在没有此错误的情况下执行更新或在哪里进一步查看?

【问题讨论】:

    标签: sdk xml-serialization quickbooks-online


    【解决方案1】:

    啊,我一发布这个问题,就在 Intuit.Developer Community 上找到了答案

    我猜你有来自 SDK 的默认设置,其中请求格式是 XMl,响应是 Json。

    这会导致您在上面提到的序列化问题。

    请在您的代码中添加以下行,以使请求/响应都采用 xml 或 json 格式。

    context.IppConfiguration.Message.Request.SerializationFormat = Intuit.Ipp.Core.Configuration.SerializationFormat.Json;

    context.IppConfiguration.Message.Response.SerializationFormat = Intuit.Ipp.Core.Configuration.SerializationFormat.Json;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-08
      • 1970-01-01
      • 1970-01-01
      • 2014-11-10
      • 2019-07-05
      • 2011-12-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多