1

我正在发送正确的 XML(很确定,见下文),但同步失败并显示“QBXML 验证错误:[severity=FATAL_ERROR,message=cvc-complex-type.2.4.a: Invalid content was found started with element' ItemServiceRef'。应为“{EntityRef}”之一。,locator=[url=null,line=-1,column=-1,node=null,object=com.intuit.sb.datasync.writeback.qbxml.schema .ItemServiceRef@3409f69b,field=null]]"。我不知道 ItemServiceRef 是什么。这是我要发送的 XML:

<?xml version="1.0" encoding="utf-8"?>
<Add xmlns="http://www.intuit.com/sb/cdm/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RequestId="126fcdcda65a4a15ab422a69a2f021b1" xsi:schemaLocation="http://www.intuit.com/sb/cdm/V2./RestDataFilter.xsd ">
   <OfferingId>ipp</OfferingId>
   <TimeActivity>
      <TxnDate>2013-07-22</TxnDate>
      <NameOf>Employee</NameOf>
      <Employee>
        <EmployeeId idDomain="NG">88025</EmployeeId>
      </Employee>
      <CustomerId idDomain="NG">1212626</CustomerId>
      <ItemId idDomain="QB">1</ItemId>
      <PayItemId idDomain="QB">10</PayItemId>
      <BillableStatus>Billable</BillableStatus>
      <Taxable>false</Taxable>
      <HourlyRate>10.0</HourlyRate>
      <Hours>1</Hours>
      <Minutes>30</Minutes>
      <Description>Some description</Description>
   </TimeActivity>
</Add>

如果我将我的 xml 更改为此,那么一切正常:

<?xml version="1.0" encoding="utf-8"?>
<Add xmlns="http://www.intuit.com/sb/cdm/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RequestId="126fcdcda65a4a15ab422a69a2f021b1" xsi:schemaLocation="http://www.intuit.com/sb/cdm/V2./RestDataFilter.xsd ">
   <OfferingId>ipp</OfferingId>
      <TimeActivity>
      <TxnDate>2013-07-22</TxnDate>
      <NameOf>Employee</NameOf>
      <Employee>
        <EmployeeId idDomain="QB">17</EmployeeId>
      </Employee>
      <CustomerId idDomain="QB">15</CustomerId>
      <ItemId idDomain="QB">1</ItemId>
      <PayItemId idDomain="QB">10</PayItemId>
      <BillableStatus>Billable</BillableStatus>
      <Taxable>false</Taxable>
      <HourlyRate>10.0</HourlyRate>
      <Hours>1</Hours>
      <Minutes>30</Minutes>
      <Description>Tutoring for Algebra</Description>
   </TimeActivity>
</Add>

我所做的只是将我的 ID 更改为使用 QB 域 ID 而不是 NG 域 ID。我唯一遇到的问题是,当我通过 API 创建一个新对象时,Intuit 只返回我 NG 域 Id(因为它尚未创建 QB 域 Id)。所以 1,我必须获得 QB Id 的唯一方法是对我已经拥有 NG Id 的对象进行不必要的重新查询。2,如果我需要为尚未同步的客户/员工/供应商添加 TimeActivity ......我不能吗?

4

2 回答 2

3

这是 TimeActivity V2 API 中的一个错误。理想情况下,我们不需要同步和重新查询客户实体来获取 QB id。已提出错误票证。修复后我会在这里更新。

于 2013-07-24T09:52:12.137 回答
1

在创建 TimeActivity 时,我总是遇到 PayItems 的奇怪问题。

我认为PayItemRef指的是 PayItemName - 我最终实际上必须包含除了 PayItemId 之外的元素。这只对我很重要,因为它引起了一个真正的问题,因为我必须重构一堆东西来获取字符串 PayItemName 以及 ID(我已经在本地缓存)。

不确定这是否正是您的问题,但可能是相关的。我发现的唯一其他问题是我的一个 PayItemNames 中有一个“&”字符 - “I&E Engineering”,它会导致各种奇怪的同步无声错误。

至于问题2,可能是这样。这可能与 QB 内部曾经有 TimeTracker 应用程序的事实有关,该应用程序读取 Jobs 并呈现时钟类型的界面。

我曾经发现一个与此相关的开发论坛帖子帮助我破解它,但显然所有这些帖子都在 Intuit 的开发门户重新组织之后消失了。

于 2013-07-22T23:56:33.587 回答