【问题标题】:Salesforce Apex System.runAs not reflected in trigger contextSalesforce Apex System.runAs 未反映在触发器上下文中
【发布时间】:2017-07-12 18:02:09
【问题描述】:

我有一个测试类,用这个代码

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 操作触发的触发器处理程序中,当我输出当前用户的 Id 时

System.debug(UserInfo.getProfileId());

它没有得到我在System.runAs 方法中设置的用户的配置文件ID。它获取用户的个人资料 ID...我,即。系统管理员,当它应该是标准用户时。

为什么?...以及如何解决?

【问题讨论】:

    标签: triggers salesforce profile apex dml


    【解决方案1】:

    触发器执行在系统上下文级别。将您的登录信息放在用户上下文的 Apex 类(带共享)中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多