0

当我将以下 XML 发送到 QuickBooks 桌面云时,我收到了以下我不理解的错误。谷歌搜索但没有找到任何相关内容。有谁知道源列是什么?

收到错误消息:p_validate_txn_ln - 无法找到每个 ref id acc_id = 39 idDomain = QB 的 src_column_name_id

<Object xsi:type="VendorCredit"><Header>
<DocNumber>8D1FC366607</DocNumber>
<TxnDate>2013-09-11</TxnDate>
<Note>Expense Report 09/11/2013 #2</Note>
<VendorName>E100</VendorName>
<TotalAmt>-25.00</TotalAmt>
<APAccountName>Accounts Payable</APAccountName></Header>
<Line>
<Desc>Airfare:</Desc>
<Amount>25.00</Amount>
<ClassId idDomain="QB">5</ClassId>
<ReimbursableInfo>
<CustomerId idDomain="QB">5</CustomerId>
<JobId idDomain="QB">6</JobId>
</ReimbursableInfo>
<BillableStatus>NotBillable</BillableStatus>
<AccountId idDomain="QB">39</AccountId>
</Line>
</Object>
4

3 回答 3

0

尽管文档提到 AccountId 作为必填字段,但它不是(文档可能略有偏差)。你可以忽略它。如果您选择添加它,则需要包含与项目相关的所有字段。相反,ItemId 是必填字段。因此,请将其包含在您的请求中。请参考: https ://developer.intuit.com/docs/0025_quickbooksapi/0050_data_services/v2/0500_quickbooks_windows/0600_object_reference/vendorcredit

我创建了一个供应商创建请求,如下所示,并且能够获得正确的响应。要求-

<Add xmlns="http://www.intuit.com/sb/cdm/v2"     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RequestId="Szey2z7hrGf888888888jfc5hrGSYg99" xsi:schemaLocation="http://www.intuit.com/sb/cdm/v2 ./RestDataFilter.xsd">
<Object xsi:type="VendorCredit">
<Header>
    <DocNumber>8D1FC366607</DocNumber>
    <TxnDate>2013-09-11</TxnDate>
    <Note>Expense Report 09/11/2013 #2</Note>
    <VendorName>TestVendor4</VendorName>
    <TotalAmt>-25.00</TotalAmt>
    <APAccountName>Accounts Payable</APAccountName>
</Header>
<Line>
    <Desc>Airfare:</Desc>
    <Amount>25.00</Amount>
    <ClassId idDomain="QB">1</ClassId>
    <ReimbursableInfo>
        <CustomerId idDomain="QB">31</CustomerId>           
    </ReimbursableInfo>
    <BillableStatus>NotBillable</BillableStatus>
    <ItemId idDomain="QB">12</ItemId>       
</Line>
</Object>
</Add>

回复-

<RestResponse xmlns="http://www.intuit.com/sb/cdm/v2">
  <Success RequestId="Szey2z7hrGf888888888jfc5hrGSYg99">
<ObjectRef>
  <Id idDomain="NG">1925041</Id>
  <SyncToken>1</SyncToken>
  <LastUpdatedTime>2013-09-12T07:50:34Z</LastUpdatedTime>
</ObjectRef>
<RequestName>VendorCreditAdd</RequestName>
<ProcessedTime>2013-09-12T07:50:34Z</ProcessedTime>
  </Success>
</RestResponse>

编辑提出的问题: *请注意: * VendorCredit 是一项 AP 交易,代表第三方对未提供的退货或服务的信用。在 QuickBooks 桌面版本中,供应商信用也称为“账单信用”。也就是说,这是供应商欠您的信用,因为您多付了账单、退回商品或出于其他原因。在账单支付交易中引用 VendorCredit 之前,它不会被应用。注意:不应将 VendorCredit 与 Credit Memo 混淆,后者是您欠客户的

ItemId 是指获得信用的那些项目。您可以通过在 QBD 中调用 Item api 来获取 ItemId。参考在您的请求中。由于您没有在请求 xml 中提及 itemid,因此您收到了响应,但与 QB 桌面文件的同步失败。您的供应商信用对象必须已出错。

