Force.com定期的にApex処理を実行するには「Apexをスケジュール」の機能からスケジュール登録して実行できます。Schedulable』を宣言していれば、ただのApexクラスも実行することが可能です。した処理ならバッチ処理ではなくただのApex処理で対応できないかなと思い、先月作成されたレコード件数を集計する処理をつくってみました。COUNTをつかって集計します。集計期間と一緒にレコード件数を登録していく感じです。Apexバッチのようにstartメソッドで大量レコードを取得して、forループで集計していくより簡単に取得できるかなと思いました。コンストラクタ処理を実行するとシステム日付を基準に「先月の年と月」の値を取得して、それを集計範囲として集計処理を行いますこのとき「年と月」は引数で渡せるようにもしておくと、何らからの理由で過去分のレコードを集計したいときにも対応できるようになります。手動実行は開発者コンソールから行います。これで任意の期間分の集計レコードも作成できます。やってみて・・・COUNTクエリで取得することで、Apexバッチに比べて短時間で処理できて良いんじゃないかなと試してみたのですが、COUNTクエリの場合、取得上限に50000件までの制限があります。ガバナ制限の詳細はこちら集計件数が大きい場合は、Apexバッチを使う方が良さそうです。(最初は件数が少なくても利用していく内に件数が大きくなる可能性も考えられます。)今回の試したサンプルのように集計期間が1ヶ月と範囲を指定すれば大丈夫かなと思ったのですが、データ移行などで大量に作成された場合にパンクする可能性がありました。(あと5万人ユーザがいる場合は1人、1レコード作成したら5万件になりますが...)やっぱり基本はApexバッチで対応するようにしておく方がいいかなと思います。実際に動かしてみていろいろ気づけたので良かったです。おまけクエリを実行する場合は、LIMITの宣言を行っておくと安全です。はてなブログPro技術ブログ的な感じです。Guideスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。