4

所以我们有创建客户的代码,然后是客户工作。客户作业因莫名其妙的原因而失败。

这是初始请求:

<?xml version="1.0" encoding="US-ASCII"?><?qbxml version="8.0"?>
<QBXML>
    <QBXMLMsgsRq newMessageSetID="c80f653c176ed1e5975e" onError="stopOnError">
        <CustomerAddRq>
            <CustomerAdd>
                <Name>xxxx. (20615)</Name>
                <CompanyName>xxxx</CompanyName>
                <Salutation/>
                <FirstName/>
                <MiddleName/>
                <LastName/>
                <BillAddress>
                    <Addr1>xxxx</Addr1>
                    <Addr2>xxx</Addr2>
                    <Addr3/>
                    <Addr4/>
                    <City>xxx</City>
                    <State>xx</State>
                    <PostalCode>xxxxx</PostalCode>
                    <Country>USA</Country>
                    <Note/>
                </BillAddress>
                <Phone>000000</Phone>
                <Fax>000000</Fax>
                <Email/>
                <Contact/>
                <TermsRef>
                    <FullName>Net 30</FullName>
                </TermsRef>
            </CustomerAdd>
        </CustomerAddRq>
    </QBXMLMsgsRq>
</QBXML>

以及响应的相关部分:

<?xml version="1.0" ?>
<QBXML>
    <QBXMLMsgsRs newMessageSetID="3368552138367687637">
        <CustomerAddRs statusCode="0" statusSeverity="Info" statusMessage="Status OK">
            <CustomerRet>
                <ListID>80000118-1272906278</ListID>
                <TimeCreated>2010-05-03T13:04:38-05:00</TimeCreated>
                <TimeModified>2010-05-03T13:04:38-05:00</TimeModified>
                <EditSequence>1272906278</EditSequence>
                <TermsRef>
                    <ListID>80000006-1244039697</ListID>
                    <FullName>Net 30</FullName>
                </TermsRef>
                <Balance>0.00</Balance>
                <TotalBalance>0.00</TotalBalance>
                <JobStatus>None</JobStatus>
            </CustomerRet>
        </CustomerAddRs>
    </QBXMLMsgsRs>
</QBXML> 

我们回到 Quickbooks:

<?xml version="1.0" encoding="US-ASCII"?><?qbxml version="8.0"?>
<QBXML>
    <QBXMLMsgsRq newMessageSetID="0da30b5086cd3938febe" onError="stopOnError">
        <CustomerAddRq>
            <CustomerAdd>
                <Name>xxxxxxx</Name>
                <ParentRef>
                    <ListID>80000118-1272906278</ListID>
                </ParentRef>
                <CompanyName>xxxxxxx</CompanyName>
                <Salutation/>
                <FirstName/>
                <MiddleName/>
                <LastName/>
                <BillAddress>
                    <Addr1>xxxxx</Addr1>
                    <Addr2>xxxxx</Addr2>
                    <Addr3/>
                    <Addr4/>
                    <City>xxxx</City>
                    <State>xxx</State>
                    <PostalCode>xxxx</PostalCode>
                    <Country>USA</Country>
                    <Note/>
                </BillAddress>
                <Phone>00000000</Phone>
                <Fax>0000000</Fax>
                <Email/>
                <Contact/>
                <TermsRef>
                    <FullName>Net 30</FullName>
                </TermsRef>
            </CustomerAdd>
        </CustomerAddRq>
    </QBXMLMsgsRq>
</QBXML>  

然后 Quickbooks 用这个来响应第二个请求:

<?xml version="1.0" ?>
<QBXML>
    <QBXMLMsgsRs newMessageSetID="0da30b5086cd3938febe">
        <CustomerAddRs statusCode="3240" statusSeverity="Error"
                       statusMessage="Object &quot;80000118-1272906278&quot; specified in the request cannot be found. "/>
    </QBXMLMsgsRs>
</QBXML> 

第一个响应是 2013-01-21 10:34:22.353,第二个响应是 2013-01-21 10:35:21.080(服务器时间)。

为什么会失败?请注意,它通常有效。仅在这个请求序列中,它就使用相同的命令创建了另外两个没有问题的请求序列。

有时为了更好的衡量,它会用这个来响应:

<?xml version="1.0" ?>
<QBXML>
    <QBXMLMsgsRs newMessageSetID="215932fd6e1fffdd574c">
        <CustomerAddRs statusCode="3120" statusSeverity="Error"
                       statusMessage="Object &quot;11A0001-1289401726&quot; specified in the request cannot be found.  QuickBooks error message: Invalid argument.  The specified record does not exist in the list."/>
    </QBXMLMsgsRs>
</QBXML> 

您如何确保刚刚创建的客户在下一个命令中要引用的列表中?

4

2 回答 2

2

您是否尝试过指定 <FullName> 并使用它而不是 <ListID>?SDK 指南的第 15 章中有一个奇怪的部分,称为“关于 ListIDs 的注意事项”,它表明当您尝试添加作业时可能会更改 ListID。

于 2013-02-05T14:04:59.013 回答
1

当您创建客户时,您是否尝试过将客户设置为您的活跃客户?<CustomerAddRq>

    <CustomerAddRq>
        <CustomerAdd>
            <Name>xxxx. (20615)</Name>
            <IsActive>1</IsActive>
            <!-- rest of the details... -->
        </CustomerAdd>
    </CustomerAddRq>
于 2013-02-01T07:47:10.480 回答