代码之家  ›  专栏  ›  技术社区  ›  user1949497

quickbooks供应商信用错误消息

  •  0
  • user1949497  · 技术社区  · 11 年前

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

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

    <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>
    
    3 回复  |  直到 11 年前
        1
  •  0
  •   user1949497    11 年前

    在不包括AccountId或ItemId之后,我能够发送create VendorCredit对象罚款。得到了成功的回应。然而,在我运行同步管理器后,转到QB桌面,找到帐户,卖家信用不在那里。有什么建议吗? 发送的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>
    
        2
  •  0
  •   nimisha shrivastava    11 年前

    尽管文档中提到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,才能应用它。 注意:供应商信用证不应与贷项凭证混淆,贷项凭证是您欠客户的东西

    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引用,它应该可以工作。

        3
  •  0
  •   user1949497    11 年前

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

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