2013-08-19 75 views
0

我正在使用.NET,使用QuickBooks V2 API尝试获取用户QBD项目数的计数。Quickbooks API V2 QBD - 查找如何使用RecordCountQuery的示例

有没有人有一个如何实现“RecordCountQuery”类来查找QBD中的项目#的工作示例?

这是我试图这样做的一个:

// 
// Get a record count of the items 
// 
var qbItemsCount = new RecordCountQuery(); 

var myResults = qbItemsCount.ExecuteQuery<Item>(_oQBIDataServices.ServiceContext); 

错误:

Intuit.Ipp.Exception.IdsException was unhandled by user code 
    HResult=-2146233088 
    Message= The RecordCountQuery xml must wrap an existing supported query object. Please modify your query and try again. 
    Source="" 
    ErrorCode=-2015 

我收集这个,我应该像忒“的executeQuery”方法使用不同类型的.Ipp.Data.QBD.ItemQuery。我试过这个,但得到了一个不同的错误。

所以我要求的不一定是上述代码的修正,而是.NET中RecordCountQuery类的一个工作示例。

谢谢。

回答

2

编辑 - 添加.NET代码

RecordCountQuery query = new RecordCountQuery(); 
CustomerQuery custQuery = new CustomerQuery(); 
query.Item1 = custQuery; 
List<RecordCount> customerRecordCountQuery = query.ExecuteQuery<RecordCount>(context).ToList(); 
string customerCount = customerRecordCountQuery[0].Count; 

我HV一个工作Java代码。请检查它是否有用。

API端点 - https://services.intuit.com/sb/recordcount/v2/ {* relam_id *}

POST体

<RecordCountQuery xmlns="http://www.intuit.com/sb/cdm/v2"> 
    <CustomerQuery/> 
</RecordCountQuery> 

响应

<?xml version="1.0" encoding="UTF-8"?><!--XML GENERATED by IntuitDataSyncEngine (IDS) using \\SBDomainServices\CDM\branches\3.9.0-rel-1--> 
<RestResponse xmlns="http://www.intuit.com/sb/cdm/v2" 
xmlns:xdb   ="http://xmlns.oracle.com/xdb" 
xmlns:xsi   ="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation ="http://www.intuit.com/sb/cdm/v2 ../common/RestDataFilter.xsd"><RecordCounts> 
<RecordCount> 
<ObjectName>Customer</ObjectName> 
<Count>392</Count> 
</RecordCount> 
</RecordCounts></RestResponse> 

Java代码的

public int testGetCount() { 
    int objectCount = 0; 
    try { 
     QBCustomerQuery CustomerQuery = QBObjectFactory.getQBObject(
       context, QBCustomerQuery.class); 
     QBDRecordCountService iRecordCountSer = QBDServiceFactory 
       .getService(context, QBDRecordCountService.class); 
     List<QBRecordCountImpl> recordCounts = iRecordCountSer.getCount(
       context, CustomerQuery); 
     Iterator<QBRecordCountImpl> iterator = recordCounts.iterator(); 
     while (iterator.hasNext()) { 
      QBRecordCountImpl next = iterator.next(); 
      objectCount = Integer.parseInt(next.getCount().toString()); 
     } 
     System.out.println("Customer count - " + objectCount); 
    } catch (QBInvalidContextException e) { 
     e.printStackTrace(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return objectCount; 
} 

谢谢

+0

谢谢玛纳斯。我现在能够获得我的QBD物品的记录数。 – DBallantyne

+0

很高兴知道这是有用的:)请接受答案。 谢谢 –

+0

那么你如何在v3中做同样的事情呢?我一直在挣扎了很长一段时间:https://intuitpartnerplatform.lc.intuit.com/questions/829658-how-to-select-count-from-invoice-using-idsquery-to-return-int? jump_to = comment_1920684 –

相关问题