こんにちは、にいるです。
今回は開発関連です。
エラー「Too many SOQL queries: 101」について、見ていきたいと思います。
いわゆるガバナ制限ですね。
・【ヘルプ】「System.LimitException: Too many SOQL queries: 101」エラー
1.エラー発生原因
「Too many SOQL queries: 101」の発生原因は、1つのクエリやDML実行処理で101件以上のレコード操作を行った事です。
Apexでは、ガバナ制限というSalesforce特有の仕様があります。
これは、一度に実行できるクエリを100件に抑えるというものです。
つまり、101件を越えるクエリは発行できない、ということになります。
1 2 3 4 5 6 |
for( i=0; i>120; i++){ Account act = new Account( Name = '取引先' + i ); insert act; } |
2.エラー解決策
このエラー「Too many SOQL queries: 101」の解決策は、上記で言えば、for文の中でDMLを実行しない事ですね。
またfor文のなかでSELECT文を記載するのもNGです。
どうしてもfor文の中でDMLを書きたい場合は、一度にListに入れてからfor文の外でInsertすれば問題ないと思います。
3.まとめ
いかがでしたでしょうか。
ガバナ制限もたまに出会うエラーですが、for文にクエリを入れないようにすれば避けることは出来ます。
また、クエリだけでなくDML文も対象となるので、レコード操作を考える際はしっかり抑えておきましょう。
他にも色々と標準機能やSalesforce機能について紹介しています。
そのまとめ一覧ページはこちらになりますので、よければ見てみてください。
ではでは!
コメント