使用java获取salesforce对象的记录计数

时间:2013-08-06 11:31:33

标签: java web-services

我有一个使用合作伙伴API 的Java代码来连接Salesforce。

我正在尝试获取salesforce对象的记录/行数。我所有的尝试都没有成功。

我为此目的使用了 AggregateResult 类的示例代码。当我尝试实现它时,程序抛出错误(Cannot cast from SObject to AggregateResult)。

我该怎么做。

1 个答案:

答案 0 :(得分:0)

以下内容可能对您有用。在我的系统中,我有一个对象Device,它是Account的孩子。还有一个对象Alert是Device的子节点。我使用聚合查询来获取满足某种条件的警报记录的帐户ID。

StringBuilder openAlertQuery = new StringBuilder();
openAlertQuery.append("SELECT Device__r.Account__c");
openAlertQuery.append(" FROM Alert__c WHERE Cleared__c = FALSE GROUP BY Device__r.Account__c");
List<SObject> alertRecords = sfdcServer.doQuery(openAlertQuery.toString());
List<String> accountIds = new ArrayList<String>();
for (SObject alert : alertRecords)
{
    String accountId = (String) alert.getChild("Account__c").getValue();
    accountIds.add(accountId);
}

请注意,SObject方法是getChild(name)而不是通常的getField(name)。 getChild(name)返回一个com.sforce.ws.bind.XmlObject,它有getValue()方法。