0

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

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

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

我该怎么做。

4

1 回答 1

0

以下可能对您有用。在我的系统中,我有一个对象设备,它是帐户的子项。还有一个对象 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) 返回一个具有 getValue() 方法的 com.sforce.ws.bind.XmlObject。

于 2014-03-02T23:42:18.210 回答