dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

[Salesforce]行動を削除した時の UNSUPPORTED_APEX_TRIGGER_OPERATON について

エラー名でググってもちゃんとした情報が出てこなかったのでメモ。

Apex で複数件の行動を削除(delete)しようとした時、以下のようなエラーが出ることがある。

System.DmlException: Delete failed. First exception on row 0 with id 00U1000000k5j6vEAA; first error: UNSUPPORTED_APEX_TRIGGER_OPERATON, Apex Event trigger cannot handle batch operations on recurring events.: []

調べると、公式ドキュメントに次のような記述が見つかる。

(英語)https://www.salesforce.com/us/developer/docs/apexcode/Content/apex_triggers_defining.htm

(日本語)https://help.salesforce.com/HTViewHelpDoc?id=code_define_trigger.htm&language=ja

引用すると、

(英語)

A trigger invoked by an insert, delete, or update of a recurring event or recurring task results in a runtime error when the trigger is called in bulk from the Force.com​ API.

(日本語)

定期的なイベントまたは定期的な ToDo の insert、delete、または update によって呼び出されるトリガは、Force.com​ API からトリガが大量に呼び出されるとき、ランタイムエラーになります。

なので、行動の delete に対するトリガが存在する条件下では、定期的な行動すなわち IsRecurrence = true なものを一度に複数件 delete することはできないらしい。

日本語では「大量に」と書いてるけど、普通に 2 つ以上同時に削除しようとするとエラーになる。
また、同様の理由により IsRecurrence = true の予定を複数 update しようとしても失敗します。

リファレンス

上に挙げたの以外だと、こんなナレッジ記事とか。

https://help.salesforce.com/apex/HTViewSolution?id=000194132&language=en_US

Make sure that this trigger doesn't receive a batch containing more than 1 recurring type of events.

more than 1 なのでやっぱり 2 件以上のようです。