エラーメッセージ:
System.DmlException: Update failed.
SELF_REFERENCE_FROM_TRIGGER
cannot recursively update itself
説明:
Apex トリガが SELF_REFERENCE_FROM_TRIGGER エラーを発生させるのはなぜですか?
解決策:
再帰的に更新したり、Apexトリガから同じオブジェクトを削除することはできません。
このエラーは次の様な場合によく発生します。
・Beforeトリガでオブジェクトを更新するか削除しようとします。
・Afterトリガでオブジェクトを削除しようとします。
このエラーは直接操作と非直接操作の両方で発生します。下記に非直接操作の例を挙げます。
1、A リクエストはオブジェクト A のアップデートのために送信されます。
2、オブジェクト A のBefore Updateトリガ はオブジェクト B を作成します。
3、オブジェクト A はUpdateされます。
4、オブジェクト B のAfter Insertトリガはオブジェクト A を問い合わせ、それを更新します。これはオブジェクト A のBeforeトリガであるため、オブジェクト A の非直接更新です。そのため、エラーが発生します。
Link:
https://help.salesforce.com/s/articleView?id=000324391&type=1