通过 Webconnector 的 QuickBook 桌面预算 api

QuickBook desktop budget api through Webconnector

我试图通过帮助 webconnector 从 QuickBooks 桌面获取预算。但是我在 Quickbook 日志文件中收到“QuickBooks 在解析提供的 XML 文本流时发现错误”。即使当我尝试使用带有 quickbook sdk 的 qbValidator 工具进行验证时,“qbValidator.exe”显示为有效的 XML 请求。以下是我的 XML 请求。如果有人可以帮助我找出我哪里出错了,那将会很有帮助。预算已存在于 QuickBooks 中,它显示来自 UI 的报告。提前谢谢你

<?xml version="1.0" encoding="UTF-8"?>

<?qbxml version="13.0"?>

<QBXML>

  <QBXMLMsgsRq onError="stopOnError">

   <BudgetSummaryReportQueryRq requestID="1">

     <BudgetSummaryReportType>BalanceSheetBudgetOverview</BudgetSummaryReportType>

     <FiscalYear>2021</FiscalYear>

     <BudgetCriterion >Accounts</BudgetCriterion> 

     <SummarizeBudgetColumnsBy>Date</SummarizeBudgetColumnsBy>

     <SummarizeBudgetRowsBy>Account</SummarizeBudgetRowsBy>

   </BudgetSummaryReportQueryRq>

  </QBXMLMsgsRq>

</QBXML>

intuit提供的sdktestplus3-tool在验证请求的时候就派上用场了。我们可以通过以下链接进行设置
https://developer.intuit.com/app/developer/qbdesktop/docs/get-started/first-steps-with-the-sdktestplus3-tool

获得 QBXML 文件后,我们可以在请求文件行中输入文件名和路径,或者 select 浏览并找到您要使用的 xml。

您不需要对标志进行任何其他更改,除非您需要测试特定设置。 现在您只需按照您的程序通常执行的相同步骤操作即可。在状态 window 中,您会看到任何错误或消息。

  1. 打开连接
  2. 开始会话-如果您之前使用过SDKTestPlus3,将出现正常的授权对话框。
  3. 发送请求

发送请求后,您可以通过 select 点击该按钮或在与请求文件相同的目录中查看输出,您将看到一个 QBResponse.xml 文件,其中包含响应它。

N.B。确保在退出之前始终结束会话并关闭连接。否则,您将无法关闭 QuickBooks,因为它认为有程序仍在尝试访问它。

通过上述步骤,QBXML 被修改为以下以获取响应

<?xml version="1.0" encoding="UTF-8"?>
   <?qbxml version="12.0"?>
      <QBXML>
         <QBXMLMsgsRq onError="continueOnError">
             <BudgetSummaryReportQueryRq requestID="%s">
                <BudgetSummaryReportType>ProfitAndLossBudgetOverview</BudgetSummaryReportType>
          <FiscalYear>2021</FiscalYear>
                 <BudgetCriterion>Accounts</BudgetCriterion>                               
                 <SummarizeBudgetColumnsBy>Date</SummarizeBudgetColumnsBy> 
                 <SummarizeBudgetRowsBy>Account</SummarizeBudgetRowsBy>
           </BudgetSummaryReportQueryRq>
       </QBXMLMsgsRq>
   </QBXML>