LoginSignup
2
2

More than 5 years have passed since last update.

Salesforce Event、Taskオブジェクトの繰り返し予定のトリガ動作まとめ

Last updated at Posted at 2015-07-31

SalesforceのEvent、Taskオブジェクトで繰り返し予定を扱う上で、トリガーの動作が複雑なためまとめました。

まず繰り返し行動を作成すると以下のようなレコードが作成されます。
以下において行動(Event)を例に記載していますが、Todo(Task)も同等な仕様になっています。

親レコードのIsRecurrenceがtrueで、子レコードは繰り返し日分が作成され、RecurrenceActivityIdに親レコードのIDが入ります。

id subject IsRecurrence RecurrenceActivityId
xxxxxxx1 親レコード行動 true xxxxxxx1
xxxxxxx2 子レコード行動1 false xxxxxxx1
xxxxxxx3 子レコード行動2 false xxxxxxx1
xxxxxxx4 子レコード行動3 false xxxxxxx1

以下において各トリガー発生時の動作についてのまとめです。

新規作成時

Trigger発行数 2
Trigger種別 Insert
レコード数 ・親レコード1件(Insert)
・繰り返し分のn件(Insert)

繰り返し行動の更新時

終了日延長

Trigger発行数 2
Trigger種別 Insert、Update
レコード数 1.延長した日のn件(Insert)
2.親レコード1件(Update)

終了日短縮

Trigger発行数 2
Trigger種別 Delete、Update
レコード数 1.短縮した日のn件(Delete)
2.親レコード1件(Update)

開始日延長(未来日が開始日のみ編集可)

Trigger発行数 3
Trigger種別 Delete、Insert、Update
レコード数 1.古い繰り返し日(すべての子レコード)のn件(Delete)
2.新しい繰り返し日のn件(Insert)
3.親レコード1件(Update)

開始日短縮(未来日が開始日のみ編集可)

Trigger発行数 3
Trigger種別 Delete、Insert、Update
レコード数 1.古い繰り返し日(すべての子レコード)のn件(Delete)
2.新しい繰り返し日のn件(Insert)
3.親レコード1件(Update)

開始/終了時間編集

Trigger発行数 1
Trigger種別 Update
レコード数 1.親レコード1件(Update)

子レコードの時刻は更新されないが、繰り返し行動の親レコードの時刻は更新される

項目更新

Trigger発行数 1
Trigger種別 Update
レコード数 1.親レコード1件(Update)

 子レコードの項目は更新されないが、繰り返し行動の親レコードの項目は更新される

一件のみ更新時

Trigger発行数 1
Trigger種別 Update
レコード数 1.編集対象の子レコード1件(Update)

一件のみ削除

Trigger発行数 1
Trigger種別 Delete
レコード数 1.削除対象の子レコード1件(Delete)

繰り返し行動の削除

Trigger発行数 1
Trigger種別 Delete
レコード数 1.親レコード1件(Delete)

※繰り返し行動またはタスクが過去になっている場合は、それらのレコードは削除されない
 未来日付になっている予定のみが削除される

2
2
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
2
2