function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
システム管理者 182システム管理者 182 

DataLoaderからの取り込みについて

現在バッチ起動にてコマンドよりDataLoaderを用いてSFAのオブジェクト(A)にデータ取込を行っているのですが
全データを取り込んだ後に1度だけオブジェクト(A)のトリガーを発生させたい
理由は、取り込んだ全データを元にデータを集計する処理を行いその結果を別のオブジェクトに値をインサートして行きたいからです
ただ、SFAの機能としてはバッチサイズとしては200単位で、その都度トリガーが発生しており思い通りの動作が行われません(BulkApiでも10000まで)
スケジュールで、データ取込とは別タイミングで動かすしか方法はないでしょうか?
良い方法があれば教えて頂きたく思います
宜しくお願いします
 
Best Answer chosen by Mitch Okamoto
Taiki YoshikawaTaiki Yoshikawa
データ取り込みの後に一度だけ集計処理を実行したい場合は、集計用のApexバッチで対応する必要があると思います。データローダのバッチ完了時にApexバッチを実行するという流れは設定できないと思いますので、頻繁に取り込まれる場合はスケジュールバッチ、そうでない場合はバッチ実行用の画面を用意したりする感じになりそうです。

他の対応方法としては、JavaとBulkAPIをつかったアプリを開発することでより細かい処理を実装できるのでうまく対応できるかもしれません。

集計用のApexバッチをつかってデータ取り込みとは別タイミングで集計すると、最新の集計件数が反映されるまでに少し時間がかかることになるので、常に最新の集計件数を反映させたい場合は、Apexトリガで対応するのがいいと思います。

Apexトリガで対応する場合、+1 / -1というように件数をカウントしていくとBulkAPIで並列処理で最新の件数を取得できない可能性がありますので、サブクエリをつかった集計方法がおすすめです。

All Answers

Taiki YoshikawaTaiki Yoshikawa
データ取り込みの後に一度だけ集計処理を実行したい場合は、集計用のApexバッチで対応する必要があると思います。データローダのバッチ完了時にApexバッチを実行するという流れは設定できないと思いますので、頻繁に取り込まれる場合はスケジュールバッチ、そうでない場合はバッチ実行用の画面を用意したりする感じになりそうです。

他の対応方法としては、JavaとBulkAPIをつかったアプリを開発することでより細かい処理を実装できるのでうまく対応できるかもしれません。

集計用のApexバッチをつかってデータ取り込みとは別タイミングで集計すると、最新の集計件数が反映されるまでに少し時間がかかることになるので、常に最新の集計件数を反映させたい場合は、Apexトリガで対応するのがいいと思います。

Apexトリガで対応する場合、+1 / -1というように件数をカウントしていくとBulkAPIで並列処理で最新の件数を取得できない可能性がありますので、サブクエリをつかった集計方法がおすすめです。
This was selected as the best answer
システム管理者 182システム管理者 182
ご回答ありがとうございます
スケジュールバッチで都度処理するように対応したいと思います