0
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?

More than 3 years have passed since last update.

不意のエラーから気づいた(Salesforce Apexトランザクション)

Posted at

Apexトランザクションの定義について、理解を深めるため、メモしておきます。

このエラーはさぞなく見覚えはあるでしょ。
image.png
解釈:データ作成/更新する処理でCommit前に同期処理APIを呼び出すと、このエラーに引っかかる。
よって、「同一のトランザクション内にAPIコールする時、必ずcommitの後に実行する」とSFDCの制限がある。

Apex開発ガイドと覗いたら、こんな言葉があった。
”Apex トランザクションは、1 つの単位として実行される一連の操作を表します。トランザクションの実行には、すべての DML 操作が正常に完了することが求められます。”

データ作成/更新する処理でCommit前に同期処理APIは許されないが、非同期APIのコールがオッケー👌。
よって、仮設:非同期処理が新しいトランザクションを始まったから、エラーに引っかからなかった。

実際に試験すると、確かに、非同期処理のブロック中にApex制限がフラッシュされた。

0
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
0
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?