【问题标题】:QBXML: Simple CustomerAdd "error when parsing"QBXML:简单客户添加“解析时出错”
【发布时间】:2013-10-03 22:07:17
【问题描述】:

我已经为 QuickBooks Desktop 构建了一个非常简单的 XML 请求,并使用 QBSDK qb*XML Validator 对其进行了验证,它告诉我 XML 实例是有效的:

<?qbxml version="12.0"?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <CustomerAddRq requestID="12">
      <CustomerAdd>
        <Name>EDWARDS, JOHN</Name>
        <FirstName>John</FirstName>
      </CustomerAdd>
    </CustomerAddRq>
  </QBXMLMsgsRq>
</QBXML>

但是,我自己的 C# 应用程序和 SDK 提供的 qbXML 测试应用程序都失败,并显示无用的消息“QuickBooks 在解析提供的 XML 文本流时发现错误。”

我已通过 QuickBooks 成功授权该应用程序,并授予它额外的客户信息权限以确保安全。

根据 OSR,唯一必填字段是“姓名”。我已经没有地方可以进行这项调查了。

我的处理方式有什么明显的问题吗?是否存在我没​​有看到的权限问题?

【问题讨论】:

  • 为我工作。您针对的是 QB 的哪个年份/版本?尝试与测试公司竞争。
  • @WilliamLorfing 有趣。我正在与 QB Pro 2013 竞争,我已经成立了一家测试公司。我可以成功运行 CustomerQueryRq。 “EDWARDS, JOHN”不在我的客户列表中,所以我认为这不是碰撞问题。我不确定这里的交易是什么......我直接从我的应用程序准备发送到 QuickBooks 的内容中提取了这个 XML。
  • 知道了! C# 的 XDocument.ToString() 删除了 指令。我的另一个查询有效,因为我使用的是 XmlDocument.InnerXml,它没有这样做(但与 XDocument 相比看起来更丑)。我继续,只是连接:doc.Declaration.ToString() + doc.ToString()。

标签: c# quickbooks qbxml


【解决方案1】:

知道了! C# 的 XDocument.ToString() 删除了 &lt;?xml?&gt; 指令。我的另一个查询有效,因为我使用的是 XmlDocument.InnerXml,它没有这样做(但与 XDocument 相比看起来更丑)。我继续,只是连接:

doc.Declaration.ToString() + doc.ToString()

XDocument.ToString() drops XML Encoding Tag基本一样的问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多