[Trigger] Trigger 기본 지식

hyunsooSong·2022년 8월 11일
0

Salesforce

목록 보기
1/13
post-thumbnail

🧨 Trigger 기본 지식


1. 클래스 형태

☁  trigger 클래스명 on obj명 (이벤트1, 이벤트2, ...)

예시

trigger Sales_tr on Sales__c (before insert, after insert, before update, after update, before delete, after delete) {
    // 내용 입력
}

2. BEFORE, AFTER 기준

☁  Event는 insert, update, delete, upsert가 존재한다. 이들 앞에는 before와 after가 붙여진다.

🚁 Point

1)  before와 after의 기준은 commit이다.


3. NEW, OLD 기준

🚁 Point

1) new와 old의 기준은 Action이다.

List<옵티> 변수명 = Trigger.new;	// or Trigger.old
Map<Id, 옵티> 변수명 = Trigger.newMap; // or Trigger.oldMap;

🚨 예시

  • beforInsert
    1) old: null
    2) new: insert 값
    3) oldMap: null
    4) newMap: null (이유 : commmit 전이라 id 값 없기 때문)

  • afterInsert
    1) old: null
    2) new : insert 값
    3) oldMap: null
    4) newMap: {id, insert 값}


👀 틈새지식

💡 record ID가 생성되는 시점

1) record ID는 Transaction의 commit이 성공했을 시에 생성된다.

2) 1)을 바탕으로 beforeInsert에서 newMap이 null인 이유는, Map의 Key 값이 record ID로 들어가는데 commit전이라 record ID가 생성되지 않았기 때문이다.

profile
🥕 개발 공부 중 🥕

0개의 댓글