【问题标题】:QBXML create InvoiceLineAdd items on-demandQBXML 创建 InvoiceLine 按需添加项目
【发布时间】:2015-09-15 21:10:03
【问题描述】:

是否可以在不解析 QBXMLMsgsRs 返回值的情况下创建包含一次性物品的发票或按需生成缺少的物品?

我正在尝试通过 QuickBooks Web 连接器将发票传输到 QuickBooks,我无法确保这些项目已经存在。我知道 QuickBooks 本身能够按需创建项目。

我会收到以下返回信息:

QBXMLMsgsRs

QuickBooks 项目“1000000000”的引用无效 发票行。 QuickBooks 错误消息:参数无效。这 列表中不存在指定的记录。

作为后备,我会解析返回值,创建项目并再次提交发票,但我正在寻找现有的实现。我已经检查了Onscreen Reference (InvoiceAdd),没有任何有用的信息。

这是我QBXML的一个例子:

<?xml version="1.0" encoding="us-ascii"?>
<?qbxml version="13.0"?>
<QBXML>
    <QBXMLMsgsRq onError="stopOnError">
        <InvoiceAddRq requestID="bd4a0a4d-81ea-4f95-ae09-150f15a12423">
            <InvoiceAdd>
                <CustomerRef>
                    <ListID>80000004-1434444973</ListID>
                    <FullName>University of North Carolina</FullName>
                </CustomerRef>
                <TxnDate>1999-01-21</TxnDate>
                <RefNumber>9668</RefNumber>
                <BillAddress>
                    <Addr1>University of North Carolina</Addr1>
                    <Addr2>University City Blvd</Addr2>
                    <Addr3 />
                    <City>Charlotte</City>
                    <State>NC</State>
                    <PostalCode>9201</PostalCode>
                    <Country>United States</Country>
                </BillAddress>
                <InvoiceLineAdd>
                    <ItemRef>
                        <FullName>1000000000</FullName>
                    </ItemRef>
                    <Desc>Item 1 Description Goes Here</Desc>
                    <Quantity>1</Quantity>
                    <Rate>295</Rate>
                </InvoiceLineAdd>
                <InvoiceLineAdd>
                    <ItemRef>
                        <FullName>1000000001</FullName>
                    </ItemRef>
                    <Desc>Item 2 Description Goes Here</Desc>
                    <Quantity>5</Quantity>
                    <Rate>25</Rate>
                </InvoiceLineAdd>
            </InvoiceAdd>
        </InvoiceAddRq>
    </QBXMLMsgsRq>
</QBXML>

【问题讨论】:

    标签: quickbooks invoice items qbxml ondemand


    【解决方案1】:

    是否可以使用一次性物品创建发票或按需生成缺失物品,

    没有。

    我无法确保这些项目已经存在。

    为什么不呢?其他人都这样做...

    我知道 QuickBooks 本身能够按需创建项目。

    这是不正确的,QuickBooks 无法按需创建项目。如果该项目不存在并且您尝试将其键入到列表中,GUI 会提示您手动创建它。

    作为后备,我会解析返回值,创建项目并再次提交发票,但我正在寻找现有的实现。

    另一种选择是批量处理您的请求并始终尝试创建项目以确保它们存在。

    例如:

    <?xml version="1.0" encoding="utf-8"?>
    <?qbxml version="7.0"?>
    <QBXML>
        <QBXMLMsgsRq onError="continueOnError">
            <ItemNonInventoryAdd>
                ... your item data here ...
            </ItemNonInventoryAdd>
            <InvoiceAdd> 
                ... your invoice data here ...
            </InvoiceAdd>
        </QBXMLMsgsRq>
    </QBXML>
    

    更多示例:

    通过这样做,如果该项目尚不存在,则会在发票之前创建该项目。如果该项目确实存在,QuickBooks 将跳过请求的该部分并继续下一个。

    【讨论】:

    • @keith-palmer-consolibyte 你是第二点:当然有可能,但在我的情况下会产生很多开销(一次性会很棒)。 3rd:是的,你说得对,我表达错误。 4th:我也想过,可能我会坚持下去。感谢您的回答。我只是想确保没有更简单的实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多