我使用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>
答案 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的其他数据问题。这是公认的答案。