Batch ApexでAggregate SOQL集計クエリと結果の使用
- Sep
- 26
- Posted by Lin
- Posted in APEX, Salesforce
前回の投稿には、インタフェースDatabase.Batchableを継承したスケージュール可能なApex一括処理バッチを作成しましたが、
“GROUP BY”での集計クエリと結果のSOQL、例:SUM(), MAX(), COUNT()、を使用したい場合、単なるDatabase.Batchable<AggregateResult>に継承を変更することで解決できません、
次のようなコンパイルエラーが発生するためです :
この問題を解決するには、インタフェースIterator<AggregateResult>とIterable<AggregateResult>を継承したApexクラスの使用することが今まで1つ有効的な解決策です。
実装概要は下記のようになります。
1. インタフェースIterator<AggregateResult>を継承したApexクラスを作成する
2. インタフェースIterable<AggregateResult>を継承したApexクラスを作成する
3. Batch ApexをDatabase.Batchable<AggregateResult>に継承し、start処理にIterable<AggregateResult>を使用する
早速はじめましょう。
問題なく実行できました! : )
Enjoy it!
Class must implement the global interface method: Iterable<AggregateResult> start(Database.BatchableContext) from Database.Batchable<AggregateResult>
次のサンプルコードをこのような問題を説明できます。この問題を解決するには、インタフェースIterator<AggregateResult>とIterable<AggregateResult>を継承したApexクラスの使用することが今まで1つ有効的な解決策です。
実装概要は下記のようになります。
1. インタフェースIterator<AggregateResult>を継承したApexクラスを作成する
2. インタフェースIterable<AggregateResult>を継承したApexクラスを作成する
3. Batch ApexをDatabase.Batchable<AggregateResult>に継承し、start処理にIterable<AggregateResult>を使用する
早速はじめましょう。
インタフェースIterator<AggregateResult>
次のソースコードで1つApexクラス”AggregateResultIterator”を作成します。インタフェースIterable<AggregateResult> Apex class
次のソースコードで1つApexクラス”AggregateResultIterable”を作成します。一括処理バッチの修正
バッチの継承元をインタフェースDatabase.Batchable<AggregateResult>に変更し、start処理にDatabase.QueryLocatorを代わりに、Iterable<AggregateResult>とAggregateResultIterableを使用します。 次のようになります :動作確認
SampleAggregateBatchを実行して、デバッグログを確認します。問題なく実行できました! : )
Enjoy it!
Post Tagged with AggregateResult, Batch Apex, Database.Batchable, Database.BatchableContext, GROUP BY, Iterable, Salesforce, Schedulable
最近の投稿
- Salesforce DevTools リリースノート (version 3.10.0) – Lightning上項目一括編集
- Salesforce DevTools リリースノート (version 3.9.0) – 項目検索、SOQLクエリエディター
- Salesforce DevTools リリースノート (version 3.8.0)
- Salesforce DevTools利用者が10,000名達成!ありがとう!
- Lightning ComponentのApex側とデータ通信にPromiseを活用しよう
Top Posts
- Salesforce DevTools – 5万人以上愛用!強力なSalesforce開発者ツール - 225K views
- Date format && DateTime format - 208.7K views
- Salesforce一括編集 (Chrome拡張機能) -標準リストビューで一括新規, 更新, コピー, 削除, ClassicとLightning両方使える! - 160.5K views
- スケージュール可能なApex一括処理バッチの実装 - 123.5K views
- Sublime Text 3でSalesforceの爆速開発環境を構築 - 122.9K views
カテゴリー
- APEX
- アプリ
- Custom Label
- Custom Metadata
- Custom Setting
- Design & UI
- 交流会
- Heroku
- iOS & Object-c
- Lightnint Component
- Linux & Mac OS
- Metadata API
- Node.js
- Open Source
- Other
- PHP Framework
- Release Notes
- REST API
- Salesforce
- Salesforce DevTools
- Salesforce DX
- SOQL
- Tooling API
- Unit Tests
- Validation Rule
- Visualforce
- WordPress
コメントを投稿するにはログインしてください。