「Too many SOQL queries: 201」エラーが発生した場合の対処手順
最終更新
最終更新
CalsketのGoogleカレンダー同期機能を利用している場合、その処理件数やご利用のプロセスやApexトリガの作成状況によっては「Too many SOQL queries: 201」を含むエラーが発生することがあります。
これは、GoogleカレンダーからSalesforceの同期を行う際、5分ごとに実行されるCalsketの定期的なジョブによって、5分の間に更新のあった予定を一括で更新(同期)します。その際、1件の行動の更新に伴って作成されている全てのプロセスやApexトリガーが実行されることになりますが、その中で発行されるクエリーの総数がSalesforceのリミットを超えた場合にエラーが発生します。
本件はGoogleカレンダー同期機能の 「Googleカレンダー同期バッチサイズ」及び「Googleカレンダー繰り返し予定同期バッチサイズ」を変更を下記の手順に従って設定することで、同時に実行される処理数を制限し、エラーを回避することが可能です。本エラーが発生した場合はまず下記の手順をお試しください。
エラーが発生した場合、「Salesforceナレッジ - Apex 例外メール通知の設定」で指定したアドレスにApex例外メールが送信されます。この時、「GoogleSyncEventConsumer」でエラーが発生した場合は通常の行動の同期処理で発生していることを意味し、「GoogleSyncRecurrenceEventConsumer」でエラーが発生している場合は繰り返し予定の同期処理でエラーが発生していることを意味します。
そのため、「GoogleSyncEventConsumer」でエラーが発生した場合は「Googleカレンダー同期バッチサイズ」を変更し、「GoogleSyncRecurrenceEventConsumer」でエラーが発生した場合は「Googleカレンダー繰り返し予定同期バッチサイズ」を変更してください。
エラーの確認方法については「定期的なジョブで発生するエラーの確認方法」をご参考ください。
❶ Salesforceの設定画面を開きます。
❷ 左上の「クイック検索」に「カスタム設定」と入力し、「カスタム設定」をクリックします。
❸ 「Calsketシステム設定」の左側の「Manage」をクリックします。
❹ 「編集」ボタンをクリックします。
❺「GoogleSyncEventConsumer」でエラーが発生した場合は「Googleカレンダー同期バッチサイズ」を「GoogleSyncRecurrenceEventConsumer」でエラーが発生した場合は「Googleカレンダー繰り返し予定同期バッチサイズ」に「5」を入力し、「保存」ボタンをクリックしてください。
❻ 本設定を行った上で様子を見ていただき、それでも発生するようであればバッチサイズをより下げてお試しください。仮にバッチサイズを「1」にしてもエラーがでるようであればApexトリガーやプロセスの設計を見直す必要があります。