从IntuitBatchResponse获取状态

时间:2013-02-26 18:21:41

标签: intuit-partner-platform

我正在使用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中的对象浏览器中显示为错误的字符串属性。所以,这是我的问题...... 1.什么样的财产和价值是成功的最终决定? 2.如何获得有关错误的更多信息?我能搞清楚的唯一错误属性(Fault.type)只是告诉我我得到了一个ID异常。

1 个答案:

答案 0 :(得分: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` 

这似乎与文档和我得到的回应一致。