Memos About SalesForce

Salesforceにハマってたこと!

SFDC リリースエラー  積み上げ集計のせい?【System.LimitException: Too many SOQL queries: 101】

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


f:id:jude2016:20180727181513p:plain

sfdc のリリースでエラーになったから、

ここにきたでしょう

テストクラスでエラーになったかも

今回、リリースでタイトルのエラーになった場合の一つの解消方法を

共有します。

欲しけりゃくれてやる・・・。

探せ!

この世の全てをそこに置いてきた〜笑



目次


自分が困ったこと

リリースで、あるテストクラスだけ

System.LimitException: Too many SOQL queries: 101ってエラーになり

原因不明

理由:sandbox環境で、エラーになりませんでした。

調べた内容

  1. ループで、クエリ発行していない
  2. 無限に処理するところがなさそう

 なぜなら、テスト環境で、正常処理するから

  1. うっすらに考えたのが主従関係による積み上げ集計かな?

 子を登録することによって、親のトリガが動作してしまったかな
 しかし、テスト環境では、問題ありませんよ、なぞなぞです。

対策

該当テストクラスのあるメソッドをコメントアウトして

カバー率は100%から99%になったけど

それがどんなメソッドかというと

親を登録して、

親に対して、子を登録するテストメソッド

そして、親が子に対して、積み上げ集計を使っている、もちろん、親にはトリガもある

これによって、制限に引っかかったではないかと思っていた、しかし、なぜかSandboxでエラーないのです。

そこで、試しで、該当メソッドをコメントアウトした

結果

リリース成功です。

コメントアウトしたメソッドのテストがどうする?

もちろん、ここで疑問に思うですね

その他のものを一回リリースして、成功してから、単独で問題のテストクラス

コメントアウトしたメソッドを解除し、1本テストクラスのみリリースすることで解消しました。
f:id:jude2016:20180727181513p:plain

リリースアドバイス

一発ですべてアセットをリリース対象を狙うのがいいですが

たまに、関連性によって、分割リリースで成功するパターンも考えたほうがいいではないかと思います。

参考サイト

help.salesforce.com