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