You need to sign in to do that
Don't have an account?
Matsuda Risa
日次集計・月次集計について
お世話になっております。
現在社員の工数および稼働率を管理するための仕組みを構築しております。
そこで、以下のような要件を実現させたく、開発を進めているのですが、
日次集計は実現できましたが、月次集計の方法が分かりません。
トリガや数式項目、参照/主従関係等を用いて、日次集計オブジェクトの最新処理日のレコードを
月次集計オブジェクトの当月分のレコードに上書きするような仕組みをご教示いただけないでしょうか。
現在社員の工数および稼働率を管理するための仕組みを構築しております。
そこで、以下のような要件を実現させたく、開発を進めているのですが、
日次集計は実現できましたが、月次集計の方法が分かりません。
トリガや数式項目、参照/主従関係等を用いて、日次集計オブジェクトの最新処理日のレコードを
月次集計オブジェクトの当月分のレコードに上書きするような仕組みをご教示いただけないでしょうか。
細かい実装方法は検討できていませんが、バッチ処理なら処理件数が多くなっても基本問題ありません。
全件取得して集計し直すと何らかの制限が発生する可能性があるので、
処理済みフラグのような項目で対象判定するか、その月のレコードのみ対象とするなどの条件指定が必要になると思います。
Apex のスケジュール設定
https://help.salesforce.com/apex/HTViewHelpDoc?id=code_schedule_batch_apex.htm&language=ja (https://help.salesforce.com/apex/HTViewHelpDoc?id=code_schedule_batch_apex.htm&language=ja)
All Answers
細かい実装方法は検討できていませんが、バッチ処理なら処理件数が多くなっても基本問題ありません。
全件取得して集計し直すと何らかの制限が発生する可能性があるので、
処理済みフラグのような項目で対象判定するか、その月のレコードのみ対象とするなどの条件指定が必要になると思います。
Apex のスケジュール設定
https://help.salesforce.com/apex/HTViewHelpDoc?id=code_schedule_batch_apex.htm&language=ja (https://help.salesforce.com/apex/HTViewHelpDoc?id=code_schedule_batch_apex.htm&language=ja)
ご返信ありがとうございます。
APEXトリガをスケジュール設定することができるのですね。
ご教示いただいた通り、月初に先月分の日次集計データを見に行き、最新のデータを月次集計オブジェクトにコピーするような
トリガを作成してみようと思います。
ありがとうございました。
Apexトリガはレコードの登録や更新、削除、復元のタイミングで実行されるもので、ApexバッチはApexクラスから実行したりスケジュール設定することにより指定したタイミングで実行できます。
実装イメージですがこちらが参考になると思います。
https://github.com/tyoshikawa1106/Salesforce-Hack-Challenge-2014/tree/master/src/classes
ApplicantFeedPostScheduleInterfaceがスケジュール設定するApexクラスです。
ApplicantFeedPostScheduleConnectがバッチ処理を呼び出し実行するApexクラスです。
ApplicantFeedPostBatchが実際のバッチ処理になります。
スケジュール設定したApexクラスは編集できないというルールがあるのですが、
上記の構成にすることでスケジュール設定後もApexバッチ自体の編集は可能になりメンテナンスがやりやすくなると思います。
APEXクラスについてはトリガのテストクラスでしか使ったことがなく、
まだまだ理解が不十分ですが、イメージを参考に実装してみます。