使用qbxml获取特定客户的所有发票

时间:2014-12-31 18:59:47

标签: vba qbxml

我正在使用Excel VBA在本地访问quickbooks。我有代码来拉取所有客户并解析结果以及拉出所有发票并解析结果。我可以基于RefID和特定发票以同样的方式拉取特定客户。我想要做的是为特定客户提取所有发票,但无法弄明白。 Quickbooks OSR似乎也不适合我。我尝试过不同的浏览器,但无论我做什么,我都无法滚动浏览消息列表。每当我点击列表的向上或向下箭头时,列表就会消失,所以我能看到的唯一细节是CreditMemoMod(3.0)。这可以获得一张发票:

<InvoiceQueryRq requestID="2">
  <RefNumber>60522</RefNumber>
  <IncludeLineItems>true</IncludeLineItems>
</InvoiceQueryRq>

但这并不能为客户提供所有这些服务:

<InvoiceQueryRq requestID="2">
<CustomerRef>
  <ListID>'3000000-866741515'</ListID>
</CustomerRef>
<IncludeLineItems>true</IncludeLineItems>
</InvoiceQueryRq>

以及它的几种变体,但这似乎不起作用。有什么想法吗?

非常感谢。

2 个答案:

答案 0 :(得分:0)

使用ListId或FullName。

IDTYPE STRTYPE

ListID没有报价。

答案 1 :(得分:0)

查询几乎是正确的。 &#39; laoche&#39;忘记了<EntityFilter>标记。在QuickBooks中获取特定客户的发票,您需要使用以下QBXML:

<?xml version="1.0" encoding="utf-8"?>
<?qbxml version="13.0"?>
<QBXML>
    <QBXMLMsgsRq onError="stopOnError">
        <InvoiceQueryRq >
            <EntityFilter>
                <!--<ListID >80000002-1508838192</ListID>-->
                <FullName>Will Smith</FullName>
            </EntityFilter>
        </InvoiceQueryRq>
    </QBXMLMsgsRq>
</QBXML>

所有过滤功能都可以在consolibyte repo上找到。