1

IntuitBatchRequest を使用して、複数の請求書を Quickbooks Online に挿入しています。成功した請求書と、失敗した請求書の具体的な問題を知るために、応答のプロパティを理解しようとしています。結果を確認するために、2 つの異なる方法を試しています。手順がそれらをループしてログに記録します。コードの簡略化されたバージョンは次のようになります。

Dim invcResponse as BatchItemResponse
For each invcResponse in lclBatchResponse.BatchItemResp
    batchID=invcResponse.bId 
    faultType=invcResponse.Fault.type
Next invcResponse

もう 1 つのコードは、レビュー用に応答をグリッドにバインドします。グリッド コードのスニペットは次のようになります。

<asp:GridView id="gv_BatchStatus" runat="server">
<Columns>
<asp:TemplateField>
    <ItemTemplate>
    Item<asp:Label id="lbl_item" runat="server" text='<%# Bind("Item.Id.value") %>'></asp:Label>
    Fault<asp:Label id="lbl_flt" runat="server" text='<%# Bind("Fault.type") %>'></asp:Label>

上記のプロパティが機能します。しかし、Fault.Error.Code にバインドしようとすると、Intuit.Ipp.Data.Error[] に「code」という名前のプロパティが含まれていないことがわかります。ただし、Error のクラス リストには、コード、詳細、要素、およびメッセージを含むプロパティがあると記載されています。これらのプロパティは、Visual Studio 内のオブジェクト ブラウザーでエラーの文字列プロパティとしても表示されます。それでは、私の質問は次のとおりです... 1. 成功の決定的な決定要因となるのは、どのような特性と価値ですか? 2. エラーに関する詳細情報を取得するにはどうすればよいですか? 私が把握できる唯一のエラー プロパティ (Fault.type) は、ID 例外が発生していることを示しています。

4

1 に答える 1

2

バッチ要求を正常に完了しました。応答項目をループする上記の反復コード内で、次のコードを使用して、各請求書が成功したかどうかを判断しています。

`If invcResponse.Fault is Nothing then 
    sStatus="OK"
else 
    For each error in invcResponse.Fault.Error 
        sStatus=sStatus & oError.Message &", " 
    Next oError 
End If` 

これは、ドキュメントと私が得ている応答と一致しているようです。

于 2013-02-26T22:09:24.613 に答える