tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Apexでランダム値の取得

Apexでランダムな値を取得する方法です。2013年のSalesforce Blogで公開されていました。

f:id:tyoshikawa1106:20180321153948p:plain

Selecting Random Numbers and Records on the Force.com Platform Part 1 | Developer Force Blog


共通クラスにしておくとつかいやすいと思います。


実行例です。引数に"5"と入力すると"0"〜"4"で生成されます。
f:id:tyoshikawa1106:20180321154356p:plain


SOQLで取得したSalesforceデータの中からランダムで抽出するといった使い方が可能です。
f:id:tyoshikawa1106:20180321154729p:plain

List<Account> accounts = [SELECT Name FROM Account ORDER BY Name ASC LIMIT 200];

for (Integer i = 0; i < 20; i++) {
    Integer result = CommonUtil.getRandomNumber(accounts.size());
    System.debug(accounts[result].Name);
}


例えば外部に公開されたフォームから問い合わせを受けたらランダムで担当者を抽出して所有者に割り当てるといった要望に対応するときに活用できます。