1

我创建了一个用于创建新用户的 visualforce 页面,并通过控制器类尝试插入新创建的用户。

我正在开发一个开发人员组织,并拥有三个可用于 - Salesforce 平台 - 用户许可证的许可证。我在我的组织中创建了 4 个具有此许可证的用户,其中只有一个处于活动状态。

当我尝试使用此许可证插入新用户时,我仍然面临许可证限制超出异常。

任何人都可以为这个问题提出一个解决方案吗?

我正在使用的代码是 -

    newUser = new User();

    newUser.email = ApexPages.currentPage().getParameters().get('email');
    String[] name = ApexPages.currentPage().getParameters().get('name').split(' ',2);
    newUser.firstName = name[0];
    newUser.lastName = name[1];
    newUser.userName = newUser.email;

    UserRole usrRole = [select id, name from UserRole where name = 'Customer'];
    Profile prof = [select id, name from Profile where name = 'Customer Portal'];

    newUser.UserRoleId = usrRole.id;
    newUser.ProfileId = prof.id;
    newUser.isActive = true;
    try
    {            
        insert newUser;
        alertMsg = 'Successfully Created New User';                
    }
    catch(System.DMLException e)
    {                 
        alertMsg = e.getMessage();         
    }    

我公司信息的截图是——

用户许可的公司信息

4

2 回答 2

0

选项 1:在开发者控制台中,运行此匿名 apex 代码片段以获取活动和非活动用户的计数:system.debug([select isactive, count(Id) from User group by isactive]);

上述 SQL 的结果应该是 3 个非活动用户和 1 个活动用户(根据您的问题陈述)。

选项 2:确保您的控制器类不会批量插入超出开放许可证数量的用户。

选项 3:确保您的代码没有尝试使用与已用完的许可证类型绑定的配置文件来创建用户。

于 2012-06-05T11:54:02.650 回答
0

除了设置配置文件,您还需要设置 UserType(又名许可证类型),否则默认为 Salesforce 许可证,您没有备用许可证,您需要添加类似newUser.userType = 'Platform'(您需要使用 describeSObject 或一个模式查看器工具,用于查找要使用的确切选项列表值)

于 2012-06-05T15:01:48.487 回答