【问题标题】:QBXML - How do I go about adding brand new items on the fly when i modify an Invoice using InvoiceModRq?QBXML - 当我使用 InvoiceModRq 修改发票时,如何即时添加全新的项目?
【发布时间】:2023-04-10 03:06:01
【问题描述】:
<?xml version="1.0" encoding="utf-16"?><?qbxml version="13.0"?><QBXML>
    <QBXMLMsgsRq onError="stopOnError">
        <InvoiceModRq>
            <InvoiceMod>
                <TxnID>983C-1639586336</TxnID>     
                <EditSequence>1639586895</EditSequence>    
                <RefNumber>308_17</RefNumber>        
                <Other>INVU</Other>    
                <InvoiceLineMod>
                     <TxnLineID>-1</TxnLineID>          
                        <ItemRef>
                           <FullName>MP3-C </FullName>
                      </ItemRef>          
                        <Desc>Harley Davidson 1950 80hp bike </Desc>         
                         <Quantity>1.00</Quantity>         
                         <Amount>5.00</Amount>     
                         <Other1>308_17</Other1>          
                          <Other2>13041</Other2>
                            </InvoiceLineMod>
                          </InvoiceMod>
                        </InvoiceModRq>
                      </QBXMLMsgsRq>
                    </QBXML>

在我工作的公司,我们在 Dev 环境中有以下技术 - 公司自己的 C# Web 应用程序 companyABCDevapplication - 安装 Quick Books Web 连接器 - 安装 Quick Books Quickbooks Desktop 2017 Premier 试用版

我的任务是创建一个接口 Web 服务,该服务将由 Quick Books Web 连接器安装调用以与我们公司的ABCDev 应用程序通信

以下是用于本地开发的技术:

  • Intuit Quickbooks Desktop 2017 Premier 试用版

  • Intuit QuickBooks Web 连接器版本 2.2.0.71

  • Microsoft Visual Studio Enterprise 2015

  • 版本 14.0.25431.01 更新 3

  • Microsoft .NET Framework 版本 4.6.01055

不幸的是,当我将本文顶部显示的 XML 发送到 Quickbooks Web 连接器时,我收到以下错误:

<?xml version=\"1.0\" ?><QBXML>
  <QBXMLMsgsRs>
    <InvoiceModRs statusCode=\"3140\" statusSeverity=\"Error\" statusMessage=\"There is an invalid reference to QuickBooks Item &quot;MP3-C&quot; in the Invoice. \" />
  </QBXMLMsgsRs>
</QBXML>

我想修改带有Out 的发票,担心Quickbooks 是否已经知道有问题的ItemRef。我基本上想通过使用 ItemInventoryAdd 标记或 ItemNonInventoryAdd 标记来输入尚未进入 Quickbooks 的新项目。当我使用 InvoiceModRq 修改发票时,如何即时添加全新的项目?

【问题讨论】:

  • 如果有人要投反对票,那么您能否说明您投反对票的原因?

标签: c# wcf quickbooks invoice qbxml


【解决方案1】:

当我使用 InvoiceModRq 修改发票时,如何即时添加全新的项目?

你不能。

QuickBooks 不允许您做您想做的事情。

可以做的,就是总是在你的InvoiceAddRqInvoiceModRq节点之前发送一个ItemInventoryAddRq,基本上总是尝试在开具发票之前重新创建项目。

如果该项目已经存在,则添加将失败并出现错误,但仍会处理下一个请求。

如果您将此捆绑在单个 QBXMLMsgsRq 中,那么您需要确保使用:

onError="continueOnError"

代替:

onError="stopOnError"

即使项目添加请求失败,QuickBooks 也会继续处理其余请求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    相关资源
    最近更新 更多