Salesforce に接続するためのパートナー APIを使用する Java コードがあります。
Salesforce オブジェクトのレコード数/行数を取得しようとしています。私の試みはすべて失敗しました。
この目的のためにAggregateResultクラスを使用するサンプル コードを実行しました。実装しようとすると、プログラムは error( Cannot cast from SObject to AggregateResult
) をスローします。
どうすればできますか。
Salesforce に接続するためのパートナー APIを使用する Java コードがあります。
Salesforce オブジェクトのレコード数/行数を取得しようとしています。私の試みはすべて失敗しました。
この目的のためにAggregateResultクラスを使用するサンプル コードを実行しました。実装しようとすると、プログラムは error( Cannot cast from SObject to AggregateResult
) をスローします。
どうすればできますか。
以下はあなたのために働くかもしれません。私のシステムには、アカウントの子であるオブジェクト デバイスがあります。Device の子であるオブジェクト Alert もあります。集計クエリを使用して、特定の条件を満たすアラート レコードのアカウント 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 メソッドは、通常の getField(name) ではなく getChild(name) であることに注意してください。getChild(name) は、getValue() メソッドを持つ com.sforce.ws.bind.XmlObject を返します。