【发布时间】: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.Exception.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