要检查实体是否处于错误状态,您可以通过执行查询并设置 ErroredObjectsOnly="true" 来检查。

http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0100_Calling_Data_Services/0015_Retrieving_Objects#Objects_in_Error_State

如果实体处于错误状态,您可以使用 SyncStatus API 查询具体原因:

http://docs.developer.intuit.com/0025_Intuit_Anywhere/0050_Data_Services/v2/0500_QuickBooks_Windows/0600_Object_Reference/SyncStatus

请在您的请求中添加 itemid 参考,它应该可以工作。

于 2013-09-12T07:58:17.917 回答
0

http://support.quickbooks.intuit.com/support/articles/SLN74445

QuickBooks 检测到您没有项目当尝试输入没有项目的发票或销售收据时收到此警告:QuickBooks 检测到您没有项目或您的一个或多个金额与项目无关。请输入一个项目。为什么会发生这种情况如果在“首选项”中选中“需要帐户”,则会出现此警告。如何修复它 要能够输入没有项目的发票或销售收据: 1. 单击编辑菜单。2. 单击首选项... 3. 单击会计首选项> 公司首选项。4. 取消选中需要帐户。5. 单击确定。您现在可以输入没有项目的发票或销售收据。

于 2013-09-19T23:42:27.213 回答
0

在不包括 AccountId 或 ItemId 之后,我能够很好地发送创建的 VendorCredit 对象。得到成功响应。但是,在我运行同步管理器后,转到 QB 桌面,找到帐户,vendorCredit 不存在。有什么建议吗?发送的 XML:

<Object xsi:type="VendorCredit">
    <Header>
        <DocNumber>58B58878D79</DocNumber>
        <TxnDate>2013-09-12</TxnDate>
        <Note>Expense Report 09/12/2013 #2</Note>
        <VendorName>E100</VendorName>
        <TotalAmt>-43.80</TotalAmt>
        <APAccountName>Accounts Payable</APAccountName>
    </Header>
    <Line>
        <Desc>Advertising:</Desc>
        <Amount>43.80</Amount>
        <ClassId idDomain="QB">1</ClassId>
        <ReimbursableInfo>
            <CustomerId idDomain="QB">4</CustomerId>
            <JobId idDomain="QB">8</JobId>
        </ReimbursableInfo>
    </Line>
</Object>

收到的回复:

<?xml version="1.0" encoding="UTF-8"?>
<RestResponse>
    <Success RequestId="4a3f1538a01b4a4dac6f03406c6710c7">
    <VendorCredit>
    <Id idDomain="NG">14542796</Id>
    <SyncToken>1</SyncToken>
    <MetaData>
        <CreatedBy>app</CreatedBy>
        <CreateTime>2013-09-12T23:41:38Z</CreateTime>
        <LastModifiedBy>app</LastModifiedBy>
        <LastUpdatedTime>2013-09-12T23:41:38Z</LastUpdatedTime>
    </MetaData>
    <Synchronized>false</Synchronized>
    <Header>
        <DocNumber>58B58878D79</DocNumber>
        <TxnDate>2013-09-12T00:00:00Z</TxnDate>
        <Note>Expense Report 09/12/2013 #2</Note>
        <VendorName>E100</VendorName>
        <TotalAmt>-43.8</TotalAmt>
        <APAccountName>Accounts Payable</APAccountName>
    </Header>
    <Line>
        <Id idDomain="NG">50786642</Id>
        <Desc>Advertising:</Desc>
        <Amount>43.8</Amount>
        <ClassId idDomain="QB">1</ClassId>
        <ReimbursableInfo>
        <    CustomerId idDomain="QB">4</CustomerId>
            <JobId idDomain="QB">8</JobId>
        </ReimbursableInfo>
    </Line>
</VendorCredit>
<RequestName>VendorCreditAdd</RequestName><ProcessedTime>2013-09-12T23:41:38Z</ProcessedTime>
</Success>
</RestResponse>
于 2013-09-12T23:51:25.850 回答