2017-02-22 44 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(与用户上下文共享)。