如何使用QuickBooks API列出所有销售收据

时间:2016-04-11 17:15:46

标签: c# quickbooks qbfc

上下文

我使用C#桌面应用程序和QuickBooks QBFC API将销售数据导入QuickBooks。

我需要为公司文件中的所有销售收据构建一份备忘录值列表。这是因为备忘录包含销售参考,必须先检查重复项,然后才能导入新的销售收据。

问题

我目前使用的代码是:

IMsgSetRequest requestMsgSet = qbSessionManager.CreateMsgSetRequest("UK", 13, 0);

ISalesReceiptQuery salesReceiptQuery = requestMsgSet.AppendSalesReceiptQueryRq();

salesReceiptQuery.metaData.SetValue(ENmetaData.mdNoMetaData);
salesReceiptQuery.IncludeRetElementList.Add("Memo");

IMsgSetResponse responseMsgSet = qbSessionManager.DoRequests(requestMsgSet);

IResponseList responseList = responseMsgSet.ResponseList;

for (int i = 0; i < responseList.Count; i++)
{
    IResponse response = responseList.GetAt(i);

    if (response.StatusCode == 0)
    {
        ExistingOrderIds.Add(response.Detail.ToString());
    }
    else
    {
        Log.Error("While building OrderId list. Error returned when listing memos from QuickBooks Sales Receipts");
        Log.Error(response.StatusCode + " " + response.StatusMessage + " " + response.Detail);
    }
}

这只返回一个IResponseList项,而response.detail.toString()产生&#34; System .__ ComObject&#34;。该公司文件中实际上有几百个销售收据。

问题

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

好的,终于解决了这个问题。我的误解是你迭代IResponseList。实际上,单个IResponseList包含ISalesReceiptRet对象列表中的所有Memos。因此需要在ISalesReceiptRetList上进行迭代。 QuickBooks OSR示例不是远程清晰的!所以工作代码如下:

$("#draggable").animate({ test: 1000 }, {
                duration: 5000,
                easing: "swing",
                step: function (a, b) {
                    console.error(a);
                    //$(this).after("<div>Animation complete.</div>");
                }
            });