我有一个使用合作伙伴API 的Java代码来连接Salesforce。
我正在尝试获取salesforce对象的记录/行数。我所有的尝试都没有成功。
我为此目的使用了 AggregateResult 类的示例代码。当我尝试实现它时,程序抛出错误(Cannot cast from SObject to AggregateResult
)。
我该怎么做。
答案 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()方法。