2017-02-22 5 views
0

는 I 트리거 핸들러 코드Salesforce의 에이펙스 System.runAs는

System.debug(UserInfo.getProfileId()); 

Profile p = [SELECT Id FROM Profile WHERE Name = 'Standard User']; 
User u = new User(ProfileId = p.Id, ...); 
System.runAs(u) 
{ 
    System.debug(UserInfo.getProfileId()); 

    Database.delete(records, false); 
} 

으로 테스트 클래스가 트리거 상황에 반영되지 않은 것을 본 DML 동작, I 출력 전류 user`s 이드

대한 불
System.debug(UserInfo.getProfileId()); 

System.runAs 메서드에서 설정 한 사용자의 프로필 ID가 표시되지 않습니다. 그것은 사용자의 프로필 ID를 얻습니다 ... 나, 즉. 시스템 관리자는 표준 사용자 여야합니다.

왜 ... 어떻게 수정해야합니까?

답변

0

트리거 실행은 시스템 컨텍스트 수준입니다. 사용자 컨텍스트에 대한 Apex 클래스 (공유 포함)에 로그인하십시오.