Intuit QBO SDK v3将Customer PreferredDeliveryMethod设置为None似乎无法正常工作

时间:2015-02-09 21:21:06

标签: sdk quickbooks-online

我使用Intuit QBO SDK v3 DataService.FindById来获取Customer实体,修改一些属性,包括PreferredDeliveryMethod,然后调用DataService.Update。当我将PreferredDeliveryMethod设置为' Print'或者'电子邮件',客户被正确修改,如响应对象所示。当我将PreferredDeliveryMethod设置为' None'时,响应将返回' Print'无论我在应用修改之前是什么。如何将PreferredDeliveryMethod设置为'无'为了正确回应?

更新:此问题发生在沙盒公司。当我与制作公司一起尝试时,更新工作正常。有一些怀疑涉及公司设置,但我还不知道是什么。

请求:

<?xml version="1.0"?>
<Customer xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" domain="QBO" sparse="false" xmlns="http://schema.intuit.com/finance/v3">
  <Id>3</Id>
  <SyncToken>2</SyncToken>
  <MetaData>
    <CreateTime>2014-09-19T19:51:22-04:00</CreateTime>
    <LastUpdatedTime>2015-02-10T09:53:30-05:00</LastUpdatedTime>
  </MetaData>
  <GivenName>Grace</GivenName>
  <FamilyName>Pariente</FamilyName>
  <FullyQualifiedName>Cool Cars</FullyQualifiedName>
  <CompanyName>Cool Cars</CompanyName>
  <DisplayName>Cool Cars</DisplayName>
  <PrintOnCheckName>Cool Cars</PrintOnCheckName>
  <Active>true</Active>
  <PrimaryPhone>
    <FreeFormNumber>(415) 555-9933</FreeFormNumber>
  </PrimaryPhone>
  <AlternatePhone />
  <Fax />
  <PrimaryEmailAddr>
    <Address>Cool_Cars@intuit.com</Address>
  </PrimaryEmailAddr>
  <DefaultTaxCodeRef />
  <Taxable>false</Taxable>
  <BillAddr>
    <Id>4</Id>
    <Line1>65 Ocean Dr.</Line1>
    <City>Half Moon Bay</City>
    <CountrySubDivisionCode>CA</CountrySubDivisionCode>
    <PostalCode>94213</PostalCode>
    <Lat>37.4300318</Lat>
    <Long>-122.4336537</Long>
  </BillAddr>
  <ShipAddr />
  <Job>false</Job>
  <BillWithParent>false</BillWithParent>
  <SalesTermRef />
  <Balance>0</Balance>
  <BalanceWithJobs>0</BalanceWithJobs>
  <PreferredDeliveryMethod>None</PreferredDeliveryMethod>
</Customer>

响应:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2015-02-10T06:53:55.320-08:00">
<Customer domain="QBO" sparse="false">
   <Id>3</Id>
   <SyncToken>3</SyncToken>
   <MetaData>
      <CreateTime>2014-09-19T16:51:22-07:00</CreateTime>
      <LastUpdatedTime>2015-02-10T06:53:55-08:00</LastUpdatedTime>
   </MetaData>
   <GivenName>Grace</GivenName>
   <FamilyName>Pariente</FamilyName>
   <FullyQualifiedName>Cool Cars</FullyQualifiedName>
   <CompanyName>Cool Cars</CompanyName>
   <DisplayName>Cool Cars</DisplayName>
   <PrintOnCheckName>Cool Cars</PrintOnCheckName>
   <Active>true</Active>
   <PrimaryPhone><FreeFormNumber>(415) 555-9933</FreeFormNumber></PrimaryPhone>
   <PrimaryEmailAddr><Address>Cool_Cars@intuit.com</Address></PrimaryEmailAddr>
   <Taxable>false</Taxable>
   <BillAddr>
      <Id>4</Id>
      <Line1>65 Ocean Dr.</Line1>
      <City>Half Moon Bay</City>
      <CountrySubDivisionCode>CA</CountrySubDivisionCode>
      <PostalCode>94213</PostalCode>
      <Lat>37.4300318</Lat>
      <Long>-122.4336537</Long>
 </BillAddr>
 <Job>false</Job>
 <BillWithParent>false</BillWithParent>
 <Balance>0</Balance>
 <BalanceWithJobs>0</BalanceWithJobs>
 <PreferredDeliveryMethod>Print</PreferredDeliveryMethod>
 </Customer>
</IntuitResponse>

2 个答案:

答案 0 :(得分:0)

您可以捕获并共享原始请求/响应XML。

我尝试了以下java代码,它工作正常。

        Customer customer = new Customer();
        customer.setId("1");
        Customer cust = this.service.findById(customer);
        System.out.println(cust.getPreferredDeliveryMethod());

        cust.setPreferredDeliveryMethod("None");

        this.service.update(cust);
        System.out.println("Updated - " + cust.getPreferredDeliveryMethod());

GetById

<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2015-02-10T02:10:51.595-08:00">
   <Customer domain="QBO" sparse="false">
      <Id>1</Id>
      <SyncToken>4</SyncToken>
      <MetaData>
         <CreateTime>2015-02-02T20:34:19-08:00</CreateTime>
         <LastUpdatedTime>2015-02-10T02:10:39-08:00</LastUpdatedTime>
      </MetaData>
      <GivenName>John</GivenName>
      <FamilyName>Doe</FamilyName>
      <FullyQualifiedName>John Doe</FullyQualifiedName>
...
      <Job>false</Job>
      <BillWithParent>false</BillWithParent>
      <Balance>242.25</Balance>
      <BalanceWithJobs>242.25</BalanceWithJobs>
      <PreferredDeliveryMethod>Print</PreferredDeliveryMethod>
   </Customer>
</IntuitResponse>

将PrefDelMethod 更新为“无”

<Customer domain="QBO" sparse="false" xmlns="http://schema.intuit.com/finance/v3">
    <Id>1</Id>
    <SyncToken>4</SyncToken>
    <MetaData>
        <CreateTime>2015-02-02T20:34:19-08:00</CreateTime>
        <LastUpdatedTime>2015-02-10T02:10:39-08:00</LastUpdatedTime>
    </MetaData>
    <GivenName>John</GivenName>
    <FamilyName>Doe</FamilyName>
    <FullyQualifiedName>John Doe</FullyQualifiedName>
...
    <BalanceWithJobs>242.25</BalanceWithJobs>
    <PreferredDeliveryMethod>None</PreferredDeliveryMethod>
</Customer>

更新回复

<IntuitResponse xmlns="http://schema.intuit.com/finance/v3" time="2015-02-10T02:10:53.800-08:00">
   <Customer domain="QBO" sparse="false">
      <Id>1</Id>
      <SyncToken>5</SyncToken>
      <MetaData>
         <CreateTime>2015-02-02T20:34:19-08:00</CreateTime>
         <LastUpdatedTime>2015-02-10T02:10:53-08:00</LastUpdatedTime>
      </MetaData>
      <GivenName>John</GivenName>
      <FamilyName>Doe</FamilyName>
      <FullyQualifiedName>John Doe</FullyQualifiedName>
...
      <BalanceWithJobs>242.25</BalanceWithJobs>
      <PreferredDeliveryMethod>None</PreferredDeliveryMethod>
   </Customer>
</IntuitResponse>

答案 1 :(得分:0)

Per Intuit开发者社区,“很可能是沙箱问题,因为它已经设置了数据,有时会导致数据问题。”

是的,我看过Sandbox的其他数据问题。这是公认的答案。