Memos About Salesforce

Salesforceにハマってたこと!

Salesforce System.LimitException: Too many DML statements: 151

こんにちは、管理人の@Salesforce.Zです。

salesforce】System.LimitExceptionが出てしまった!

制限に接触したでしょう

今回、これを回避すべきのところについて共有します。

目次

回避すべきところとその他回避

回避すべき

ループ内にDMLステートメントを記述しないことがまずチェックでしょう

これが基本的にしてはいけないこと

//200回のDMLステートメントを使っているダメなパターン
for(Integer i = 0; i < 200; i++){
    Account account = new Account();
    account.name='気合';
    insert account;//DMLステートメント
}

せめてやるべきこと、上記の例を改善 要はできるだけまとめて一気にDMLステートメンを消費すること

List<Account> accList = new List<Account>();
for(Integer i = 0; i < 200; i++){
    Account account = new Account();
    account.name='気合';
    accList.add(account);
}
insert accList;////DMLステートメント

その他回避

ループ内でDMLステートメンを使っていないのに

エラー出る場合は

一連のトランザクションを確認するべき

連鎖的に起こっているかも

最後に

トランザクションの全体像を把握するのがベストでしょう

こうすることによって、制限に接触しないようにかなり防げる