본문 바로가기

Salesforce

APEX TRIGGER

  1. Salesforce record에 대한 이벤트 전 후에 INSERT, UPDATE, DELETE와 같은 작업을 수행한다.
  2. 레코드 관리를 위한 트리거다
  3. 보통 포인트 앤 클릭만으로 수행할 수 없는 작업을 수행한다.
  4. 최상위 Object, Custom Object, 기본 하위 Object를 대상으로 함

트리거의 기본 모양

trigger *TriggerName* on *ObjectName*(*trigger_events*){     code_block    }

trigger_events 종류

before insert after insert after undelete
before update after update  
before delete after delete  

Before Trigger → DB저장 전 레코드 업데이트나 유효성 검사
After Trigger → Read only. 주로 record Id나 LastModifiedDate field

 

Context Variables 사용

  1. 트리거를 발생 시킨 레코드에 Access시 사용한다.

Trigger.New

  1. insert하거나 update된 trigger에 삽입된 거 전부
  2. 하나 혹은 여러개의 record를 가져온다. 각각의 sObject를 가져옴.

Trigger.Old

  1. update trigger에서는 update 되기 이전 버전의 sObject 목록을 가져옴
  2. delete trigger에서는 delete 되기 이전 버전의 sObject 목록을 가져옴.

Context Variables 종류

종류 내용
isExecuting visualforce페이지, Web Service가 아닌 trigger일 때, return true
executeanonymous() API call
isInsert Salesforce 사용자 인터페이스, APEX, API 로 삽입시 trigger 실행시 true
isUpdate Salesforce 사용자 인터페이스, APEX, API 로 업데이트시 trigger 실행시 true
isDelete Salesforce 사용자 인터페이스, APEX, API 로 삭제시 trigger 실행시 true
isBefore 레코드 저장 전 trigger 실행
isAfter 레코드 저장 후 trigger실행
isUndelete 휴지통에서 record 복원시 true. 마찬가지 salesforce 사용자 인터페이스, APEX, API로 복원 실행시 true
new sObject 레코드의 새 버젼 목록 반환
새 List는 insert, update, undelete trigger만 가능! before trigger로만 수정
newMap sObject의 새 버젼에 대한 ID맵
before update, after insert, after update, aftert undelete에서만 가능
old sObject 레코드의 old 버젼 목록 반환
update, delete trigger만 가능
oldMap sObject레코드의 old 버전 ID맵
update, delete trigger만 가능
operationType System.TriggerOpporation 나열
size Trigger로 호출된 Old&New 레코드의 총 개수

CallOut

      1. 외부 서비스에 대한 APEX 호출
      2. 외부 서비스 응답 시간 동안 Trigger Process가 작업을 차단하지 않도록 비동기 방식으로 운영된다.

Bulk APEX Trigger

      1. Bulk Trigger는 한번에 최대 200개의 레코드를 실행한다. 400개면 2번 수행

 

'Salesforce' 카테고리의 다른 글

SFDC File System  (0) 2021.09.30
APEX TESTING  (0) 2021.09.30
SOSL(Salesforce Object Search Language  (0) 2021.09.30
SOQL  (0) 2021.09.30
Automation Tool& Apex  (0) 2021.09.30