【发布时间】:2011-11-09 23:33:38
【问题描述】:
我有一个门户用户和两个分配给该门户的个人资料。 我想在满足某些条件时运行触发器来更改配置文件。
这可能吗?
【问题讨论】:
标签: salesforce apex-code
我有一个门户用户和两个分配给该门户的个人资料。 我想在满足某些条件时运行触发器来更改配置文件。
这可能吗?
【问题讨论】:
标签: salesforce apex-code
是的。虽然 DML is forbidden 在 Profile 对象本身上,但您可以更改用户的个人资料(来自 Apex 开发人员指南):
Profile p = [SELECT Id FROM Profile WHERE Name='Standard User'];
User u = new User(Alias = 'standt', Email='standarduser@testorg.com',
EmailEncodingKey='UTF-8', LastName='Testing', LanguageLocaleKey='en_US',
LocaleSidKey='en_US', ProfileId = p.Id, // <---
TimeZoneSidKey='America/Los_Angeles', UserName='standarduser@testorg.com');
System.runAs(u)
{
// The following code runs as user 'u'
System.debug('Current User: ' + UserInfo.getUserName());
System.debug('Current Profile: ' + UserInfo.getProfileId());
}
【讨论】:
System.runAs(u) 只用在测试类中,对于 Apex 类你不能写上面的代码
【讨论】: