Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Salesforceの開発時でつまづいたSalesforceの仕様について

Last updated at Posted at 2024-12-08

テストメソッドをエディターでデバックしていた時

テストデバックが失敗したようで、
以下のように言われる

有効な追跡フラグがあると、デバッグログがトリガーされます。最大 1,000 MB のデバッグログのうち 1,551 MB を保持しています。追跡フラグを編集する前に、いくつかのデバッグログを削除してください。
14:34:19.383 開始しています: テストをデバッグ

おそらく短時間で何度もテストデバックを行ったことが原因のよう
Apex デバックログ

デバッグログ制限
デバッグログには、次の制限があります。
各デバッグログは最大 20 MB です。デバッグログのサイズが 20 MB を超えると、System.debug ステートメントの始めの方のログの行など、古いログの行の削除によってサイズが縮小されます。ログの行は、デバッグログの最初からだけでなく、どの位置からでも削除できます。
システムデバッグログは 24 時間保持されます。監視デバッグログは 7 日間保持されます。
15 分間で 1,000 MB を超えるデバッグログを生成すると、追跡フラグが無効になります。追跡フラグを最後に更新したユーザーにメールが送信され、15 分後に追跡フラグを再度有効化できることが通知されます。
警告
頻繁にアクセスされる Apex クラスや、要求を何度も実行するユーザーに対して、デバッグログ追跡フラグを有効にすると、デバッグログの時間枠やサイズにかかわらず、要求が失敗する場合があります。
組織で 1,000 MB を超えるデバッグログが蓄積された場合、組織のユーザーは追跡フラグを追加したり、編集したりできなくなります。この制限に達した後、さらにログを生成できるように追跡フラグを追加または編集するには、デバッグログをいくつか削除します。

ではデバックを実行できない原因である、デバックログを削除したら良い

デバックログ
下記の手順に沿ってデバックログを削除したら良い

デバックログの削除

※Salesforce 画面 設定画面の「デバックログ」から
「すべてを削除」を使用しても、当該ページに表示されているレコードしか削除されない(ログは削除されるわけではない)

テスト結果が見つかりませんでした と言われる

今回は接続先の Salesforce 環境にコードが反映されていないことが原因。

エディター上で開発をしているとき、
テストメソッドを変更したら、まずは接続している Salesforce 環境に
編集したファイルをデプロイする必要がある。
編集したファイルを該当環境にデプロイすれば
再度テストを実行できる

error: UNABLE_TO_LOCK_ROW, unable to obtain exclusive access to this record: [] と言われる

この部分で複数のテストメソッドまたは別のプロセスが同時に同じ
オブジェクトを操作しているのが原因

今回の原因は通常ならありえないことだが
エディター上と Salesforce 上でそれぞれ違うテストクラスを実行していたことが原因。
同じ Trigger について同時に Apex テストを実行していたため

通常エディター、もしくは Salesforce どちらかの環境下で
Apex テスト実行オプションで以下の項目にチェックを入れていれば
回避することができるよう。

並列 Apex テストを無効化
テストメソッドを一度に一つずつ実行します。

盲点だったのが、エディターでデバッグした結果が接続先のデバックログにもログのレコードとして反映されるので
以下と同義にになるということ。

エディターで実行する = Salesforce 上で実行する

UNABLE_TO_LOCK_ROW エラーについて

参考記事

https://base.terrasky.co.jp/articles/sw87f
https://qiita.com/k_0120/items/65d4a1fc66343eb953b3
https://base.terrasky.co.jp/articles/DBbKJ

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?