尝试创建TimeActivity,同步错误,除非我使用EmployeeName / CustomerName或QB Id而不是NG Id

时间:2013-07-22 19:41:11

标签: quickbooks intuit-partner-platform

我正在发送正确的XML(非常确定,请参见下文),但同步失败并显示“QBXML验证错误消息:[severity = FATAL_ERROR,message = cvc-complex-type.2.4.a:发现无效内容元素'ItemServiceRef'。期望'{EntityRef}'之一。,locator = [url = null,line = -1,column = -1,node = null,object = com.intuit.sb.datasync.writeback。 qbxml.schema.ItemServiceRef @ 3409f69b,字段=空]]”。我不知道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>

IF 我将我的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 ......我不能?

2 个答案:

答案 0 :(得分:3)

这是TimeActivity V2 API中的一个错误。理想情况下,我们不需要同步和重新查询客户实体只是为了获得QB ID。已经提出了一张错误票。修复时我会在这里更新。

答案 1 :(得分:1)

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

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

不确定它是否恰好是您的问题,但可能是相关的。我发现的唯一其他问题是我有一个&#39;&amp;&#39;我的一个PayItemNames中的角色 - &#34; I&amp; E Engineering&#34;并且它通过同步引起了各种奇怪的无声错误。

就问题2而言,情况可能如此。它可能与QB中的事实有关,那里曾经是TimeTracker应用程序,它读取了Jobs并呈现了一个时钟类型的接口。

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