1

我正在使用 IntuitBatchRequest 将多张发票插入 Quickbooks Online。我试图了解响应属性以了解哪些发票是成功的,以及那些不成功的发票的具体问题是什么。我正在尝试两种不同的方法来查看结果。一旦程序循环通过它们进行记录。代码的简化版本如下所示:

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

另一个代码将响应绑定到网格以供我查看。网格代码片段如下所示:

<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 的对象浏览器中显示为 Error 的字符串属性。所以,这是我的问题... 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 回答