【问题标题】:Quickbooks SDK Call LimitationsQuickbooks SDK 调用限制
【发布时间】:2014-01-09 16:29:24
【问题描述】:

我正在使用 QuickBooks SDK 中的 CustomerAdd 演示程序来添加客户。添加客户时,我可以设置姓名和其他两个字段(即电话和电子邮件),但如果我尝试设置超过 2 个字段,则会收到错误消息“QuickBooks 在解析 XML 输入流时发现错误”。这是对试用版的限制还是什么?我的 Quickbooks 版本是试用版。

【问题讨论】:

  • 您应该发布您的代码/XML。如果我们看不到您在做什么,我们该如何帮助您?

标签: c# sdk quickbooks


【解决方案1】:

这个qbXML wiki article at consolibyte.com无耻的回答:

“0x80040400 QuickBooks 在解析提供的 XML 文本流时发现错误”是什么意思。什么意思?

这意味着您的 qbXML 请求中有某种奇怪的错误。尝试通过 QuickBooks SDK 中包含的 QuickBooks qbXML 测试/验证器实用程序运行您的 qbXML 请求。

值得注意的是,在构建 qbXML 请求时,顺序很重要。例如,如果 qbXML 请求在 OSR 中定义如下:

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="7.0"?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <CustomerAddRq>
      <CustomerAdd>
        <Name>STRTYPE</Name>
        <FirstName>STRTYPE</FirstName>
        <MiddleName>STRTYPE</MiddleName>
        <LastName>STRTYPE</LastName>
        ...

那么这将不起作用(因为&lt;Name&gt;…&lt;/Name&gt;&lt;FirstName&gt;…&lt;/FirstName&gt;标签的顺序相反):

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="7.0"?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <CustomerAddRq>
      <CustomerAdd>
        <FirstName>Keith</FirstName>        
        <Name>Keith R Palmer</Name>
        <MiddleName>R</MiddleName>
        <LastName>Palmer</LastName>
        ...

其他常见错误包括:

  • 省略必需的元素
  • 忘记关闭标签/非常丑陋、无效的 XML 流
  • 发送非 ASCII 或非 UTF-8 文本(不要发送奇怪的非标准字符)
  • 发送应转义的 XML 属性:& 。这些需要转换为: & 以将它们包含在 qbXML 请求中。
  • 使用您的 QuickBooks 版本不支持的 qbXML 版本
  • 使用您的 qbXML 版本不支持的节点

如何解决 qbXML 错误?

【讨论】:

  • +1 用于通过验证器运行 xml;这让我省了很多心痛。节点的顺序是特定的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-11
相关资源
最近更新 更多