「グループ化」を表示する簡単なクラスと視覚力のページを作成しました。出力は完璧です。特定のアカウントにある機会の数が表示されます。
lstAR = [ select Account.Name AccountName, AccountId, Count(CampaignID) CountResult from Opportunity where CampaignID != null group by Account.Name,AccountId having COUNT(CampaignID) > 0 LIMIT 500 ];
アカウントに 10 件を超える商談がある場合、その商談を 10 件未満の別のアカウントに割り当てることができるようにしたいと思います。
次のコードを使用して、視覚力ページで結果を取得しました。
public list<OppClass> getResults() {
list<OppClass> lstResult = new list<OppClass>();
for (AggregateResult ar: lstAR) {
oppClass objOppClass = new oppClass(ar);
lstResult.add(objOppClass);
}
return lstResult;
}
class oppClass {
public Integer CountResult { get;set; }
public String AccountName { get;set; }
public String AccountID { get;set; }
public oppClass(AggregateResult ar) {
//Note that ar returns objects as results, so you need type conversion here
CountResult = (Integer)ar.get('CountResult');
AccountName = (String)ar.get('AccountName');
AccountID = (String)ar.get('AccountID');
}
所定の数よりも多い数を確認し、その数よりも少ないアカウントを商談に割り当てるには、どのような方法が最適でしょうか?
私が言ったように、コードに関しては、アカウントとカウントをグリッドに表示する素敵な小さなコントローラーと vf ページがあります。再割り当ての機会を実行するための適切なアプローチがわからないだけです。
ありがとうフランク