更新客户 - Intuit Anywhere

时间:2013-02-19 06:58:31

标签: quickbooks

我们正在尝试在我们的应用程序中添加写回功能。 我们正在使用Java SDK。我们尝试两种方式来更新现有客户

方法1

  1. 使用customerQuery
  2. 检索客户对象
  3. 使用相同的客户对象进行更新
  4. 已成功更新。
  5. 方法2

    1. 创建新客户对象
    2. 使用SetId()方法为新创建的对象设置Id
    3. 更新客户
    4. 获得以下异常
    5. -2001Error Detail :: cvc-complex-type.2.4.a:从元素'MiddleName'开始发现无效内容。其中一个'{“http://www.intuit.com/sb/cdm/v2”:SyncToken,“http://www.intuit.com/sb/cdm/v2”:MetaData,“http://www.intuit.com/sb/cdm/v2”:ExternalKey,“http://www.intuit.com/sb/cdm/v2”:已同步,“http://www.intuit.com/sb/cdm/v2 “:AlternateId,”http://www.intuit.com/sb/cdm/v2“:CustomField,”http://www.intuit.com/sb/cdm/v2“:草稿,”http://www.intuit.com/sb/cdm/v2“:ObjectState,”http://www.intuit.com/sb/cdm/v2“:PartyReferenceId,”http://www.intuit.com/sb/cdm/v2 “:TypeOf}'是预期的。 com.intuit.ds.qb.IDSException:错误(-2001):cvc-complex-type.2.4.a:找到以元素'MiddleName'开头的无效内容。其中一个'{“http://www.intuit.com/sb/cdm/v2”:SyncToken,“http://www.intuit.com/sb/cdm/v2”:MetaData,“http://www.intuit.com/sb/cdm/v2”:ExternalKey,“http://www.intuit.com/sb/cdm/v2”:已同步,“http://www.intuit.com/sb/cdm/v2 “:AlternateId,”http://www.intuit.com/sb/cdm/v2“:CustomField,”http://www.intuit.com/sb/cdm/v2“:草稿,”http://www.intuit.com/sb/cdm/v2“:ObjectState,”http://www.intuit.com/sb/cdm/v2“:PartyReferenceId,”http://www.intuit.com/sb/cdm/v2 “:TypeOf}'是预期的。

      方法1工作正常。但我怀疑方法2。 第一种方法是否正确? 第二种方法有什么问题?

1 个答案:

答案 0 :(得分:3)

  

方法2

     

使用SetId()方法为新创建新的客户对象集ID   创建对象更新客户获取以下异常

这个^^^不起作用,因为你没有提供SyncToken值。

查看docs并查看update a QuickBooks customer examples,特别注意始终显示的SyncToken标记。

每当您使用QuickBooks执行更新/ mod操作时,都必须始终提供最新的 SyncToken标记。这意味着要更新客户,您必须首先执行查询以获取最新的SyncToken值,在您的mod /更新请求中设置SyncToken,然后发送请求。

有关我们QuickBooks integration wiki上的SyncTokens的更多信息。