我书面方式的函数采取发票文件中定义的格式,并且经由qbXML其导入QuickBooks的。其中一个requrements的是,它有可能重新导入比现有发票而改性比创建一个新的具有相同数量的相同的发票编号。

我的问题是与QuickBooks如何处理地址。我发现了地址可以是任何格式(在6个不同的contenents),没有附着的任何保证针对该区域设置一个适当的地址格式。

所以创建发票是很简单的,我在XML标记指定通过addr5帐单地址ADDR1和QuickBooks的需要没有问题。的无论其作为原始文本,它试图解析出城市,州邮政编码和国家它不存储地址。

发票修改,给予相同的地址信息,将不解析出市州和邮编,而是留地址线完好,并保留市州和邮编不变,创建发票重复线,无一个格式文本,其他的城市,州和邮编的复合材料。造成这种情况的解决方法是明确地设市州邮编国家并注意空白发票上的修改。然而,还没有完全解决的问题。

有时QuickBooks的将正确解析的地址和下一行(注标签上内部表示)添加一个随机数。

和有时的QuickBooks将拒绝该地址,即使认为接受了上创建。我假设,因为它试图解析5行地址和修改,因为这个城市国家和邮政编码有没有地方去,它没有地方存放它们。

眼下

我的唯一的解决办法是简单地留地址不变,并告诉大家,由于QuickBooks的限制是没有办法修改发票上的重新导入地址的用户,只有发票行。

有没有人遇到此之前,如果是这样,你周围有一个更好的工作?你知道地址解析器,可以合理近似什么的QuickBooks这样做,我可以把它的城市状态和邮政编码上以一致的方式建立的?

现在,在一定程度上(除了最后一个)的QuickBooks是给我,告诉我这是什么解析上创建一个响应,这样我就可以在理论上存储知道我处理的,但短期写了一些时间耗时地址解析例程是否有任何解决方案来获得的QuickBooks重新从新解析地址。

下面是请求和响应。注意,发票创建是相同的,并且我删除某些标识信息,但保留了字段长度相同。

请求:

<?xml version="1.0" encoding="UTF-8"?>  <?qbxml version="7.0"?>
<QBXML>
<QBXMLMsgsRq newMessageSetID="243f42acf4011139b7a" onError="stopOnError">
    <InvoiceModRq>
        <InvoiceMod>
            <TxnID>4E64-1242411202</TxnID>
            <EditSequence>1242411202</EditSequence>
            <CustomerRef>
                <ListID>80000012-1242156814</ListID>
            </CustomerRef>
            <ARAccountRef>
                <FullName>Accounts Receivable</FullName>
            </ARAccountRef>
            <TxnDate>2009-04-01</TxnDate>
            <RefNumber>M-053491</RefNumber>
            <BillAddress>
                <Addr1>S &amp; S ACME CO., INC.</Addr1>
                <Addr2>MR. ABC ABCDEF</Addr2>
                <Addr3>981 ABCD 761 ST</Addr3>
                <Addr4>ABABC, AA 99999-3584</Addr4>
                <Addr5>USA</Addr5>
                <City/>
                <State/>
                <PostalCode/>
                <Country/>
                <Note/>
            </BillAddress>
            <TermsRef>
                <FullName>NET 30</FullName>
            </TermsRef>
            <DueDate>2009-05-01</DueDate>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc/>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>ABCDEFG ABC $3,000.00 *</Desc>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc/>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>FOR:</Desc>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <ItemRef>
                    <FullName>ANFEE</FullName>
                </ItemRef>
                <Desc>1 . #9999 S &amp; S ABCD CO., INC., ABCDE, AA *</Desc>
                <Amount>123456.72</Amount>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc/>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>PLEASE NOTE: Blahh Someone sellificant repeats on July 31st, 2009.</Desc>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>Sellifcan of your Someone Ssellificant to Jan. 31st, 2011 is contingent upon</Desc>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>your satisfying all open invoices and all other/different issues.</Desc>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc/>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc/>
            </InvoiceLineMod>
            <InvoiceLineMod>
                <TxnLineID>-1</TxnLineID>
                <Desc>* PLUS expenses for some amount of service described here.</Desc>
            </InvoiceLineMod>
        </InvoiceMod>
    </InvoiceModRq>
</QBXMLMsgsRq>
</QBXML>

响应:

    <?xml version="1.0" ?> <QBXML>
<QBXMLMsgsRs newMessageSetID="243f42acf4011139b7a">
<InvoiceModRs statusCode="3210" statusSeverity="Error"
              statusMessage="The &quot;address&quot; field has an invalid value &quot;&quot;.  QuickBooks error message: The parameter is incorrect. "/>
</QBXMLMsgsRs>
</QBXML> 
有帮助吗?

解决方案

这里的另一个潜在的解决方法是双更新的发票。首先空出的地址。二是送五大行无市状态拉链等的任何提及,正如上创建完成。

我没有测试这个(用户所接受,该地址不会改变,所以我不打算尝试一下),但我把这个做为一个想法,所以如果有人有类似的问题,他们可以尝试一下,也许在这里评论,如果它工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top