salesforceの開発では、
トリガがよく使用される
そして、トリガの動きを制御する仕様が
しっかりしないと、変な動きにつながる
そこで、今回、トリガと積み上げ集計項目について
共有したいと思います。
欲しけりゃくれてやる・・・。
探せ!
この世の全てをそこに置いてきた〜笑
目次
取引先と商談が主従関係の親子である ER図は下記のリンクから確認できます。
1:取引先に商談に対して、金額の合計を集計する積み上げ集計項目を作成する
2:新規取引先を1件(トリガもちろん動作する、デバッグしません)
3:新規商談を作成し、必要な項目に値を入力する、金額も
3-1:取引先のトリガが動作するか確認(debug)
4:既存商談の【金額】項目を更新する(前後値が違う)
4ー1:取引先のトリガが動作するか確認(debug)
5:既存商談を変更せずに更新かける
5-1:取引先のトリガが動作するか確認(debug)
主従関係の主であるオブジェクトのトリガは
子に対して、集計する項目に値が変更ある際に動作します。取引先のトリガを例にさせて~
トリガのサンプルコード
trigger AccountAddressTrigger on Account (after delete, after insert, after undelete, after update, before delete, before insert, before update) {
if(Trigger.isBefore){
if(Trigger.isInsert){
System.debug('■■■ This is BEFORE INSERT action');
}else if(Trigger.isUpdate){
System.debug('■■■ This is BEFORE UPDATE action');
}
}else if(Trigger.isAfter){
if(Trigger.isInsert){
System.debug('■■■ This is AFTER INSERT action');
}else if(Trigger.isUpdate){
System.debug('■■■ This is ATER UPDATE action');
}
}
}
トリガ動作確認シナリオ
3-3:結論
動作します
4-2:結論
動作します
5-2:結論
動作しません
まとめ