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 を、顧客に対する義務であるクレジット メモと混同しないでください。

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_Retrifying_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 に答える