【问题标题】:Batching operation error (V3 API)批处理操作错误(V3 API)
【发布时间】:2013-09-18 02:46:54
【问题描述】:

在尝试使用新的 V3 api 发出 QBD 批处理请求时,我收到的错误似乎表明缺少元素。我以文档 (http://bit.ly/154KPWs) 中的示例进行了简化:

<IntuitBatchRequest xmlns="http://schema.intuit.com/finance/v3">
   <BatchItem  bId="bid1">
    <Customer>
       <Organization>false</Organization>
       <FullName>John Doe</FullName>
       <DisplayName>John Doe</DisplayName>
       <PrintOnCheckName>John Doe</PrintOnCheckName>
    </Customer>
  </BatchItem>
  <BatchItem  bId="bid2">
    <Customer>
       <Organization>false</Organization>
       <FullName>Jane Doe</FullName>
       <DisplayName>Jane Doe</DisplayName>
       <PrintOnCheckName>Jane Doe</PrintOnCheckName>
    </Customer>
   </BatchItem>
</IntuitBatchRequest>

回复如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2013-09-18T02:06:03.974Z"><Fault type="Validation"><Error code="0"><Message>UnmarshalException: javax.xml.bind.UnmarshalException
 - with linked exception:
[org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'BatchItem'. One of '{&quot;http://schema.intuit.com/finance/v3&quot;:BatchItemRequest}' is expected.]</Message></Error></Fault></IntuitResponse>

我错过了什么或文档吗?

【问题讨论】:

    标签: intuit-partner-platform


    【解决方案1】:

    这是一个有效的客户创建请求正文。

    Request Body : <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <IntuitBatchRequest xmlns="http://schema.intuit.com/finance/v3">
        <BatchItemRequest operation="create" bId="bID1">
            <Customer>
                <Organization>false</Organization>
                <Title>Job1</Title>
                <GivenName>TestCustomer1</GivenName>
                <MiddleName>SampleMiddleName1</MiddleName>
                <FamilyName>SampleSurname1</FamilyName>
                <Suffix>Sr.</Suffix>
                <CompanyName>ABCDGTech</CompanyName>
                <DisplayName>TestDataCustomerc7bceSample1</DisplayName>
                <PrintOnCheckName>Print name</PrintOnCheckName>
                <Active>true</Active>
                <PrimaryPhone>
                    <DeviceType>LandLine</DeviceType>
                    <FreeFormNumber>(650)111-1111</FreeFormNumber>
                    <Default>true</Default>
                    <Tag>Business</Tag>
                </PrimaryPhone>
                <AlternatePhone>
                    <DeviceType>LandLine</DeviceType>
                    <FreeFormNumber>(650)111-1111</FreeFormNumber>
                    <Default>false</Default>
                    <Tag>Business</Tag>
                </AlternatePhone>
                <Mobile>
                    <DeviceType>LandLine</DeviceType>
                    <FreeFormNumber>(650)111-1111</FreeFormNumber>
                    <Default>false</Default>
                    <Tag>Home</Tag>
                </Mobile>
                <Fax>
                    <DeviceType>LandLine</DeviceType>
                    <FreeFormNumber>(650)111-1111</FreeFormNumber>
                    <Default>false</Default>
                    <Tag>Business</Tag>
                </Fax>
                <PrimaryEmailAddr>
                    <Address>test@testing.com</Address>
                </PrimaryEmailAddr>
                <BillAddr>
                    <Line1>Testing1</Line1>
                    <Line2>Testing2</Line2>
                    <Line3>Testing3</Line3>
                    <City>Bangalore</City>
                    <Country>India</Country>
                    <CountrySubDivisionCode>KA</CountrySubDivisionCode>
                    <PostalCode>560097</PostalCode>
                </BillAddr>
                <ShipAddr>
                    <Line1>Shipping1</Line1>
                    <Line2>Shipping1</Line2>
                    <Line3>Shipping1</Line3>
                    <City>Bangalore</City>
                    <Country>India</Country>
                    <CountrySubDivisionCode>KA</CountrySubDivisionCode>
                    <PostalCode>560097</PostalCode>
                </ShipAddr>
                <ContactName>Contact Name</ContactName>
                <AltContactName>Alternate Name</AltContactName>
                <Notes>Testing Notes</Notes>
                <Job>false</Job>
                <Balance>100055.55</Balance>
                <OpenBalanceDate>2013-09-18</OpenBalanceDate>
                <BalanceWithJobs>5055.5</BalanceWithJobs>
                <CreditLimit>200000</CreditLimit>
                <AcctNum>Test020102</AcctNum>
                <ResaleNum>40</ResaleNum>
                <JobInfo>
                    <Status>InProgress</Status>
                    <StartDate>2013-09-16</StartDate>
                    <ProjectedEndDate>2013-09-23</ProjectedEndDate>
                    <EndDate>2013-09-23</EndDate>
                    <Description>In Progress</Description>
                </JobInfo>
            </Customer>
        </BatchItemRequest>
        <BatchItemRequest operation="create" bId="bID2">
            <Customer>
                <Organization>false</Organization>
                <Title>Job2</Title>
                <GivenName>TestCustomer2</GivenName>
                <MiddleName>SampleMiddleName2</MiddleName>
                <FamilyName>SampleSurname2</FamilyName>
                <Suffix>Sr.</Suffix>
                <CompanyName>ABCDGTechTech</CompanyName>
                <DisplayName>TestDataCustomerc48aaSample2</DisplayName>
                <PrintOnCheckName>Print name</PrintOnCheckName>
                <Active>true</Active>
                <PrimaryPhone>
                    <DeviceType>LandLine</DeviceType>
                    <FreeFormNumber>(650)111-1111</FreeFormNumber>
                    <Default>true</Default>
                    <Tag>Business</Tag>
                </PrimaryPhone>
                <AlternatePhone>
                    <DeviceType>LandLine</DeviceType>
                    <FreeFormNumber>(650)111-1111</FreeFormNumber>
                    <Default>false</Default>
                    <Tag>Business</Tag>
                </AlternatePhone>
                <Mobile>
                    <DeviceType>LandLine</DeviceType>
                    <FreeFormNumber>(650)111-1111</FreeFormNumber>
                    <Default>false</Default>
                    <Tag>Home</Tag>
                </Mobile>
                <Fax>
                    <DeviceType>LandLine</DeviceType>
                    <FreeFormNumber>(650)111-1111</FreeFormNumber>
                    <Default>false</Default>
                    <Tag>Business</Tag>
                </Fax>
                <PrimaryEmailAddr>
                    <Address>test@testing.com</Address>
                </PrimaryEmailAddr>
                <BillAddr>
                    <Line1>Testing1</Line1>
                    <Line2>Testing2</Line2>
                    <Line3>Testing3</Line3>
                    <City>Bangalore</City>
                    <Country>India</Country>
                    <CountrySubDivisionCode>KA</CountrySubDivisionCode>
                    <PostalCode>560097</PostalCode>
                </BillAddr>
                <ShipAddr>
                    <Line1>Shipping1</Line1>
                    <Line2>Shipping1</Line2>
                    <Line3>Shipping1</Line3>
                    <City>Bangalore</City>
                    <Country>India</Country>
                    <CountrySubDivisionCode>KA</CountrySubDivisionCode>
                    <PostalCode>560097</PostalCode>
                </ShipAddr>
                <ContactName>Contact Name</ContactName>
                <AltContactName>Alternate Name</AltContactName>
                <Notes>Testing Notes</Notes>
                <Job>false</Job>
                <Balance>100055.55</Balance>
                <OpenBalanceDate>2013-09-18</OpenBalanceDate>
                <BalanceWithJobs>5055.5</BalanceWithJobs>
                <CreditLimit>200000</CreditLimit>
                <AcctNum>Test020102</AcctNum>
                <ResaleNum>40</ResaleNum>
                <JobInfo>
                    <Status>InProgress</Status>
                    <StartDate>2013-09-16</StartDate>
                    <ProjectedEndDate>2013-09-23</ProjectedEndDate>
                    <EndDate>2013-09-23</EndDate>
                    <Description>In Progress</Description>
                </JobInfo>
            </Customer>
        </BatchItemRequest>
    </IntuitBatchRequest>
    

    端点 - https://quickbooks.api.intuit.com/v3/company/{RelamID}/batch?

    在您的批处理请求中,BatchItemRequest 标记中缺少 [ operation="create" ]。

    代码 - batchOperation.addEntity(customer, OperationEnum.CREATE, "bID" + i);

    希望对你有用。

    编辑添加示例查询(使用 V3 java devkit)

    Item item = GenerateQuery.createQueryEntity(Item.class);
    Item itemIn = getItemFields();
    String query = select($(item.getId()), $(item.getDescription())).where($(item.getId()).eq(itemIn.getId())).generate();
    QueryResult queryResult = service.executeQuery(query);
    

    生成的请求 URI - https://quickbooks.api.intuit.com/v3/company/791926875/query?query=SELECT+Id%2C+Description+FROM+Item+WHERE+Id+%3D+%27null%27&amp;

    方法 - 获取

    谢谢

    【讨论】:

    • 是的,确实很有帮助。请务必更正文档,因为这是我们的主要参考点,不正确的样本非常昂贵。
    • 很高兴知道它有帮助。我一定会提出文件更改请求。谢谢。
    • Manas,如何在批处理中添加查询?
    • 有两种方法。 batchOperation.addQuery(query, bId); batchOperation.addCDCQuery(arg0, arg1, arg2);参考 - developer.intuit.com/docs/0025_quickbooksapi/0055_devkits/… 谢谢
    • 我正在使用 Apex 在 force.com 平台上进行开发。你能在上面的请求正文中添加一个查询吗?谢谢。
    猜你喜欢
    • 2015-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-19
    • 2015-06-29
    • 1970-01-01
    • 2011-06-04
    • 1970-01-01
    相关资源
    最近更新 更多