2017-02-22 90 views
0

我有一個測試類,與此代碼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操作中,當予輸出的電流user`s標識

System.debug(UserInfo.getProfileId()); 

它沒有得到我在System.runAs方法中設置的用戶的配置文件ID。它獲取用戶的配置文件ID ...我,即。系統管理員,何時應該是標準用戶。

爲什麼?...以及如何解決?

回答

0

觸發器執行在系統上下文級別。將您的登錄信息放入Apex Class(與用戶上下文共享)。